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

不知道是不是因为这个,昨天连接突然好了,但是重启后,运行上面的命令停止vpnagent服务,还是出现“没有到主机的路由”的问题

答案1

Fedora 使用防火墙服务来阻止/允许端口

使用此命令来查找您的活动区域:

firewall-cmd --get-active-zones

它会显示公共、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

相关内容