遇到SSH连接CentOS时被防火墙拦截,可按以下步骤解决:
确认防火墙状态
检查firewalld是否运行:
sudo systemctl status firewalld
若未运行,启动并开机自启:
sudo systemctl start firewalld
sudo systemctl enable firewalld
放行SSH端口
sudo firewall-cmd --permanent --add-service=ssh
/etc/ssh/sshd_config中Port项):sudo firewall-cmd --permanent --add-port=新端口/tcp
重新加载防火墙规则:
sudo firewall-cmd --reload
限制访问来源(可选)
仅允许特定IP或网段访问SSH:
sudo firewall-cmd --permanent --add-rich-rule='rule source address="IP/网段" port port="SSH端口" protocol="tcp" accept'
例如:
sudo firewall-cmd --permanent --add-rich-rule='rule source address="192.168.1.0/24" port port="2222" protocol="tcp" accept'
验证配置
查看防火墙规则是否生效:
sudo firewall-cmd --list-all
测试SSH连接:
ssh -p 端口 用户名@服务器IP
注意:修改SSH端口后,需同步更新防火墙规则并重启SSH服务。若仍无法连接,检查SELinux是否限制端口(需用semanage工具放行)。