1. 程式人生 > >Linux服務正常啟動,Linux服務器能訪問,但是外部機器不能訪問

Linux服務正常啟動,Linux服務器能訪問,但是外部機器不能訪問

all -s 協議 iptable root -c 一行 1.5 然而

公司用到了jenkins,就在自己虛擬機裏面部署了一個jenkins。部署成功之後,在Linux虛擬機裏面能正常訪問,但是外部真實機卻不能訪問。當時的第一反應就是覺得應該是權限問題,猜測會不會是jenkins需要開啟某個權限,外部的機器才能訪問。但是找了好久的資料,也沒說到要開啟什麽權限之類的。於是又在Linux裏面部署了一個tomcat,發現tomcat也不能訪問,那就不是jenkins的問題了,肯定是Linux機器的原因。自然而然的想到會不會是防護墻的原因,果然,防火墻一關就OK了。

關閉防火墻確實能解決這個問題,但是在真實環境中,防火墻是不能直接關閉了,太危險。怎麽辦呢?只需要開放一下服務對應的端口不就可以了嗎

方法一:關閉防火墻

[root@localhost ~]# service iptables stop         #關閉防火墻

[root@localhost ~]# service iptables start         #開啟防火墻

[root@localhost ~]# service iptables status        #查看防火墻狀態

cenOS7或者Red Hat7操作防火墻的命令改變了,命令如下:

[root@localhost ~]# systemctl stop firewalld.service #關閉防火墻

[root@localhost ~]# systemctl start firewalld.service #開啟防火墻

[root@localhost ~]# systemctl status firewalld.service #查看防火墻狀態

方法二:開放指定的端口

[root@localhost ~]# vim /etc/sysconfig/iptables

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0] 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited

備註: 找到 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 這一行,在這一行後天添加如上紅色的一行,即可開放8080端口

[root@localhost ~]# service iptables restart      #重啟防火墻才能生效

cenOS7或者Red Hat7開放端口方法如下:

[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success

[root@localhost ~# firewall-cmd --reload          #開放端口只需需要重啟防火墻才能生效
success

備註:開放端口命令解釋

-zone               作用域

-add-port=8080/tcp         添加端口,格式為:端口/通信協議

--permanent            永久生效

Linux服務正常啟動,Linux服務器能訪問,但是外部機器不能訪問