¿Cómo puedo configurar netcat (o alguna otra utilidad de stock de Linux) para escuchar en un puerto específico en una dirección IP secundaria?

15

CentOS 5.9

Para fines de prueba, quiero que mi servidor CentOS escuche en una IP virtual secundaria (eth0: 0). Estoy familiarizado nc -l -p <port>pero solo escucha en la primaria. ¿Hay alguna manera de especificar una IP específica para que la use el oyente?

Si no, ¿hay otra utilidad "stock" en CentOS 5.9 que pueda hacer esto?

Mike B
fuente

Respuestas:

24

Para mí, esta solución muy simple funciona:

nc -l 192.168.2.1 3000

Y -pno funciona con -l(de acuerdo con mi página de manual y pruebas).

Hauke ​​Laging
fuente
Esto es exactamente lo que dice la página del manual.
Michael Hampton
@MichaelHampton No estoy seguro si entiendo correctamente lo que quieres decir.
Hauke ​​Laging
1
Creo que en netcat-traditional puedes hacerlo-l -p
usuario
Significa que obtendrás muchos votos a favor. :)
Michael Hampton
1
@MichaelHampton Creo que tardaré bastante tiempo hasta que comprenda las reglas de práctica de la votación. Si eche un vistazo a lo que recibo votos positivos (y mucho peor: ¡por qué no!), Podría llorar. Pero parece que la solución de este gran problema me eleva por encima de los 3.000 puntos deseados ... (Me di cuenta de que en Unix y Linux mi interés en el representante cayó mucho después de eso)
Hauke ​​Laging
4

Para completar:

nc -l -p puerto -s ip

debería funcionar también. Funciona con nc6 versión 1.0 y netcat (The GNU Netcat) 0.7.1.

El comando de Laging no funciona con nc6 (usado en debian).

Schlicht
fuente
La única forma en que puedo llegar a especificar la interfaz de escucha en Ubuntu nc.
djule5
2
nc dice que no puedes usar ambos -s y -l juntos
SunSparc
1
@SunSparc, sin embargo, es la única forma de especificar el puerto local y el IP local en modo servidor: aquí no funciona ninguna otra combinación de opciones (nc v1.10-38, debian)
Antony Hatchkins
Creo que el problema podría ser que las diferentes versiones de netcat se comportan de manera diferente. Parece que no puedo obtener una cadena de versión de la mía, pero hay al menos dos paquetes netcat-traditional vs netcat-openbsd. netcat -vvlp 4445 -s 172.17.0.1me da listening on [172.17.0.1] 4445 ...vs me netcat -vvl 172.17.0.1 4445da listening on [any] 36539 ...
relet