ssh 不能远程连接 CentOS 7 主机的处理方法

整个暑假,我都不能使用 ssh 远程连接上我的 CentOS 7 主机,只能通过 TeamViewer 连接。尽管 TeamViewer 连接使用已经很好了,TeamViewer 需要直接使用图形化的传输,势必影响到连接的快慢。因此,还是需要解决使用 ssh 的问题。

几经周折,终于找到了问题所在。因此 CentOS 7 使用 firewalld 来管理网络安全问题,而原来是使用 iptables。因此,当从原来的 CentOS 6 迁移到 7 的时候,iptables 继续使用,而未开启 firewalld。最近一次升级,不知道怎么弄的,firewalld 自动开启,而造成 ssh 不能远程利用。Firewalld 默认情况下是开启 ssh 的,但是当我检查 22 端口时,这个端口却没有开启。因此,需要开启 22 端口,不再使用 iptables.


[1@CentOS7 ~]$ sudo firewall-cmd --query-port=22/tcp # 查询 22 端口是否开启
no
[1@CentOS7 ~]$ sudo firewall-cmd --add-port=22/tcp # 也可以根据你的需要调整端口号

当你使用其他端口号时,需要同时修改 /usr/lib/firewalld/services/ssh.xml, 将其中这一行的 22 修改为你需要的端口。


  

另外,你还需要开启 firewalld,并关闭 iptables 服务。


[1@CentOS7 ~]$ sudo systemctl stop iptables.service
[1@CentOS7 ~]$ sudo systemctl disable iptables.service
[1@CentOS7 ~]$ sudo systemctl start firewalld.service
[1@CentOS7 ~]$ sudo systemctl enable firewalld.service

参考
1. 使用FirewallD替代Iptables的一些配置. http://jim0.com/server/firewalldconfig.html, retrieved on 2017-08-30

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.