Iniciei um servidor tcp em um host A e depois iniciei um cliente tcp em outro host B.
Ambos os hosts estão na mesma LAN através do roteador sem fio doméstico. o cliente tcp tenta se conectar ao servidor tcp na porta 8000. mas falhou devido a "Sem rota para host"
Posso executar ping com êxito no host do servidor a partir do host do cliente e, na verdade, estou conectado ao servidor a partir do cliente agora
Se eu trocar os dois hosts, ou seja, iniciei o servidor tcp no host B e, em seguida, iniciei o cliente tcp no host A. então a conexão TCP foi bem-sucedida
O que há de errado com o host do servidor A? o link a seguir mostra os resultados de iptables -L -n, ss -tlnp e netstat -lnp
http://paste.ubuntu.com/12785409/
e tabela de roteamento em 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
tabela de roteamento em 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
O cliente e servidor tcp relacionados são: 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
tentei
matar processo 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
e então
# service vpnagentd stop
# sudo systemctl stop vpnagentd
e não sei se é por causa disso, no último dia, a conexão de repente ficou boa. Mas depois de reiniciar, execute os comandos acima para interromper o serviço vpnagent, o problema "Sem rota para host" ainda persiste
Responder1
O Fedora está usando o serviço firewalld para bloquear/permitir portas
Use este comando para encontrar suas zonas ativas:
firewall-cmd --get-active-zones
Dirá público, dmz ou qualquer outra coisa. Você só deve se inscrever nas zonas necessárias.
No caso de tentativa pública:
firewall-cmd --zone=public --add-port=8000/tcp
se você quiser torná-lo permanente, tente:
firewall-cmd --zone=public --add-port=8000/tcp --permanent
Caso contrário, substitua sua zona por dmz, por exemplo, se sua zona for pública:
firewall-cmd --zone=public --add-port=2888/tcp --permanent
Então lembre-se de recarregar o firewall para que as alterações tenham efeito.
firewall-cmd --reload