一、問題
接到客戶消息,外網訪問內網虛擬主機的部分端口不通。
端口:580、610
二、思路
根據網絡架構找出存在影響端口連通性的原因
1.硬件防火牆
- NAT策略中服務端口的開啟
- 訪問控制列表中對端口的放行/阻斷狀態
2.系統防火牆
- 防火牆必須添加相應端口
- 網卡名稱必須添加相應區域
- 端口必須為監聽狀態
三、處理過程
1.遠程登錄硬件防火牆查看策略信息,發現相應端口是開通狀態

2.內網環境中,telnet目標端口,端口不通;
由於測試路徑中,沒有可以影響到端口連通性的設備及策略,隨即將問題定位在目標主機系統防火牆上
telnet [ip] port
Centos7.0版本以上默認安裝firewall
3.查看firewall-cmd的運行狀態
firewall-cmd --state

4.將默認區域設置為trusted
firewall-cmd --get-default-zone=trusted-permanent

5.將相應端口添加到trusted
firewall-cmd --permanent --zone=trusted --add-port=580/tcp
將端口成功添加至區域后測試端口發現仍然不通,可能是網卡沒有添加到相應區域
6.查看網卡文件並將網卡添加到trusted
firewall-cmd --permanent --zone=trusted --change-interface=eth0

經測試后仍然不通
7.使用ip addr 查詢網卡信息,發現網卡名稱與配置文件不同
ip addr

8.將br0與eth0同時添加到trusted區域中
(注意:如果該網卡已經存在一個區域時,必須添加后將firewall stop掉,再start才可以成功更改,不然即使重新加載firewall也無法生效)

經測試仍然不通
查詢資料發現涉及到linux系統的端口連通性取決於3個方面
- 防火牆必須添加相應端口
- 網卡名稱必須添加到相應區域
- 端口必須為監聽狀態
9.使用netstat -tlunp以后發現580並沒有被監聽
(TCP6意思為監聽ipv6地址)
netstat -tlunp

10.聯系客戶調試軟件,將軟件監聽端口改為580后測試,telnet端口通,問題解決


四.總結:
1.在虛擬化服務器上ip addr中顯示的網卡名稱為現使用的網卡名稱
2.了解影響端口的3個前置條件。
3.監聽為被動的,無法主動添加監聽端口
