Linux服務正常啟動,Linux服務器能訪問,但是外部機器不能訪問
公司用到了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服務器能訪問,但是外部機器不能訪問