CentOS SSH登录慢可以通过以下几种方法进行优化:
在目标服务器上修改sshd服务器端配置,关闭DNS反向解析。
# 编辑sshd配置文件
vi /etc/ssh/sshd_config
# 将以下行取消注释并设置为no
UseDNS no
# 重启ssh服务
systemctl restart sshd
同样在sshd配置文件中,关闭GSSAPI认证。
# 编辑sshd配置文件
vi /etc/ssh/sshd_config
# 将以下行取消注释并设置为no
GSSAPIAuthentication no
# 重启ssh服务
systemctl restart sshd
# 查询网卡接口名
ip addr show
# 编辑网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 将DNS修改为国内DNS服务器地址
DNS=223.5.5.5 223.6.6.6
# 重启网络服务
systemctl restart network
# 禁用DNS查询
UseDNS no
编辑 /etc/sysctl.conf 文件,添加或修改以下参数:
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
然后运行:
sysctl -p
使更改生效。
在sshd配置文件中添加压缩选项:
# 启用压缩
Compression yes
确保SSH端口(默认22)已经打开,或者根据需要调整防火墙规则。
# 查看防火墙状态
sudo systemctl status firewalld
# 修改防火墙规则
sudo firewall-cmd --add-port 22/tcp --permanentsudo firewall-cmd --reload
关闭不必要的服务和进程,减少系统资源占用。
# 关闭NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
升级到最新的OpenSSH版本,可以获取性能改进和安全修复。
sudo yum update openssh-server
通过修改 /etc/sysctl.conf 文件中的网络相关参数,如 tcp_max_syn_backlog、net.core.somaxconn 等,可以提高网络性能。
# 提高文件句柄限制
echo 'fs.file-max = 65536' >> /etc/sysctl.conf
# 提高系统内存分配
echo 'vm.swappiness = 10' >> /etc/sysctl.conf
# 提高网络性能
echo 'net.core.somaxconn = 65535' >> /etc/sysctl.conf
echo 'net.core.netdev_max_backlog = 65535' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_max_syn_backlog = 65535' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_tw_reuse = 1' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_fin_timeout = 30' >> /etc/sysctl.conf
# 应用内核参数
sysctl -p
使用工具如 tcpdump 或 ss 监控SSH连接,分析性能瓶颈。
# 使用tcpdump监控SSH连接
tcpdump -i eth0 port 22
# 使用ss查看状态
ss -tn state established '( dport = :ssh )'
在进行任何配置更改之前,请确保备份重要数据,并在测试环境中验证优化效果。