1.本文所包含的所有信息和建议仅供参考和介绍性目的。我不对这些信息的准确性、完整性或实用性作任何明示或暗示的保证。

2.客户采取本文中提供的任何建议或指南的行动完全是基于其自己的决定和风险。我不对您因依赖本文中提供的信息而导致的任何直接或间接损失或损害承担责任。

3.本文可能提及或推荐使用第三方脚本、工具或服务。我不对这些第三方内容的功能性、安全性或合法性作任何声明或保证,并且不对您因使用这些内容而导致的任何问题承担责任。

4.客户需对其系统安全负有责任,并且应该根据其需求、技能和环境来决定采取哪些安全措施。本文提供的建议仅供参考,不应视为最终的、全面的安全解决方案。

5.本文所介绍的操作基于Debian和Ubuntu Linux发行版。我无法保证这些操作适用于所有Linux发行版,因为不同的发行版可能具有不同的配置和软件包管理方式。在执行本文中提到的操作之前,请确保您理解并确认这些操作适用于您正在使用的Linux发行版。

DD系统(可选,推荐)

DD系统,就是通过网络重装系统,而不是传统的通过u盘或者是控制面板重装系统。而DD脚本就是一键网络重装系统,通过自动化脚本执行所有的DD步骤,你只需要执行一行命令即可DD完成,方便快捷。

为什么要DD系统?

基本所有的VPS服务器商家,都会提供免费的Linux系统供安装,比如CentOS、Debian、Ubuntu等。那为什么还要使用一键DD脚本重装/更换系统呢?

服务商提供的系统版本有限,可能没有自己需要的版本。
服务商的系统安装有自己不想要的服务,比如国内的阿里云盾(安骑士)。
服务商的系统无法安装特定软件,比如很挑内核的锐速。
服务商限制重装系统的次数,DD系统可以绕过。

以上的情况,一键DD脚本就可以为服务器更换一个纯净的系统,帮你解决问题。

DD脚本

leitbogioro脚本

项目地址:https://github.com/leitbogioro/Tools

个人推荐用来DD成Linux

详细用法请参考 https://github.com/leitbogioro/Tools

1
bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh') -debian 12 -pwd '自定义root密码' -port "自定义ssh端口"

MoeClub脚本

项目地址:网友备份的站点

大多数DD脚本都是依照萌咖脚本二次开发的

详细用法请参考 https://github.com/veip007/dd

1
2
3
4
5
6
bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 12 -v 64 -p 密码 -port 端口 -a -firmware

谷歌云DD
bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') --ip-addr 内网ip --ip-gate 内网网关(子网的第一个可用地址) --ip-mask 子网掩码(就是255.255.255.0) -d 12 -v 64 -a -p "Acb6C+3d4-2489" -port "10010"
如下
bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 12 -v 64 -a --ip-addr 10.148.0.2 --ip-gate 10.148.0.1 --ip-mask 255.255.255.0 -p "Acb6C+3d4-2489" -port "10010"

检测脚本

融合怪测评脚本

项目地址及详细用法请参考:https://github.com/spiritLHLS/ecs

也许是最全能的VPS服务器测评脚本

1
bash <(wget -qO- bash.spiritlhl.net/ecs)

IP质量体检脚本

项目地址及详细用法请参考:https://github.com/xykt/IPQuality

1
bash <(curl -Ls IP.Check.Place)

修改主机名

1
2
3
4
5
6
7
8
9
10
#查看主机名
hostname
#修改主机名
vim /etc/hostname
#更新 /etc/hosts 文件
vim /etc/hosts
#重启网络服务
systemctl restart systemd-hostnamed
#重启系统
reboot

升级安装Packages

1
2
3
4
5
6
#切换到root用户
sudo -i
#更新软件包列表和软件及删除无用软件依赖
apt update && apt upgrade -y && apt dist-upgrade -y && apt full-upgrade -y && apt autoremove -y
#Debian系统比较干净,安装常用的软件
apt install wget curl sudo vim git lsof ufw -y

