Xshell(遠程)連接不上linux服務器(防火牆介紹)


一、原因

遠程(ssh)連接不上linux服務器的大多數原因都是因為本地服務器的防火牆策略導致的,因此我們想ssh遠程能夠連接上服務器,有兩種方法:

  1. 修改防火牆策略
  2. 關閉防火牆

 

二、防火牆服務介紹

1.CentOS7常用的防火牆有:iptables 與 firewalld

 

2.但需要注意的是:iptables 與 firewalld 都不是真正的防火牆, 它們都只是用來定義防火牆策略的防火牆管理工具,是一種服務。

 

3.Centos 7默認使用的是firewalld,而實際上iptables與firewalld只是單純的配置規則的客戶端工具,而真正起到防火牆作用(過濾/轉發等功能)是內核netfilter模塊。如果需要改用iptables的話,需要安裝iptables服務:

yum install iptables-services 
systemctl start iptables  # 開啟防火牆
systemctl enable iptables  # 設置開機啟動防火牆
systemctl stop iptables  # 關閉防火牆
systemctl disable iptables  # 設置禁止開機啟動防火牆

 

4.firewalld與iptables的不同

  1. firewalld 使用區域和服務而不是鏈式規則。
  2. firewalld 可以動態修改單條規則,而不需要像iptables那樣,在修改了規則后必須得全部刷新才可以生效。

iptables 服務在 /etc/sysconfig/iptables 中儲存配置,而 FirewallD 將配置儲存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各種 XML 文件里,使用 iptables 的時候每一個單獨更改意味着清除所有舊有的規則和從 /etc/sysconfig/iptables 里讀取所有新的規則,使用 firewalld 卻不會再創建任何新的規則;僅僅運行規則中的不同。因此 FirewallD 可以在運行時改變設置而不丟失現行配置。

FirewallD的配置方法主要有三種:

  1. firewall-config
  2. firewall-cmd
  3. 直接編輯xml文件

其中 firewall-config是圖形化工具,firewall-cmd是命令行工具,而對於linux來說大家應該更習慣使用命令行方式的操作,所以 firewall-config(適合用於桌面版)

 

5.圖示

 

 

三、具體操作實例

我的linux服務器的發行版本是CentOS7版本。

 

1、修改防火牆策略

修改防火牆策略,目的是為了開啟22端口,因為ssh遠程的端口就是22

這里進行修改是指直接用客戶機登錄進服務器進行操作,而不是直接xshell連接,因為22端口沒開之前,xshell是連接不上的

1.ifconfig  # 查看ip網卡信息,記住eth0,eth1對應哪個ip地址
root@aliyunzbj /tmp o ifconfig
eth0: flags=2256<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.53  netmask 255.255.255.0  broadcast 192.168.10.255
        ...

eth1: flags=2257<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.26.66  netmask 255.255.255.0  broadcast 192.168.26.255
        ...

lo: flags=82<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.255.255.0
        ...

2.查看當前的iptables防火牆配置
root@aliyunzbj /tmp o iptables-save

...
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j MANAGE-INPUT  # MANAGE-INPUT代表eth0網卡的防火牆策略
-A INPUT -i eth1 -j USER-INPUT  # USER-INPUT代表eth1網卡的防火牆策略
...
# 這里可以看到MANAGE-INPUT即eth0網卡開啟了22端口,但是下面的策略並沒有看到USER-INPUT(eth1)開啟22端口
-A MANAGE-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
...


3.給網卡eth1添加22端口
# 可以直接復制上面的策略,把MANAGE-INPUT改成USER-INPUT即可(如果eth0也沒有開啟,那么只需要把USER-INPUT改成MANAGE-INPUT再配置一次這個命令即可)
root@aliyunzbj /tmp o iptables -A USER-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 4.再次查看策略
root@aliyunzbj /tmp o iptables-save

...
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j MANAGE-INPUT  # MANAGE-INPUT代表eth0網卡的防火牆策略
-A INPUT -i eth1 -j USER-INPUT  # USER-INPUT代表eth1網卡的防火牆策略
...
-A MANAGE-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A USER-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
...

5.也可以把上面新增的策略直接添加到 /etc/sysconfig/iptables,重啟iptables服務

 

2、關閉防火牆

最直接的方法就是直接把防火牆策略關了

1.查看防火牆狀態
systemctl status iptables.service

2.如果防火牆開啟了,那么直接關閉
systemctl stop iptables.service

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM