Wie kann ich netcat (oder ein anderes Standard-Linux-Dienstprogramm) so konfigurieren, dass es einen bestimmten Port auf einer sekundären IP-Adresse überwacht?

15

CentOS 5.9

Zu Testzwecken möchte ich, dass mein CentOS-Server eine sekundäre virtuelle IP (eth0: 0) überwacht. Ich kenne mich damit aus, nc -l -p <port>aber es hört nur auf dem primären. Kann ich eine bestimmte IP-Adresse für den Listener angeben?

Wenn nicht, gibt es in CentOS 5.9 ein anderes Dienstprogramm "stock", das dies ermöglicht?

Mike B
quelle

Antworten:

24

Für mich funktioniert diese sehr einfache Lösung:

nc -l 192.168.2.1 3000

Und -pfunktioniert nicht mit -l(laut meiner Manpage und Test).

Hauke ​​Laging
quelle
Genau das sagt die Manpage.
Michael Hampton
@MichaelHampton Ich bin mir nicht sicher, ob ich richtig verstehe, was du meinst.
Hauke ​​Laging
1
Ich denke, in Netcat-Traditional können Sie-l -p
Benutzer
Das bedeutet, dass du viele positive Stimmen bekommst. :)
Michael Hampton
1
@MichaelHampton Ich denke, ich werde noch eine Weile brauchen, bis ich die Übungsregeln für das Upvoting verstehe. Wenn ich mir anschaue, wofür ich Stimmen bekomme (und noch viel schlimmer: Wofür nicht!), Könnte ich weinen. Aber es sieht so aus, als würde mich die Lösung dieses großen Problems über die gewünschten 3.000 Punkte
treiben
4

Zur Vervollständigung:

nc -l -p Port -s IP

sollte auch funktionieren. Funktioniert mit nc6 Version 1.0 und Netcat (The GNU Netcat) 0.7.1.

Der Befehl von Laging funktioniert nicht mit NC6 (verwendet in Debian).

schlicht
quelle
Nur so kann ich das Listening-Interface auf Ubuntu festlegen nc.
djule5
2
nc sagt, dass Sie nicht beide -s und -l zusammen verwenden können
SunSparc
1
@SunSparc noch ist es die einzige Möglichkeit für mich, sowohl die lokale IP als auch den lokalen Port im Servermodus anzugeben - hier funktioniert keine andere Kombination von Optionen (nc v1.10-38, debian)
Antony Hatchkins
Ich denke, das Problem könnte sein, dass sich verschiedene Netcat-Versionen unterschiedlich verhalten. Ich kann scheinbar keinen Versionsstring aus meinem herausholen, aber es gibt mindestens zwei Pakete netcat-traditional vs netcat-openbsd. netcat -vvlp 4445 -s 172.17.0.1gibt mir listening on [172.17.0.1] 4445 ...vs netcat -vvl 172.17.0.1 4445gibt mir listening on [any] 36539 ...
relet