Conexión TCP: no hay ruta al host

Conexión TCP: no hay ruta al host

Inicié un servidor tcp en un host A y luego inicié un cliente tcp en otro host B.

Ambos hosts están en la misma LAN a través del enrutador inalámbrico de casa. el cliente tcp intenta conectarse al servidor tcp en el puerto 8000, pero falló debido a "No hay ruta al host"

Puedo hacer ping con éxito al host del servidor desde el host del cliente y, de hecho, ahora estoy conectado al servidor desde el cliente.

Si cambio los dos hosts, es decir, inicié el servidor tcp en el host B y luego inicié el cliente tcp en el host A. entonces la conexión TCP es exitosa

¿Qué le pasa al servidor host A? el siguiente enlace muestra los resultados de iptables -L -n, ss -tlnp y netstat -lnp

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

y tabla de enrutamiento en 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

tabla de enrutamiento en 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

El cliente y servidor TCP relacionados son: 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

Lo intenté

matar el proceso 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 

y luego

# service vpnagentd stop
# sudo systemctl stop vpnagentd

y no sé si se debe a esto, el último día, la conexión de repente volvió a estar bien. Pero después de reiniciar, ejecuto los comandos anteriores para detener el servicio vpnagent, el problema "No hay ruta al host" sigue ahí

Respuesta1

Fedora está utilizando el servicio firewalld para bloquear/permitir puertos

Utilice este comando para encontrar su(s) zona(s) activa(s):

firewall-cmd --get-active-zones

Dirá público, dmz o algo más. Sólo debes aplicar a las zonas requeridas.

En el caso de intento público:

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

Si quieres hacerlo permanente, prueba:

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

De lo contrario, sustituya dmz por su zona, por ejemplo, si su zona es pública:

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

Luego recuerde recargar el firewall para que los cambios surtan efecto.

firewall-cmd --reload

información relacionada