Skip to content

配置与优化

服务器到手后的安全加固与性能调优速查。每条配置都说明 为什么这么改怎么回滚

专题页

  • SSH 安全加固 — 修改端口、禁用 root 密码登录、启用密钥登录并保留回滚方案。
  • BBR 拥塞控制 — 启用 Google BBR 加速 TCP 传输,提升高延迟链路吞吐。
  • 内核调优 — 文件描述符、连接队列、TCP 参数等常用内核优化速查。
  • 防火墙配置 — ufw 与 firewalld 入门配置,放行端口与服务。
  • DNS 配置 — 设置 DNS 服务器、调试解析问题。
  • NTP 时间同步 — 配置 chrony / systemd-timesyncd 保持时间准确。
  • logrotate 日志轮转 — 配置日志自动轮转、压缩与清理。
  • AppArmor 配置与管理 — Ubuntu / Debian 默认的强制访问控制机制,排查应用权限被拒问题。

SSH 安全加固

改 SSH 前务必保留一个已连接的会话

修改 sshd_config 后请 新开一个终端 测试能否登录,确认无误再关闭原会话,避免把自己锁在门外。

bash
# 1. 备份配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

常见加固项(编辑 /etc/ssh/sshd_config,按需启用):

ini
Port 2222                       # 修改默认端口,减少扫描骚扰
PermitRootLogin prohibit-password   # 禁止 root 用密码登录
PasswordAuthentication no       # 仅允许密钥登录(先确认已配好公钥!)
MaxAuthTries 3                  # 限制重试次数
bash
# 2. 配置生效前先做语法检查,再重启
sudo sshd -t && sudo systemctl restart ssh

先放好公钥再禁用密码登录

在本地执行 ssh-copy-id -p 2222 user@服务器IP,确认能免密登录后,再把 PasswordAuthentication 设为 no

回滚:

bash
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config && sudo systemctl restart ssh

开启 BBR 拥塞控制(提升网络吞吐)

BBR 是 Google 开源的 TCP 拥塞控制算法,能显著改善高延迟 / 丢包链路的下载与上传速度。Linux 内核 4.9+ 已内置。

bash
# 写入内核参数并立即生效
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

验证是否启用:

bash
sysctl net.ipv4.tcp_congestion_control   # 应输出 ... = bbr
lsmod | grep bbr                         # 应看到 tcp_bbr

内核 / 网络常用调优

bash
# 提高文件描述符与连接上限(适合高并发场景)
sudo tee -a /etc/sysctl.conf <<'EOF'
fs.file-max = 1000000
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
EOF
sudo sysctl -p

⚠️ 这些值按需调整,盲目加大未必更好。生产环境改动前请评估负载特征。

防火墙

ufw(Ubuntu / Debian 推荐)

bash
sudo apt install -y ufw
sudo ufw default deny incoming      # 默认拒绝所有入站
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp             # 放行你的 SSH 端口(别用默认 22 了)
sudo ufw allow 80,443/tcp           # 放行 HTTP/HTTPS
sudo ufw enable
sudo ufw status verbose

启用防火墙前先放行 SSH 端口

否则 ufw enable 后会立刻把你踢下线。务必先 ufw allow 你正在使用的 SSH 端口。

firewalld(CentOS / Rocky / Alma)

bash
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

基于 MIT 许可发布 · 内容仅供学习交流,自建有风险,跑路需谨慎