在 CentOS 5.5 中,使用端口号连接 ssh 失败

在 CentOS 5.5 中,使用端口号连接 ssh 失败

服务器采用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

相关内容