UFW防火墙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#启用 ufw
ufw enable
#允许流量通过端口
ufw allow 22
#删除规则
ufw delete allow 22
#禁止流量通过端口
ufw deny 22
#检查防火墙状态
ufw status
#重启防火墙
ufw reload
#检查开机启动状态-返回enabled
systemctl is-enabled ufw

添加SWAP虚拟内存和开启BBR加速

注意:VPS 的内存如果过小,建议设置一下 SWAP,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅!

综合工具箱脚本(强烈推荐,集成了很多脚本,部分脚本未及时更新)

1
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

BWyEDHDayG

选择 18,然后输入你想要扩容的数值即可(下面是源脚本)

1
2
#moerats的swap脚本
wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh

nYhZAuFdwqu

选择 17,然后选择你想要使用的加速即可
该脚本发现未更新,下面是源脚本

1
2
3
4
#ylx的bbr脚本-不卸载内核版本
wget -O tcpx.sh "https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcpx.sh" && chmod +x tcpx.sh && ./tcpx.sh
#ylx的bbr脚本-卸载内核版本
wget -O tcp.sh "https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

工具箱的旧版

pdAqbGD

源版本
fLLJujb

BBR加速(Linux Kernel 内核需要4.9及以上版本)

如不想使用上述的一键脚本,可使用以下命令

1
2
3
4
5
6
uname -srm
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

更改SSH端口(使用DD脚本可自定义SSH端口)

1
2
3
4
5
6
7
8
9
10
#打开SSH配置文件
vim /etc/ssh/sshd_config
#更改SHH端口为2222
Port 2222
#放行防火墙端口
ufw allow 2222
#重启SSH服务
systemctl restart sshd
#确认端口已修改
ss -ltn

更改SSH密码

1
2
#系统将提示您输入当前密码,然后再输入新密码两次以确认
passwd

配置密钥登陆(可选,推荐)

本地CMD或Powershell生成公私钥,默认下pub后缀为公钥

1
2
#使用OpenSSH私钥格式生成迭代次数为256次的Ed25519类型的SSH密钥对
ssh-keygen -o -a 256 -t ed25519

aWXeVEU

复制公钥到服务器~/.ssh的authorized_keys文件

1
2
3
4
5
6
7
8
#如果目录不存在mkdir ~/.ssh
cd ~/.ssh
#将复制的公钥文件内容粘贴保存
vim authorized_keys
#配置文件权限
chmod 600 authorized_keys
#重启SSH服务
systemctl restart sshd

尝试使用密钥登录,这里我使用CMD完成,你也可以使用SSH客户端

1
2
3
4
#私钥登录
ssh -i "{/entire/path/to/your/privkey/with/filename}" {user}@{server ip}
#如果更改了默认端口需要加上-p 新端口
ssh -i "C:/Users/loverorien/.ssh/id_ed25519" -p 新端口号 root@192.3.255.66

如果登录失败,请配置sshd_config的PubkeyAuthentication yes

配置/etc/ssh/sshd_config,自行选择

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 端口, 默认22
#Port 22
# 监听地址相关, 不需修改
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# Ciphers and keying
#RekeyLimit default none
# 日志
# 指定将日志消息通过哪个日志子系统(facility)发送
SyslogFacility AUTH
# 指定日志等级
LogLevel INFO
# 鉴权
# 限制用户必须在指定的时限(单位秒)内认证成功
LoginGraceTime 2m
# 允许root用户登录
PermitRootLogin yes
# 指定是否要求sshd(8)在接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查
StrictModes yes
# 指定每个连接最大允许的认证次数
MaxAuthTries 6
# 最大允许保持多少个连接。默认值是 10
MaxSessions 10
# 是否开启公钥认证, 仅可以用于SSH-2. 默认值为"yes"
PubkeyAuthentication yes
# 是否允许密码验证
PasswordAuthentication no
# 是否允许空密码
PermitEmptyPasswords no
# 是否允许质疑-应答(challenge-response)认证
ChallengeResponseAuthentication no
# 是否通过PAM验证
UsePAM yes
# 是否允许X11转发
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
# 指定sshd是否在每一次交互式登录时打印 /etc/motd 文件的内容
PrintMotd no
# 指定sshd是否在每一次交互式登录时打印最后一位用户的登录时间
PrintLastLog yes
# 配置超时
TCPKeepAlive yes
ClientAliveInterval 120
ClientAliveCountMax 10
# 配置Pid
PidFile /var/run/sshd.pid
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
# override default of no subsystems
Subsystem sftp /usr/lib/openssh/sftp-server

