最新文章

debian 12 本地安装

云服务器可以直接选择 debian 12 镜像安装 一、准备 u 盘 服务器主机 windows 主机 二、操作流程 配置 preseed.cfg 文件 使用 preseed.cfg 启动 iso 镜像进入自动安装 三、配置 preseed.cfg #_preseed_V1 # 自动安装 # ---- # d-i auto-installer/enable boolean true # 设置语言国家 # ---- # d-i debian-installer/language string en d-
debian 12 使用·发布于 2 年前

debian 12 安装相关工具

Ventory - 启动盘制作工具 阿里云镜像站 - debian 镜像下载 debian 12 官方 preseed.cfg 配置说明 debian 12 官方 preseed.cfg 示例文件 Ventory 自动安装插件 Ventory preseed.cfg 示例文件
debian 12 使用·发布于 2 年前

debian 12 apt 源配置

配置清华源 # 配置之前备份原文件 sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak sudo tee /etc/apt/sources.list<<-EOF # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware # deb-src
debian 12 使用·发布于 2 年前

debian 12 zsh 配置

一、安装 zsh sudo apt install zsh -y # 修改时会提示几个选项,选择 0 即可,会创建一个带一行注释的 ~/.zshrc chsh -s /bin/zsh 二、安装配置 zinit sudo apt install git curl -y bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/script
debian 12 使用·发布于 2 年前

debian 12 快照管理

测试或者单机维护的服务器可以考虑添加快照来保存服务器状态,当执行错误的操作后,可以使用快照恢复到之前的状态 一、安装 可以使用以下命令来安装 Timeshift: apt install timeshift 二、使用说明 timeshift-cli是Timeshift的命令行工具,可以让你在命令行中执行快照相关的操作。以下是一些常用的命令: # 显示快照列表 timeshift --list # 创建带注释的快照 timeshift --create --comments "fix" # 恢复快照 times
debian 12 使用·发布于 2 年前

debian 12 防火墙管理

debian 12 中使用了 systemd 作为 init 软件。systemd 使用了 systemctl 来管理系统。 下面以 nginx 为例,我们来看下如何使用 systemctl 来管理系统。 一、开启 nginx 服务 systemctl start nginx 二、查看 nginx 服务状态 systemctl status nginx 三、添加开机启动项 systemctl enable nginx 四、移除开机启动项 systemctl disable nginx 五、关闭 nginx
debian 12 使用·发布于 2 年前

debian 12 权限管理

对于 Linux 上的文件来说,用户可以对其进行读取(read)、写入(write)和执行(excute)操作。 根据所有者、组别不同分成拥有者权限、用户组权限和其它用户权限。 可以使用 ls -l 命令来查看下文件的权限 drwxr-xr-x 3 root root 4096 1月 15 04:03 .local drwxr-xr-x 第1位表示是否是目录,后三位表示所有者的权限,这里的所有者是 root 用户,rwx 表示root用户拥有该目录的读、写、执行权限。 再往后的三位表示所有组权限,这里是
debian 12 使用·发布于 2 年前

debian 12 用户管理

一、用户 Linux 系统在创建的时候会默认帮我们创建一个超级管理员。也就是用户名为 root 的账号。 root 账号的权限很大,一般来说我们不会直接使用 root 账号去操作系统。而是会选择创建一个带有指定权限的账号(用户)去操作相关内容。 Linux 提供了非常方便的命令来管理用户。 我们可以使用 useradd 命令添加一个用户,例如 useradd webuser 添加完之后,可以用 su 命令切换用户 su webuser 一般来说在命令行的光标前会显示当前的用户名,我们也可以用 whoami 命令
debian 12 使用·发布于 2 年前

debian 12 联网管理

iwconfig 和 iwlist 可以用来管理网络 查看 wlp3s0 网卡是否有网络连接 iwconfig wlp3s0 扫描周边的 wifi iwlist wlp3s0 scan | grep ESSID 连接 wifi iwconfig wlp3s0 essid mi-wifi key s:11111111
debian 12 使用·发布于 2 年前

debian 12 防火墙管理

debian 12 默认的防火墙工具为 ufw 一、安装 如没有安装 ufw,可以通过 apt 命令安装 sudo apt install ufw 二、放行端口 # 放行 8080 端口 sudo ufw allow 8080 三、 默认放行服务 ufw 默认允许了一些服务通过,如 nginx、ssh 等,可以使用 ufw app list 查看 ufw app list 四、常用命令 # 查看防火墙状态 ufw status # 放行 8000 端口,并设置备注, ufw allow 8000 commen
debian 12 使用·发布于 2 年前

