1、重做系统
一键DD脚本
DD完Debian 11,内存只用了46M。
链接:
https://github.com/bin456789/reinstall
https://github.com/leitbogioro/Tools
更新软件包列表并升级已安装的软件包
apt update -y && apt dist-upgrade -y
调整Swap虚拟内存
wget https://raw.githubusercontent.com/zhucaidan/swap.sh/main/swap.sh && bash swap.sh
自动同步校正系统时间
使用 timedatectl 管理时间
apt install systemd-timesyncd timedatectl set-ntp true
查看当前时间信息
timedatectl status
如NTP service为active代表已成功开启
Local time: Thu 2024-02-08 01:34:01 CST Universal time: Wed 2024-02-07 17:34:01 UTC RTC time: Wed 2024-02-07 17:34:01 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no
设置时区为上海时间
timedatectl set-timezone Asia/Shanghai
解锁 DNS
通过以下命令来同时添加 154.12.177.22 和 8.8.8.8 两个 DNS 服务器到 /etc/resolv.conf
echo -e "nameserver 154.12.177.22\nnameserver 8.8.8.8" > /etc/resolv.conf
为了防止 NetworkManager 或 systemd-resolved 在重启或网络重连时覆盖 /etc/resolv.conf,可加锁:
chattr +i /etc/resolv.conf
解锁命令(如果需要修改):
chattr -i /etc/resolv.conf
验证是否生效
cat /etc/resolv.conf
dig google.com @154.12.177.22
如果解析正常,则说明 DNS 更换已成功,且支持解锁效果。
Debian开启BBR
一键开启BBR,优化VPS速度
echo -e "\nnet.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf && sysctl -p
查看是否成功开启
sysctl net.ipv4.tcp_congestion_control
若返回如下,则表示启动成功:
net.ipv4.tcp_congestion_control = bbr
2、修改服务器端口
新购机器SSH都是默认22端口,并且密码并不复杂,非常容易被暴力破解。
初级篇
以Debian为例,我们连接上SSH后,需要修改SSH配置文件,配置文件路径为: /etc/ssh/sshd_config
1.我们使用nano命令:nano /etc/ssh/sshd_config
现在进入文件修改页面,我们直接往最下面滑,找到PORT 22,直接修改为你想要的端口,推荐2万以上6万以下
2.然后同时按 Ctrl+X (保存退出的意思)
3.再按 Y 确认
这样你的SSH端口就修改成功了
最后重启SSH服务:
sudo systemctl restart sshd
进阶篇
改为仅密钥登录,非常安全。
其实有很多种生成密钥的方法,我们结合搬瓦工管理密钥的功能,做小白都会的教程。
1.我们打开一个密钥生成网站,随便都可以,比如:https://bkssl.com/ssl/ssh_generate 点击生成密钥。
2.我们把生成的私钥和密钥都下载保存好,复制公钥文本,打开搬瓦工的后台管理面板,点击左侧SSH keys,在输入框粘贴公钥,并点击确认,这样密钥就部署完成,而且每次重装系统,都不用再设置密钥。
3.我们此时已经能用私钥登录服务器,但是我们还要关闭密码登录,才能做到真正的安全。
4.同样使用nano命令配置文件:nano /etc/ssh/sshd_config
5.在SSH配置文件空白处添加禁止密码登录命令:PasswordAuthentication no
6.然后同时按 Ctrl+X (保存退出的意思)
7.再按 Y 确认
8.最后重启SSH服务: sudo systemctl restart sshd
这样你就只能用私钥进行登录
高级篇
安装fail2ban软件,控制登录行为。
fail2ban 是一个用于防止暴力破解 SSH 的工具,比如设置登录SSH失败几次就拉黑,以及每次尝试登录时间间隔。以下是安装步骤
1.输入安装命令: sudo apt install -y fail2ban
2.启动并设置开机自启:sudo systemctl enable –now fail2ban
3.这样你就安装好了,剩下的配置登录次数/间隔等,网上很多教程,就不一一赘述了。其实只要做到进阶篇,仅密钥登录,就完全没问题。
3、系统防火墙
防火墙是可以帮助计算机在内部网络和外部网络之间构建一道相对隔绝的保护屏障,从而保护数据信息的一种技术。如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,那么在远程连接该服务器时,可能会导致访问失败。本文主要介绍在Linux操作系统中,如何开启或关闭系统防火墙。
CentOS
查看防火墙运行状态
系统防火墙默认为关闭状态,您可以使用此命令确认防火墙当前状态。 sudo firewall-cmd --state 说明 not running:系统防火墙为关闭状态。 running:系统防火墙为开启状态。 出现报错-bash: firewall-cmd: command not found:表示未安装系统防火墙,若您需开启防火墙,请执行命令sudo yum install firewalld -y安装防火墙,再参考下方操作开启。
开启防火墙 sudo systemctl start firewalld 注意:如果您希望实现在每次重开机时自动启动服务,执行如下命令,开启开机自动启动防火墙服务。
sudo systemctl enable firewalld 关闭防火墙
sudo systemctl stop firewalld
注意:如果您不希望实现在每次重开机时自动启动服务,执行如下命令,关闭开机自动启动防火墙服务。
sudo systemctl disable firewalld
Debian
在Debian系统中,默认没有安装防火墙,可以通过清空防火墙策略,删除相关屏蔽规则。清空策略前,请务必备份防火墙策略。若需恢复规则,可以使用备份文件恢复防火墙策略。
查看防火墙策略 sudo iptables -L
关闭防火墙:清空防火墙策略。您可以通过清空防火墙策略,删除相关屏蔽规则,实现关闭防火墙功能。
说明
请替换[$Iptables]为实际防火墙策略的备份文件地址。
创建备份文件 sudo touch [$Iptables]
备份防火墙策略 sudo sh -c "iptables-save > [$Iptables]"
清空防火墙策略 sudo iptables -F
开启防火墙:根据备份文件恢复防火墙策略。
您可以通过恢复防火墙策略或者添加新的防护规则开启防火墙功能。
说明
请替换[$Iptables]为实际防火墙策略的备份文件地址。
sudo iptables-restore < [$Iptables]
4、设置IPv4优先
Debian12设置IPv4优先的教程
有些服务器双栈有V4和V6,少数情况下,V6会影响一些访问速度,所以如果没有V6需求,可以设置IPv4优先,具体放下如下。同时也有朋友反应,用了bin456789的DD脚本,改V4优先会断网,这里也补全了教程。
1.检测是否使用了V6:
执行下面命令,如果返回google.com (2607:f8b0:4009:808::200e) 56 data bytes。
ping -c 4 google.com
2.修改gai.conf文件:
vi /etc/gai.conf
将precedence ::ffff:0:0/96 100前的注释#号去掉。
其实到这里就好了,我实测重启后也能继续生效,后面是问AI建议我补充的。
3.修改 interfaces文件(如果你的debian12是通过bin456789等脚本DD安装,要看下这里是否为auto):
vi /etc/network/interfaces
然后将allow-hotplug enp3s0改成auto enp3s0,注意(这里enp3s0,你的服务器上可能显示为其他名称)。
4.重启网络服务,使更改生效:
sudo systemctl restart networking
5.再次检测:
会发现返回了IPv4信息。
ping -c 4 google.com
注意:如果你遇到DNS解锁失效(GPT,网飞等变得不可用,可能是/etc/network/interfaces和/etc/resolv.conf的DNS信息都有需要统一更改)
5、系统优化
基础优化
1.关闭不必要的服务
检查哪些服务在后台运行,并禁用不必要的服务:
systemctl list-units --type=service --state=running systemctl disable --now
常见可以关闭的服务:cups, bluetooth, avahi-daemon, rpcbind 等。
2. 更新系统与软件包
保持系统最新,减少安全漏洞并提升性能:
apt update && apt upgrade -y # Debian/Ubuntu yum update -y # CentOS
3.启用BBR提高网络速度
BBR(Bottleneck Bandwidth and Round-trip propagation time)可以优化TCP传输,提高网络吞吐量:
echo "net.core.default_qdisc=fq" | tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.conf sysctl -p sysctl net.ipv4.tcp_congestion_control
如果返回 bbr,说明启用成功。
CPU与进程优化
1. 限制CPU占用(防止高负载)
安装 cpulimit 限制单个进程的CPU占用:
apt install cpulimit -y # Debian/Ubuntu yum install epel-release -y && yum install cpulimit -y # CentOS cpulimit -e process_name -l 50 # 限制该进程最多使用50%的CPU
2. 限制进程数量(防止资源耗尽)
编辑 /etc/security/limits.conf,为指定用户添加限制:
username hard nproc 200
这样用户 username 最多只能运行 200 个进程。
内存优化
1. 禁用或调整 Swap
Swap 在 VPS 上可能会影响性能,特别是 SSD 方案:
swapoff -a # 关闭 Swap sed -i '/swap/d' /etc/fstab # 防止重启后恢复
如果 VPS 内存较小(512MB~1GB),建议保留 Swap 但优化:
echo "vm.swappiness=10" >> /etc/sysctl.conf sysctl -p
这样系统更倾向于使用物理内存,而非频繁读写 Swap。
2. 清理缓存
定期释放无用的缓存,减少内存占用:
sync; echo 3 > /proc/sys/vm/drop_caches
可以加到 cron 任务中,每天定期执行:
echo "0 4 * * * root sync; echo 3 > /proc/sys/vm/drop_caches" >> /etc/crontab
磁盘与存储优化
1. 使用 Fstrim(针对 SSD VPS)
如果 VPS 使用 SSD,启用 fstrim 以保持性能:
systemctl enable fstrim.timer systemctl start fstrim.timer
2. 提高文件系统 I/O 性能
调整 I/O 调度器:
echo "noop" > /sys/block/sda/queue/scheduler
或者 mq-deadline(适用于大部分 VPS):
echo "mq-deadline" > /sys/block/sda/queue/scheduler
3. 清理日志文件
日志文件过大会影响磁盘空间,定期清理:
journalctl --vacuum-size=100M # 清理日志至100MB
网络优化
1. 调整 TCP 参数
编辑 /etc/sysctl.conf 添加以下内容:
net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 87380 16777216 net.ipv4.tcp_window_scaling=1 net.ipv4.tcp_slow_start_after_idle=0
应用新配置:
sysctl -p
2. 禁用 IPV6(如果不需要)
部分 VPS 的 IPv6 可能影响网络稳定性,建议禁用:
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf sysctl -p
评论前必须登录!
注册