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.

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

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


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

[[email protected] ~]$ sudo systemctl stop iptables.service
[[email protected] ~]$ sudo systemctl disable iptables.service
[[email protected] ~]$ sudo systemctl start firewalld.service
[[email protected] ~]$ sudo systemctl enable firewalld.service

1. 使用FirewallD替代Iptables的一些配置., retrieved on 2017-08-30

Leave a Reply

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

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see


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