局域網訪問不到linux下的tomcat


 

問題描述:

CentOS安裝完成Tomcat后,訪問本地:http://localhost:8080/正確。但局域網內無法訪問,而且服務器可ping通

經查原因為防火牆開啟:

[root@localhost conf]#  service iptables status
iptables: Firewall is  running.

有兩種解決方案:一是關閉防火牆;二是開放8080端口

直接關閉防火牆會影響服務器的安全性,比較暴力,開放相應的端口號來說更符合安全性,更溫和

第一種方案:關閉iptables ,相對比較簡單

service iptables stop

若想永久關閉: chkconfig --level 35 iptables off

 第二種方案:配置防火牆,開放8080端口,相對復雜點,但是值得推薦

  首先查看一下iptables的配置

[root@bogon ~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT
-A INPUT -m state --state ESTABLISHED,RELATED -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 -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
COMMIT

  其中紅色部分為自己添加的,其意義:

:RH-Firewall-1-INPUT - [0:0]

  上面可以理解為定義了一個子鏈 RH-Firewall-1-INPUT

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

   其實上面這兩條規則就是將子鏈RH-Firewall-1-INPUT分別加到INPUT和FORWORD主鏈中,把父鏈INPUT和FORWARD的所有數據包都轉發到子鏈RH-Firewall-1-INPUT,也就意味着,當一個數據包進入主機后,首先會進入INPUT鏈和FORWARD鏈,然后再由INPUT和FORWARD鏈進入RH-Firewall-1-INPUT進行處理

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

  使用子鏈RH-Firewall-1-INPUT,配置8080端口,允許8080端口的數據包傳輸

 

 如上配置並重啟iptables就可以在局域網內訪問8080端口了

[root@bogon ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

 

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

防火牆相關命令:

service  iptables  status        查看防火牆狀態
service  iptables  start           開啟防火牆
service  iptables  stop           關閉防火牆
service  iptables  restart        重啟防火牆

這里簡單討論一下iptables:

iptables是Linux內置的數據包過濾軟件(即 防火牆)。它定義了進出Linux數據包的過濾規則。Iptables由多個表格組成,每個表格由若干鏈組成,每個鏈由若干規則組成。

其中最常用也是最重要的是管理本機進出數據包的filter(過濾器)表格,filter默認包含以下3個鏈:

  •  INPUT鏈:定義了進入Linux主機的數據包的過濾規則;
  •  OUTPUT鏈:定義了送出Linux主機的數據包的過濾規則;
  •  FORWORD鏈:這個鏈與本機沒有什么關系,它可以轉遞數據包到后台的計算機中,與iptables中的另外一個表格nat相關性較高;

上面三個鏈是filter表格中默認的鏈,可以稱作父鏈。用戶還可以自定義自己的鏈規則,可以稱作子鏈。當數據包滿足一定規則,則由父鏈跳轉到子鏈進行特定的處理。

上面iptables配置信息中:開頭的為防火牆filter過濾器定義的4個鏈:INPUT,FORWARD,OUTPUT,RH-Firewall-1-INPUT。其中前面三個鏈是系統默認的鏈,稱為父鏈;RH-Firewall-1-INPUT是用戶自定義的鏈,稱為子鏈。

 


免責聲明!

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



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