一、基础网络优化
1. 禁用 SSH 反向 DNS 解析
SSH 服务端默认会解析客户端 IP 的反向 DNS,若 DNS 响应慢会导致登录延迟。
# 修改 SSH 服务端配置
sudo nano /etc/ssh/sshd_config
# 添加或修改以下参数
UseDNS no
# 重启 SSH 服务
sudo systemctl restart sshd
2. 启用 SSH 加密算法优化
低效的加密算法会增加握手时间,优先使用高性能算法(如 ChaCha20-Poly1305)。
# 修改 /etc/ssh/sshd_config
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@ssh.com
MACs umac-64-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256@libssh.org
# 重启 SSH 服务
3. 使用长连接心跳检测
在客户端配置 SSH 心跳,保持连接活跃。
# 编辑客户端
~/.ssh/config
Host *
ServerAliveInterval 60 # 每 60 秒发送心跳包
ServerAliveCountMax 3 # 最多允许 3 次无响应
二、网络加速方案
1. 启用 TCP BBR 拥塞控制
Google 开发的 BBR 算法可显著提升高延迟或高丢包网络的吞吐量。
# 启用 BBR
sudo bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
# 加载配置
sudo sysctl -p
# 验证是否生效
sysctl net.ipv4.tcp_congestion_control
# 应返回 "bbr"
2. 使用 KCPTUN 加速(基于 UDP 协议)
通过 KCP 协议将 TCP 流量转为 UDP,降低延迟和丢包影响。
# 服务器端安装 KCPTUN(示例)
wget https://github.com/xtaci/kcptun/releases/download/v20230214/kcptun-linux-amd64-20230214.tar.gz
tar -zxvf kcptun-linux-amd64-*.tar.gz
# 启动服务端
./server_linux_amd64 -l :29900 -t 127.0.0.1:22 -key your_password -mtu 1350 -sndwnd 1024 -rcvwnd 1024 -mode fast3
三、SSH 协议替代方案
1. 使用 Mosh 替代 SSH
Mosh 基于 UDP 协议,支持网络波动自动恢复,适合高延迟环境。
# 客户端安装 Mosh(服务器端也需安装)
sudo apt install mosh
# 连接服务器
mosh user@server_ip
2. WebSocket 代理加速
通过 WebSocket 隧道绕过网络限制(如公司防火墙)。
# 使用 websockify 中转
websockify 8080 ssh://server_ip:22#
客户端通过 ws:// 连接
四、服务器端性能排查
1. 检查服务器负载
top # 查看 CPU/内存占用
iftop -i eth0 # 分析网络流量
ping -c 4 server_ip # 测试基础延迟
2. 优化 SSH 日志输出
禁用冗长的 SSH 日志,减少磁盘 I/O。
# 修改
/etc/ssh/sshd_configLogLevel QUIET
五
安全风险:
避免使用弱加密算法(如
arcfour
)。KCPTUN 等工具需配合防火墙限制端口访问。
兼容性:
BBR 要求 Linux 内核 ≥ 4.9,可通过
uname -r
确认。监控工具:
使用
mtr
或traceroute
分析网络路径瓶颈。
目前有0 条留言