TCP 連線:沒有到主機的路由

TCP 連線:沒有到主機的路由

我在主機A上啟動了一個tcp伺服器,然後在另一台主機B上啟動了一個tcp客戶端。

兩台主機透過家裡的無線路由器處於同一個區域網路。 tcp 用戶端嘗試在連接埠 8000 上連接到 tcp 伺服器。

我可以從客戶端主機成功 ping 伺服器主機,實際上我現在已經從客戶端 ssh 進入伺服器

如果我交換兩台主機,也就是在主機B上啟動tcp伺服器,然後在主機A上啟動tcp客戶端,則TCP連線成功

伺服器主機A出了什麼問題?以下連結顯示了 iptables -L -n、ss -tlnp 和 netstat -lnp 的結果

http://paste.ubuntu.com/12785409/

以及 A 上的路由表:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

B 上的路由表:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

相關的tcp客戶端和伺服器有: https://www.cs.cmu.edu/afs/cs/academic/class/15213-f99/www/class26/tcpserver.c

http://www.cs.cmu.edu/afs/cs/academic/class/15213-f99/www/class26/tcpclient.c

我試過

殺死 vpnagent 進程

# ps ax | grep vpnagent 
1291 ? S 0:00 /opt/cisco/vpn/bin/vpnagentd 
4202 pts/2 S+ 0:00 grep --color=auto vpnagent
#sudo kill -9 1291 

進而

# service vpnagentd stop
# sudo systemctl stop vpnagentd

不知道是不是因為這個,最後一天,連結突然就OK了。但重啟後,執行上述指令停止 vpnagent 服務,「無路由到主機」問題仍然存在

答案1

Fedora 使用firewalld 服務來阻止/允許連接埠

使用此命令尋找您的活動區域:

firewall-cmd --get-active-zones

它會顯示 public、dmz 或其他內容。您應該只申請所需的區域。

在公開嘗試的情況下:

firewall-cmd --zone=public --add-port=8000/tcp

如果你想使其永久,請嘗試:

firewall-cmd --zone=public --add-port=8000/tcp --permanent

否則,請將 dmz 替換為您的區域,例如,如果您的區域是公共區域:

firewall-cmd --zone=public --add-port=2888/tcp --permanent

然後記得重新加載防火牆以使更改生效。

firewall-cmd --reload

相關內容