服务器采用CentOS 5.5
更改默认端口后/etc/ssh/sshd_config
,我使用命令重新启动 SSH
/etc/init.d/sshd restart
然后我就退出了
exit
因此我测试连接 SSHssh -l root 123.456.789.123
并快速收到一条消息,显示我所做的修改产生了效果:
ssh: connect to host 123.456.789.123 port 22: Connection refused
我正在尝试连接端口:
ssh -p 12345 -l root 123.456.789.123
等待时间过长,连接失败,提示:
ssh: connect to host 123.456.789.123 port 12345: Connection timed out
我认为我连接端口的命令有问题。使用ssh -l root 123.456.789.123
很快就给出错误ssh: connect to host 123.456.789.123 port 22: Connection refused
,
而使用ssh -p 22 -l root 123.456.789.123
花费的时间太长,并显示连接失败消息ssh: connect to host 123.456.789.123 port 12345: Connection timed out
重启服务器后,这种情况仍然发生
答案1
CentOS 默认运行 iptables 防火墙。您可能需要为 ssh 打开新端口。
编辑文件 /etc/sysconfig/iptables 并找到该行(或类似内容)
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
将其更改22
为你为 sshd 选择的端口号,例如
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT
保存文件并重新启动 iptables 服务
sudo service iptables restart
编辑
使用 iptables 命令
保存了防火墙的当前状态
sudo service iptables save
列出 RH-Firewall-1-INPUT 表的规则编号
sudo iptables -L RH-Firewall-1-INPUT --line numbers
记下我的系统上允许端口 22 上的 ssh 的行号,它是 12。
12 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
在旧规则之前插入新规则,例如使用端口 12345
sudo iptables -I RH-Firewall-1-INPUT 12 -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT
删除旧规则,现在旧规则的编号将比新规则之前的编号高 1,但您可以通过列出上述行号来进行检查。
sudo iptables -D RH-Firewall-1-INPUT 13
保存新配置
sudo service ipatbles save