環境:VMware虛擬機運行RHEL 5.2,安裝Oracle 10g,IP 10.10.10.197;宿主機IP 10.10.10.198,橋接模式。虛擬機內訪問`https://10.10.10.197:1158/em`正常,宿主機瀏覽器訪問提示連接失敗,但Ping通。初步判斷為防火牆阻攔1158端口。
# system-config-securitylevel # 圖形界面顯示Enabled,Trusted Services含WWW(HTTP)但無1158
# service iptables status # 確認iptables服務運行中
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1158 # 規則已存在但未生效?
...
Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
...
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
規則鏈中`RH-Firewall-1-INPUT`為用戶自定義鏈,默認策略為REJECT。雖有`ACCEPT tcp dpt:1158`,但位於用戶鏈之前?實際匹配順序導致1158規則未生效。需將允許規則插入至用戶鏈首部或調整鏈順序。
# iptables -I RH-Firewall-1-INPUT -p tcp --dport 1158 -j ACCEPT
# service iptables save
# service iptables restart
宿主機瀏覽器刷新`https://10.10.10.197:1158/em`,Oracle Enterprise Manager界面正常加載,問題解決。