debian 12 caddy 配置

一、安装 sudo apt install caddy 通过 systemctl 命令可以查看 caddy 的默认安装目录 sudo systemctl status caddy caddy 的默认配置文件在 /etc/caddy/Caddyfile,可以使用 cat 命令查看 cat /etc/caddy/Caddyfile 二、常用命令 2.1 检测配置文件是否可用 修改文件之后,在 caddy 重启之前,我们可以用命令检测配置文件是否可用,类似于 nginx 中的 nginx -t 命令 cd /etc
debian 12 使用·发布于 2 年前

debian 12 ftp 配置

一、安装 apt install vsftpd -y 二、启动 启动 vsftpd 并设置开机启动 systemctl enable --now vsftpd 三、添加用户 useradd --create-home ftpuser passwd ftpuser 四、修改为可写 sed -i 's/^#*write_enable=.*/write_enable=YES/' /etc/vsftpd.conf systemctl restart vsftpd 五、测试 ftp Mac 可以使用 transmi
debian 12 使用·发布于 2 年前

debian 12 ssh 常用命令

免密连接 # 首次执行,需要输入密码 ssh-copy-id [email protected] # 执行完之后 ssh 连接便不再需要密码 ssh [email protected] 删除指定主机的公钥信息 当你连接到一个远程主机时,SSH 客户端会将该主机的公钥信息存储在 known_hosts 文件中,以便下次连接时进行验证。 当远程主机的公钥发生变化(例如,重新安装操作系统或更换 SSH 密钥),你可能会收到警告消息,因为客户端存储的公钥信息与当前主机的公钥信息不匹配。在这种情况下,您可以使用 ssh
debian 12 使用·发布于 2 年前

DevOps (4)| 反向代理服务器选择

个人服务器中一般会开启很多服务,例如 wiki.example.com,blog.example.com 。这个时候就需要反向代理服务器(也叫 Edge Router 边缘路由器)来转发这些请求。 反向代理 在日常使用中,我们一般会在一台服务器上部署多个服务。例如一个 web 服务和一个 api 服务。我们可能需要给 web 服务和 api 服务配置不同的域名,并且需要管理域名的 tls 证书。 之前一直使用的 nginx 来将不同的域名请求反向代理到 web 服务和 api 服务。使用 acme.sh 来自动化
个人服务器维护小书·发布于 4 年前

DevOps (5)| tls 证书选择

考虑到站点安全,我们一般会将网站升级成 https,可以根据需求选购免费或者收费的证书 证书选择 免费 Let's Encrypt TrustAsia 收费 赛门铁克(Symantec) 沃通(WoTrus) GeoTrust 一般来说,个人选用 Let's Encrypt 即可,Let's Encrypt 的 tls 证书有效期为 3 个月,不过可以使用 acme.sh 脚本自动续约。 目前 Let's Encrypt 的 OCSP 服务器被墙,在 iOS 的机子上首次打开时会出现OSCP 验证超时,导
个人服务器维护小书·发布于 4 年前

DevOps (6)| 容灾方案

对于数据安全,我们一般会做容灾方案 简易容灾方案 容灾中常用的方案两地三中心,主 + 本地热备 + 异地冷备。主 + 本地热备又称本地双活。 如果选用的是云服务器,云服务器运营商会提供比较完备的运维服务。在使用过程中,我们一般只需要关心个人资料的保存的就可以了。可以采用云服务器 + 云存储的形式,例如腾讯云的服务器可以搭配腾讯云的 COS 定时保存数据库资料和站点资料。 如果使用的是 nas,可以采用 raid 方案 + 定期备份到外置存储或云存储
个人服务器维护小书·发布于 4 年前

DevOps (2)| 操作系统选择

服务器操作系统主要分成三大派系:Linux、Unix、Windows Server。 Linux 系统衍生了一系列的发行版,基于 Linux 的发行版都是开源的,而且绝大多数 Linux 发行版都是免费的,所以 Linux 系统在服务器操作系统上占了绝大部份市场。 Unix 在服务器早期因为版权争论,导致发展一度停滞,后续发展跟不上随着开源发展的 Linux 系统。在个人服务器操作系统领域使用较少。 Windows Server 是闭源收费的,在服务器操作系统领域占用一定份额。一般为公司使用,个人较少少用。 Li
个人服务器维护小书·发布于 4 年前

DevOps (3)| 域名选择

