主機通過瀏覽器不能訪問到虛擬機的web服務器(粗暴版)

問題:::

1.宿主機可以ping通虛擬機

2.虛擬機可以ping通宿主機

3.虛擬機可以通過http://localhost來訪問web服務器

4.宿主機通過瀏覽器不能訪問到web服務器

首先,我在宿主機的dos窗口下telnet虛擬機的80窗口,失敗了,由此可以確定是虛擬機的80窗口有問題,應該是被防火牆堵住了。

原因: 主要是虛擬機linux系統中的防火牆導致

粗暴處理: systemctl stop firewalld ,停止防火牆,ok,問題解決.

一般處理,可以詳見下文:

-----------------------------------------------------------------------------------

早期Linux版本處理:

1.修改防火牆設置:在Shell下輸入命令 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

2.保存上面的設置:/etc/rc.d/init.d/iptables saved

3.重啓防火牆:/etc/init.d/iptables restart

最直接的 打開iptables  
gedit /etc/sysconfig/iptables  

在裏面添加下面的(增加80,8080)

-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

然後重啓service iptables restart

-----------------------------------------------------------------------------------

目前使用Centos7-1708,不再支持早期處理,若要類似處理,需要安裝iptables-services

且安裝iptables-services:

[plain] view plain copy
  1. yum install iptables-services  

設置開機啓動:

[plain] view plain copy
  1. systemctl enable iptables  

[plain] view plain copy
  1. systemctl stop iptables  
  2. systemctl start iptables  
  3. systemctl restart iptables  
  4. systemctl reload iptables  

保存設置:

[plain] view plain copy
  1. service iptables save  

後期補充,待驗證:(僅供參考)

在CentOS 7或RHEL 7或Fedora中防火牆由firewalld來管理,

如果要添加範圍例外端口 如 1000-2000
語法命令如下:啓用區域端口和協議組合
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
此舉將啓用端口和協議的組合。端口可以是一個單獨的端口 <port> 或者是一個端口範圍 <port>-<port> 。協議可以是 tcp 或 udp。
實際命令如下:

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此參數重啓後失效)

firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent 

重新載入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
刪除
firewall-cmd --zone=public --remove-port=80/tcp --permanent


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章