目的:需要主機A能訪問主機B,主機A上telnet 主機B 65005端口,返回如下:
RBTGW-CH121-b:~ # telnet 192.168.90.25 65005
Trying 192.168.90.25...
telnet: connect to address 192.168.90.25: No route to host
查明原因為主機B開啟了iptables防火牆,開啟對應端口允許訪問規則即可,記錄本文主要原因是新增放通規則時用的iptables -A,新規則追加到了(A INPUT -j REJECT --reject-with icmp-host-prohibited)這條規則至下,導致65005端口依然無法被訪問,查明原因做次記錄。
新增規則:允許所有ip能訪問本機的65005端口
# 新增規則(-I表示插入在鏈的第一位置,-A 表示追加到鏈的末尾位置,防火牆規則是從上往下讀取) [root@data ~]# iptables -I INPUT -p tcp --dport 65005 -j ACCEPT # 保存規則到默認文件/etc/sysconfig/iptables [root@data ~]# service iptables save # 重啟 [root@data ~]# service iptables restart
查看當前iptables保存的配置
特別說明:這里需要注意,如果上面用的iptables -A的方式追加規則,新規則雖然是放通端口,但規則卻在-A INPUT -j REJECT --reject-with icmp-host-prohibited之后,防火牆規則讀取是由上至下,當讀取到該規則后,65005這條新增規則就不會被讀取,導致65005依然不能被訪問,所以要么使用iptables -I插入到最上面(也可以指定序號),要么通過手動添加規則到該規則前面即可(vim /etc/sysconfig/iptables )
-A INPUT -p tcp -m tcp --dport 65005 -j ACCEPT # 表示剛新增的規則,此時已允許其他主機訪問該端口
-A INPUT -j REJECT --reject-with icmp-host-prohibited # 這行是已拒絕其他端口的命令,如果我們將新插入的開放端口在放在這行命令之后的情況下,后面的配置開放的端口是不會被啟用的。
[root@data ~]# vim /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Tue Mar 9 16:14:49 2021 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1430:101042] -A INPUT -p tcp -m tcp --dport 65005 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 53361 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Tue Mar 9 16:14:49 2021
查看當前規則(藍色為新增)
[root@data ~]# service iptables status 表格:filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:65005 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53361 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 4 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 7 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) num target prot opt source destination