一个合适的域名对于公司和个人来说都很重要。 京东花了 3000 万购买 jd.com 域名;小米花了 2243 万购买 mi.com 域名;唯品会花了 1200万购买 vip.com 域名。当然作为个人使用,我们不需要花费如此高的价格来购买域名。不过一个好记的域名可以为自己省不少的心。国内和国外都有一些提供域名购买服务的域名注册商。我们可以根据自己的需要购买。 域名商 国内 腾讯云(dnspod) 阿里云(万网) 国外 godaddy dynadot dnspod 和 万网是国内最大的两个域名注册商。dn
个人服务器维护小书·发布于 4 年前

DevOps (1)| 服务器选择

近几年云服务器高速发展,国内和国外都涌现了许多云服务厂商,例如阿里云、百度云、腾讯云、滴滴云、aws、google cloud。下面就自己使用过的一些云服务器和 nas 提供下选购参考。 国内 阿里云 腾讯云 国外 搬瓦工 vultr linode 自建 群晖 腾讯云和阿里云 国内腾讯云和阿里的可访问性较高,稳定性可靠。如果不想备案的话,可以选择国外带 CN2 路线的服务器提供商。或者选择腾讯云、阿里云提供的香港主机,不过相对大陆主机价格会高一些。 搬瓦工 搬瓦工一直提供性价比比较高的主机,CN2
个人服务器维护小书·发布于 4 年前

vim 极简指南:入门篇

vim 中分为三种模式 命令模式 输入模式 底线命令模式 命令模式 命令模式用来操作光标和操作文本(复制行,拷贝行)等功能 vim 默认启用的便是命令模式。命令模式提供了大量的快捷键。vim 的强大之处便是来源于这些众多的快捷键。掌握下面 4 组 11 个命令便可以胜任日常基础的操作了。 方向键 使用键盘带的方向键即可实现光标上下左右移动,vim 中另外提供了一套方向键用来移动光标,相对于方向键来说 k 、j 、h 、l 更接近其它快捷键,操作更为方便一些。 k 上 j 下 h 左 l 右 文件光标
发布于 5 年前

漫谈 Event loop

Philip Roberts 在 JSConf EU 大会上分享了对 Event Loop 的理解,并写了一个可视化工具来展示 Event Loop 的过程。 Event Loop 中最重要的三个概念就是:任务队列,Web Api,调用栈。 调用栈 JS 是单线程的,意味着任意时刻都只有一个任务在执行。同步任务会按顺序进入执行栈。异步任务以队列形式排序等待进入执行栈。所有的异步任务都是在同步任务之后执行。 闭包 在执行 timeout 函数时,我们会发现内部的 log 函数会随后进入调用栈,当 log 函数
发布于 6 年前

漫谈前端安全

XSS 和 CSRF 是前端中常见的攻击。 XSS XSS ( Cross Site Scripting ) 跨站脚本攻击 就是浏览器解析了用户恶意输入的内容,导致页面出现问题。例如:评论中注入脚本弹出弹窗,那么其它用户打开的时候就会弹出弹窗,干扰网页正常运行。 XSS 主要分成两个过程:注入,解析。有些用户输入的信息还会存储到数据库中,就被称为存储型 XSS 攻击。而没有存储过程的攻击被称为反射型 XSS 攻击。 转义 防范 XSS 攻击,主要是如何正确解析。常见的解决方案就是转义,例如将 < 转义为 &lt
发布于 6 年前

JS 概念蓝图

JavaScript,通常缩写为JS,是一种高级的,解释执行的编程语言。 JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。 它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支
发布于 6 年前

漫谈内存泄漏问题

在实现 Stack 数据结构的时候使用到了 WeakMap 来实现私有化。 使用 Map 其实也能实现私有化,但是 Map 存在内存泄露的风险。 WeakMap 与 Map 唯一的区别就是弱引用。 弱引用 WeakMap 的键只能以引用类型作为键,并且这个键是弱引用的。 弱引用的对象不参与引用计数。当 GC 发生时,若对象不存在强引用,该对象便会被回收。 Map 内存分析 let Stack = (function () { let map = new Map() class Stack {
发布于 6 年前

深入 Vue 响应式原理

在 Vue 3 之前,Vue 使用了 Object.defineProperty() 来实现响应式。 什么是响应式? 简单来说就是当数据发生修改时,视图会进行相应的更新。 观察者模式 在分析 Object.defineProperty() 的 API 之前,我们先来看下观察者模式,这样对响应式中的依赖收集,分发有个感性的认知。 观察者模式在前端开发中很常见,例如事件模型。当我们给 DOM 对象添加一个事件监听器时,DOM 对象就增加了一个新的依赖,这个过程就被称为依赖收集。当触发 DOM 的事件时,所有相关
发布于 6 年前

一分钟启用永久免费的 https

为推进 http 向 https 过度, 互联网安全研究小组推出了 Let's Encrypt 项目。 Let's Encrypt 提供了免费的 SSL 证书,证书的有效期只有 90 天,但是到期可以续签。 利用 certbot 可以实现快速部署并续签 SSL 证书。 安装环境 CentOS 7 Nginx 操作步骤 # 安装 epel 源 $ yum install -y epel-release # 启用 epel 源 $ yum install -y yum-utils && yum-config-
发布于 6 年前

利用反向代理实现单服务器绑定多个子域名

当服务器上运行了多个服务,例如 wordpress、drone ci、gitlab 等等,该如何将这些服务绑定到子域名上? 在此之前,我们需要了解域名解析中常见的记录类型。 域名解析 常见的记录类型如下 | 记录类型 | 释义 | | ------ | ------ | ------ | | A(A记录) | 将域名指向一个 IPV4 地址 | | CNAME(CNAME记录) | 将域名指向另外一个域名 | | Forward (显性URL转发) | 将域名重定向到另外一个地址 | | Stealth For
发布于 6 年前

漫谈防抖和节流的应用

在使用 Mac 开发的过程中会安装了一些服务,例如:MySQL。当服务多起来之后,我们该如何管理这些服务? Homebrew 是 Mac 下强大的第三方包管理工具。除了包管理功能外,Homebrew 也提供服务管理的功能。使用 Homebrew 安装服务之后便可以使用 brew services 命令去管理安装的服务。 查看安装的服务 $ brew services list Name Status User Plist mongodb stopped [email protected] stopped
发布于 6 年前

漫谈防抖和节流的应用

防抖节流在很多需要限制操作频率的地方会用到。常见的应用场景就是竞技游戏。 游戏中的施法前摇就是使用了防抖。施法 CD 就是使用了节流。 在 DOTA 游戏中,撼地神牛的沟壑施法时需要把图腾取出来然后抡下来出现沟壑,这样技能才算施放完成。从开始施法都施放完成需要 0.69s。这个就是施法前摇。 在施法前摇的过程中,可以通过按 S 键打断施法,这时技能未能施放,不会进入 CD。 当施放完成后技能就会进入 15s 的 CD 期,等到 CD 完成后才可以继续施放技能。 前端中的防抖和节流 在前端中,防抖经常会被用到异步
发布于 6 年前

理性分析 JavaScript 中的原型

在类继承的语言中,比如 Java ,使用了类来描述实例对象的行为。JavaScript 中没有类,所以也没有使用类继承。采用的是原型继承的方式。 原型继承使用对象来描述实例对象的行为,这个描述行为的对象就是原型对象(prototype)。 prototype prototype 是所有函数都具有的属性。当一个函数被作为构造函数生成一个实例对象时,prototype 就是这个实例对象的原型对象。 constructor constructor 表示生成该实例对象的构造函数。 但是实例对象是不存在 construct
理性分析 JavaScript·发布于 7 年前

理性分析 AJAX 跨域问题

跨域(Cross origin)问题是前端中比较常见的问题。 要解决跨域问题,我们需要明白是什么导致跨域问题的? 同源策略 跨域问题源于浏览器的安全策略。为了保护数据的安全性和完整性,浏览器使用了同源策略(Same origin policy),以防止恶意脚本从当前源获取其他源的敏感数据。 需要注意的是,浏览器并不限制当前源发送信息到其他源,而是限制接收其他源的数据。 同源策略是浏览器的安全策略。使用非浏览器程序就没有这个限制。例如,我们使用 postman 来测试 API 就没有跨域问题。使用 node.js
理性分析 JavaScript·发布于 7 年前

理性分析 JavaScript 中的继承

本文将从最简单的例子开始,从零讲解在 JavaScript 中如何实现继承。 小例子 现在有个需求,需要实现 Cat 继承 Animal ,构造函数如下: function Animal(name){ this.name = name } function Cat(name){ this.name = name } 注:如对继承相关的 prototype、constructor、__proto__、new 等内容不太熟悉,可以先查看这篇文章:理性分析 JavaScript 中的原型 继承 在实现
理性分析 JavaScript·发布于 7 年前

理性分析 JavaScript 中的 this

在每一个方法中,关键字 this 表示隐式参数。 —— 《Java 核心技术 卷Ⅰ》 this 是什么? 了解 python 的同学可能会知道,python 构造函数中总是会出现 self 参数。这个参数用来表示创建的实例对象。 class Student(object): def __init__(self, name, score): self.name = name self.score = score 在 JavaScript 和 Java 中这个参数被隐藏了
理性分析 JavaScript·发布于 7 年前