Como posso configurar o netcat (ou algum outro utilitário stock linux) para escutar uma porta específica em um endereço IP secundário?

15

CentOS 5.9

Para fins de teste, desejo que meu servidor CentOS escute um IP virtual secundário (eth0: 0). Estou familiarizado com, nc -l -p <port>mas ele apenas ouve no primário. Existe uma maneira de especificar um IP específico para o ouvinte usar?

Caso contrário, existe outro utilitário "estoque" no CentOS 5.9 que pode fazer isso?

Mike B
fonte

Respostas:

24

Para mim, esta solução muito simples funciona:

nc -l 192.168.2.1 3000

E -pnão funciona com -l(de acordo com minha página de manual e testes).

Hauke ​​Laging
fonte
É exatamente o que a página de manual diz.
Michael Hampton
@MichaelHampton Não sei se entendi direito o que você quer dizer.
Hauke ​​Laging
1
Eu acho que no netcat tradicional você pode fazer-l -p
usuário
Isso significa que você receberá muitos votos. :)
Michael Hampton
1
@MichaelHampton Acho que ainda levarei um tempo até entender as regras de prática da votação. Se eu der uma olhada no que recebo (e muito pior: para que não serve!), Posso chorar. Mas parece que chutes solução deste grande problema está me acima do desejado 3.000 pontos ... (eu notei que em Unix e Linux meu interesse em rep caiu muito depois disso)
Hauke Laging
4

Para conclusão:

porta nc -l -p -s ip

deve funcionar também. Funciona com o nc6 versão 1.0 e o netcat (The GNU Netcat) 0.7.1.

O comando do Laging não funciona com o nc6 (usado no debian).

schlicht
fonte
A única maneira de conseguir especificar a interface de escuta no Ubuntu nc.
precisa saber é o seguinte
2
nc diz que você não pode usar os dois -s juntos
SunSparc 11/11
1
@SunSparc mas é a única maneira de ir para mim especificar tanto ip local e porta local no modo de servidor - nenhuma outra combinação de opções funciona aqui (nc v1.10-38, debian)
Antony Hatchkins
Eu acho que o problema pode ser que versões diferentes do netcat se comportam de maneira diferente. Parece que não consigo tirar uma string de versão da minha, mas existem pelo menos dois pacotes netcat-traditional vs netcat-openbsd. netcat -vvlp 4445 -s 172.17.0.1dá-me listening on [172.17.0.1] 4445 ...vs netcat -vvl 172.17.0.1 4445dá-me listening on [any] 36539 ...
relet 03/10