(¡Soy nuevo en esto!) Estoy ejecutando un servidor virtual que ejecuta CentOS. Estoy intentando ejecutar un servidor que escucha en el puerto 37760. El código que estoy ejecutando se ejecuta correctamente, así que ejecuto
netstat -lptu
Para mostrar una lista de puertos escuchando, y
tcp 0 0 localhost.localdomain:37760 *:* LISTEN 15006/node
es una de las entradas. Sin embargo, cuando voy a ip:37760 en mi navegador, ¡la conexión se agota!
¡Estoy seguro de que es muy obvio, pero un poco de ayuda sería de gran ayuda!
Gracias
Respuesta1
El netstat
resultado muestra que node
solo está escuchando en localhost, por lo que debe usar un navegador en esa consola virtual y navegar localhost:37760
o actualizar la configuración de lo que sea node
que vaya a escuchar en todas las direcciones.
Respuesta2
Existe una excelente posibilidad de que su firewall local esté bloqueando la conexión.
Verifique su iptables
firewall local. Puede ver el estado actual ejecutando algo como:
iptables -vnL
Esto producirá un resultado similar a:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9192K 3593M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
18 740 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
1763K 180M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
6124 367K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
Estas cuatro reglas se leen así:
- Permitir el tráfico asociado con una conexión existente
- Permitir el tráfico ICMP.
- Permitir todo el tráfico a través de la interfaz loopback
- Permitir nuevas conexiones en el puerto TCP 22 (ssh)
Puedes ver el estado persistente en /etc/sysconfig/iptables
. Puede utilizar la system-config-firewall
herramienta si desea un mecanismo de configuración GUI, o puede aprovechar esta oportunidad para obtener más información sobre cómo funciona la configuración del firewall desde la línea de comandos.
Respuesta3
CentOS, por defecto, giraIPTablesy aplica una política de seguridad bastante estricta con SELinux. Si intenta acceder al puerto desde otra computadora, la configuración predeterminada de IPTables descarta todas las conexiones entrantes excepto SSH. Si no le preocupa la seguridad, simplemente puede ejecutar
sudo service iptables stop
para desactivar IPTables por completo.
La otra cosa que podría estar deteniéndote, en CentOs, esSELinux. Esto actúa como una segunda capa de seguridad en los procesos y el sistema de archivos y evita que algunos servidores tengan permiso para servir archivos de forma predeterminada, ya que no tienen acceso al directorio desde el cual servir archivos. Tienes un par de opciones aquí.
1) Apague SELinux cambiando la configuración /etc/selinux/config
como se ve a continuación:
SELINUX=disabled in /etc/selinux/config
2) Más preferible, use audit2allow
para verificar si SELinux bloquea su servidor y, de ser así, genere una nueva política de seguridad para permitir el servidor. Mira estoCentOSEntrada Wiki así comoesteEntrada de blog.
Finalmente, si está ejecutando una máquina virtual, asegúrese de que su máquina virtual tenga acceso a la red y permisos para usar la configuración de NIC del hardware subyacente.