VPS服务器重装Linux系统&优化并安装中文版portainer管理docker
以下为我自己在执行过程中参考网上资料进行的步骤,在此做个备份记录,希望可以帮助到有同样需求的伙伴
目录
以下为我自己在执行过程中参考网上资料进行的步骤,在此做个备份记录,希望可以帮助到有同样需求的伙伴
一、DD重装系统
这里使用的是 https://github.com/bin456789/reinstall 大佬的DD脚本。
[!WARNING]
❌ 本脚本不支持 OpenVZ、LXC 虚拟机
1.1 下载(当前系统是 Linux)
国外服务器:
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O ${_##*/} $_
国内服务器:
curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O ${_##*/} $_
1.2 下载(当前系统是 Windows)
!!!请先关闭
Windows Defender的实时保护功能。该功能会阻止certutil下载任何文件。!!!
解决 Windows 7 下无法下载脚本
由于不支持 TLS 1.2、SHA-256、根证书没有更新等原因,Vista,7 和 Server 2008 (R2)
可能无法自动下载脚本,因此需要手动下载,具体操作如下:用 IE 下载 (先在 IE 高级设置里启用 TLS 1.2),或者通过远程桌面,将这两个文件保存到同一个目录
使用时运行下载的
reinstall.bat
国外服务器:
certutil -urlcache -f -split https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.bat
国内服务器:
certutil -urlcache -f -split https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.bat
1.3 安装 Linux
此功能会清除当前系统整个硬盘的全部数据(包含其它分区)!
数据无价,请三思而后行!
- 用户名为
root,脚本会提示输入密码,不输入则使用随机密码 - 安装最新版可不输入版本号
- 最大化利用磁盘空间:不含 boot 分区(Fedora 例外),不含 swap 分区
- 自动根据机器类型选择不同的优化内核,例如
Cloud、HWE内核 - 安装 Red Hat 时需填写 https://access.redhat.com/downloads/content/rhel 得到的
qcow2镜像链接,也可以安装其它类 RHEL 系统,例如Alibaba Cloud Linux和TencentOS Server - 重装后如需修改 SSH 端口或者改成密钥登录,注意还要修改
/etc/ssh/sshd_config.d/里面的文件
bash reinstall.sh anolis 7|8|23
rocky 8|9|10
oracle 8|9|10
almalinux 8|9|10
opencloudos 8|9|23
centos 9|10
fedora 42|43
nixos 25.05
debian 9|10|11|12|13
alpine 3.19|3.20|3.21|3.22
opensuse 15.6|16.0|tumbleweed
openeuler 20.03|22.03|24.03|25.09
ubuntu 16.04|18.04|20.04|22.04|24.04|25.10 [--minimal]
kali
arch
gentoo
aosc
fnos
redhat --img="http://access.cdn.redhat.com/xxx.qcow2"
可选参数
--password PASSWORD设置密码--ssh-key KEY设置 SSH 登录公钥,格式如下。当使用公钥时,密码为空--ssh-port PORT修改 SSH 端口(安装期间观察日志用,也作用于新系统)--web-port PORT修改 Web 端口(安装期间观察日志用)--frpc-toml PATH添加 frpc 内网穿透,参数填本地路径或 HTTP 链接--hold 1仅重启到安装环境,不运行安装,用于 SSH 登录验证网络连通性--hold 2安装结束后不重启,用于 SSH 登录修改系统内容,Debian/Kali 会挂载在/target,其它系统会挂载在/os
[TIP]
可通过多种方式(SSH、HTTP 80 端口、商家后台 VNC、串行控制台)查看安装进度。
即使安装过程出错,也能连接 SSH 手动救砖。
目标系统非 Debian/Kali 时,可以运行
/trans.sh alpine自动救砖成 Alpine 系统。
实验性功能云镜像安装 Debian
- 适合于 CPU 较慢的机器
bash bash reinstall.sh debian --ciISO 安装 CentOS, AlmaLinux, Rocky, Fedora
- 仅支持内存大于 2G 且为动态 IP 的机器
- 密码
123@@@,SSH 端口22,不支持用参数修改
bash bash reinstall.sh centos --installerISO 安装 Ubuntu
- 仅支持内存大于 1G 且为动态 IP 的机器
- 密码
123@@@,SSH 端口22,不支持用参数修改
bash bash reinstall.sh ubuntu --installer
1.4 实操
在本文中,我们安装debian13系统,并且自定义ssh端口和密码,使用以下命令:
bash reinstall.sh debian 13 --password <自定义密码> --ssh-port <自定端口>
等待命令跑完后,使用 reboot 重启系统,让系统自动开始安装,大约10分钟后,使用刚才设定的端口和密码ssh连上系统。
由于刚重装的系统可能有些软件包不是最新的,这时我们可以使用apt update 和 apt upgrade命令更新下:
apt update
apt upgrade -y
apt update命令
这是一个主要在新系统安装之后或安装新软件包之前调用的命令。apt update 命令更新 Linux 系统的包索引或包列表。它不会升级任何软件包。它为您系统上的 PPA 和存储库获取最新的软件包列表,并确保它们是最新的。
apt upgrade命令
apt upgrade命令将软件包升级到最新版本,并在需要它们作为依赖项时安装新软件包。它不会删除任何包,如果指定要删除任何包,它会跳过它们。
除此之外,还可以安装一些基础的软件包和命令:
apt install wget curl sudo vim net-tools unzip -y

二、设置和开启虚拟内存swap
2.1 介绍
SWAP是Linux系统中的一种虚拟内存,用于扩展物理内存的容量。当系统内存不足时,SWAP会将部分磁盘空间用作虚拟内存,以支持更多的应用程序运行。在VPS服务器环境中,SWAP的配置同样至关重要,它可以帮助我们提高系统的并发处理能力和稳定性。
2.2 设置步骤
- 打开SWAP功能:在Linux系统中,通过运行以下命令开启SWAP功能:
sudo swapoff -a
- 创建SWAP文件:使用以下命令创建一个指定大小的SWAP文件:
sudo fallocate -l <size> /swapfile
其中,代表SWAP文件的大小,单位为GB。例如,要创建一个2GB的SWAP文件,可以输入:
sudo fallocate -l 2G /swapfile
- 设置文件权限:为了确保SWAP文件的安全性,需要设置文件的权限,仅允许root用户读写:
sudo chmod 600 /swapfile
- 启用SWAP文件:运行以下命令将SWAP文件启用:
sudo mkswap /swapfile
- 启用SWAP功能:运行以下命令开启SWAP功能:
sudo swapon /swapfile
- 持久化SWAP配置:为了确保SWAP配置在系统重启后依然有效,需要将配置写入磁盘。运行以下命令完成此操作:
sudo echo '/swapfile none swap sw 0 0' >> /etc/fstab
- 监控SWAP使用情况:通过运行以下命令,可以查看SWAP的使用情况:
free -h
完整命令:
sudo swapoff -a
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo echo '/swapfile none swap sw 0 0' >> /etc/fstab
free -h

2.3 一键命令
也可以使用一键命令一键设置swap
wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh
三、开启TCP BBR拥塞控制算法,加速网络访问
3.1 什么是BBR
BBR 是一种拥塞控制算法, 由Google设计,可以在 Linux 上启用 TCP BBR 可以显著改善服务器整体网络传输效率。
默认情况下,Linux 使用传统的 Reno 和 CUBIC 拥塞控制算法。
BBR解决了两个问题:
- 在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
- 降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。
因此我们可以利用BBR来在服务器上做加速,来提高用网络的链接速度。
3.2 操作步骤
- 查看系统当前拥塞控制算法:
sysctl net.ipv4.tcp_congestion_control

这里表示单签默认算法策略是cubic
- 配置开启 BBR 算法策略:
# 临时生效
sysctl net.ipv4.tcp_congestion_control=bbr
sysctl net.core.default_qdisc=fq
# 安全追加配置文件永久生效
cat << EOF >> /etc/sysctl.conf
net.ipv4.tcp_congestion_control=bbr
net.core.default_qdisc=fq
EOF
# 刷新生效配置
sysctl -p

- 检查是否生效:
sysctl net.ipv4.tcp_congestion_control

net.ipv4.tcp_congestion_control = bbr # 算法策略显示 bbr 说明生效。
3.3 Linux网络优化TCP窗口调优
wget http://sh.nekoneko.cloud/tools.sh -O tools.sh && bash tools.sh
四、Fail2banSSH防御脚本
这是一个利用iptables和开源程序fail2ban来进行服务器简单防爆破的脚本。默认自带SSH防御规则。
安装
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log
- 第一步选择是否修改SSH端口。
- 第二步输入最多尝试输入SSH连接密码的次数
- 第三步输入每个恶意IP的封禁时间(单位:小时)
卸载
wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh && bash uninstall.sh
注意事项
安装完成后请会重启SSH服务,请重新连接SSH会话 若出现SSH无法连接的情况,请检查是否修改过SSH端口,请填写写改后的正确端口进行连接
五、挂载数据盘
有些vps会是系统盘+数据盘的形式,重装完后,数据盘需要自己手动挂载上去。
5.1 查看磁盘信息
列出所有可用块设备的信息,而且还能显示他们之间的依赖关系:
lsblk

5.2 硬盘实体使用情况
fdisk -l

5.3 显示磁盘分区挂载情况
# 按MB展示
df -k
# 按GB展示
df -h

此时可以看出,我们的数据盘sda并没有挂载
5.4 格式化数据盘 (注意数据安全)
mkfs.ext4 <磁盘路径>
从上一步的磁盘信息可以知道,数据盘路径为:/dev/sda,所以我们使用mkfs.ext4 /dev/sda 来格式化分区
5.5 挂载磁盘到目录
#在根目录下创建文件夹
mkdir /data
#挂载到目录
mount /dev/sda /data

5.6 查看挂载是否成功

5.7 配置重启自动挂载
云服务器系统挂载磁盘时不推荐使用mount的方法来挂载磁盘,因为云中设备的顺序编码在关闭或者开启云服务器过程中可能发生改变,所以推荐使用UUID来配置自动挂载数据盘。
5.7.1 查询磁盘分区的UUID
先查看磁盘分区号
blkid /dev/sda

5.7.2 绑定分区与目录
需要在/etc/fstab添加分区信息与目录之间的绑定信息
cat << EOF >> /etc/fstab
UUID=xxxxxxxxxxxxxxxxxxxx /data ext4 defaults 0 1
EOF
六、获取Linux性能和硬件信息
对于刚重装完成的系统,我们可以通过一些脚本
6.1 融合怪测评脚本
使用融合怪测评脚本 https://github.com/spiritLHLS/ecs?tab=readme-ov-file 可以对服务器的基础信息有所了解
使用命令为:
curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh

执行完后,会列出当前服务器的基础硬件信息和性能信息
6.2 YABS
除此之外,也可以使用国外比较常用的yabs脚本来测评https://github.com/masonr/yet-another-bench-script ,执行命令为:
curl -sL https://yabs.sh | bash
或
curl -sL https://yabs.sh | bash
执行结果如下:
由于这个是国外的脚本,网络测试都是国外的网站,我们可以不测试网络性能,运行 Geekbench 5 测试并禁用 Geekbench 6 测试和iperf (网络性能) 测试
curl -sL https://yabs.sh | bash -s -- -i -5
七、安装docker
7.1 使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
7.2 手动安装
- 更新软件包
首先,更新现有的软件包和包缓存:
sudo apt update
sudo apt upgrade
- 安装依赖包
安装一些需要的依赖包,这些包允许 apt 使用 HTTPS 协议来访问 Docker 仓库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker 官方 GPG 密钥
使用下面的命令来添加 Docker 官方的 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 添加 Docker 仓库
添加 Docker 官方的 APT 软件源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 更新 APT 软件包缓存
添加仓库后,更新 APT 包索引:
sudo apt update
确保你现在从 Docker 官方仓库安装 Docker 而不是 Debian 默认仓库:
apt-cache policy docker-ce
你应该看到它指向 https://download.docker.com/,确保这就是官方的 Docker 仓库。
- 安装 Docker
现在,你可以安装 Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 启动并验证 Docker
启动 Docker 并设置为开机自启:
sudo systemctl start docker
sudo systemctl enable docker
你可以使用以下命令来验证 Docker 是否安装成功:
sudo docker --version
运行以下测试命令确保 Docker 正常工作:
sudo docker run hello-world
7.3 卸载 docker
删除安装包:
sudo apt-get purge docker-ce
删除镜像、容器、配置文件等内容:
sudo rm -rf /var/lib/docker
八、安装中文版portainer
这里使用的是https://hub.docker.com/r/6053537/portainer-ce 源码仓库https://github.com/eysp/portainer-ce
8.1 一键安装代码
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce
如果不想用默认的端口,可以把其中的 -p 9000:9000 可以改为-p <自定义端口>:9000
8.2 163镜像安装
portainer-ce中文,访问dockerhub网速不好的尝试
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock hub-mirror.c.163.com/6053537/portainer-ce
8.3 Docker Desktop on Windows 安装中文 Portainer
docker run -d -p 9000:9000 --name portainer --restart always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine -v portainer_data:C:\data 6053537/portainer-ce
如果你要启用ssl访问,远程主机建议启用,端口443和证书路径/certs请自行更改
docker run -d -p 8000:8000 -p 443:9443 --name portainer --restart always -v
~/local-certs:/certs -v portainer_data:/data 6053537/portainer-ce -v /var/run/docker.sock:/var/run/docker.sock --ssl
--sslcert /certs/portainer.crt --sslkey /certs/portainer.key
或者你也可以启用Nginx反代,下面是代码
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
如果你只想要访问youname.com/portainer这样的子目录也可以
location ^~ /portainer/ {
proxy_pass http://127.0.0.1:9000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

更多推荐

所有评论(0)