安装 Nginx

按照官方文档根据你的系统执行命令即可

1
https://nginx.org/en/linux_packages.html

uEXwqbs

相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#启动命令 (直接运行/系统服务管理器)
nginx
systemctl start nginx
#查看 Nginx 版本
nginx -v
#指定 Nginx 配置文件
nginx -c /etc/nginx/nginx.conf
#验证 Nginx 配置文件是否有误
nginx -t
#立即停止 Nginx
nginx -s stop
#平滑停止 Nginx
nginx -s quit
#重新加载 Nginx 配置文件并重启
nginx -s reload

安装 Docker 环境

安装 Docker(非中国大陆服务器)

1
2
3
4
5
6
7
8
#安装 Docker(官方源 阿里源 中国区Azure源)
wget -qO- get.docker.com | bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud
#查看 Docker 版本
docker -v
#设置 Docker 开机自启
systemctl enable docker

安装 Docker-compose(非中国大陆服务器)

1
2
3
4
5
6
7
8
#安装 指定版本Docker Compose
curl -L "https://github.com/docker/compose/releases/download/2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#安装 最新Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加执行权限
chmod +x /usr/local/bin/docker-compose
#查看 Docker Compose 版本
docker-compose --version

卸载 Docker

1
2
3
4
5
6
7
8
9
10
11
12
#停止并删除所有运行中的容器
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
#删除所有镜像
docker rmi $(docker images -q)
#卸载 Docker,并删除其相关的所有文件
apt-get purge docker-ce docker-ce-cli containerd.io
apt-get autoremove
#删除 Docker 存储数据的目录
rm -rf /var/lib/docker
#删除 Containerd 存储数据的目录
rm -rf /var/lib/containerd

修改 Docker 配置(可选)

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF

Acme证书

详细用法请参考 https://github.com/acmesh-official/acme.sh

DNS API方式 https://github.com/acmesh-official/acme.sh/wiki/dnsapi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#安装 Acme.sh
curl https://get.acme.sh | sh
#配置环境变量(软链接)
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
#查看 Acme.sh 版本
acme.sh --version
#切换CA证书颁发机构
acme.sh --set-default-ca --server letsencrypt
#DNS API方式申请证书 API令牌到对应服务商获取
##如name.com
export Namecom_Username="leakkc"
export Namecom_Token="edec485cdfa7e62511ab6b9e333ce94183bed261"
##如cloudflare
export CF_Token="glcOIFRlGEl2Yj8Escm8lRcdWbxodkQFyzV9bW3q"
export CF_Account_ID="ffa46c8dcb754ee169e5c2b566b52b25"
#申请泛域名证书
acme.sh --issue --dns dns_cf -d 你的域名 -d '*.你的域名' [-k ec-256]
acme.sh --issue --dns dns_cf -d love.com -d '*.love.com' -k ec-256
#安装证书到Nginx(可选)
acme.sh --install-cert -d love.com -d *.love.com --key-file /etc/cert/privkey.key --fullchain-file /etc/cert/fullchain.cer --ecc --reloadcmd "systemctl restart nginx"
#强制更新证书,默认60天自动更新
acme.sh --renew -d example.com --force [--ecc]
#停止更新证书(删除证书)证书/密钥文件需自行删除相应的目录
acme.sh --remove -d example.com [--ecc]
#升级acme.sh(可开启自动升级)
acme.sh --upgrade [--auto-upgrade]
#禁用自动升级
acme.sh --upgrade --auto-upgrade 0