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