Problem mit netcat timeout

Warum hat die folgenden netcat-Befehl kein Timeout wenn die Verbindung dauert länger als 3 Sekunden (dh: wenn der port nicht offen ist)? Ich vermutete, dass der -w flag wäre das, was ich brauchte. OS ist OSX 10.9.

nc -v -z -w 3 127.0.0.1 5050

Unter der Annahme, dass es arbeitete, ich geplant, um zu implementieren, wie dies (nicht sicher, ob dies funktionieren wird, insgesamt bash noob)

nc -v -z -w 3 127.0.0.1 5050 | /dev/null && echo "Online" || echo "Offline"

Wenn ich es versuche, bekomme ich sofort eine Fehlermeldung als Antwort, weil der port nicht offen ist. Sind Sie sicher, dass Sie nicht öffnen Sie auf dem host? Wenn es ist, dann, dass ist der Grund, warum es ist nicht das timing, weil es wirklich verbunden ist.
Komisch, es scheint nur zu passieren, die auf einem bestimmten port...", versuchte ich, diese zu verwenden, um zu überwachen, ob ein bestimmter Dienst ausgeführt wird, auf meinem Computer von einem remote-Standort oder Netzwerk. Das service ist aktuell nicht ausgeführt wird, aber der netcat scheint nicht zu Zeit der Prozess hängt. Irgendwelche Gedanken?
Sind Sie mit jeder Art von firewall? Was bedeutet "iptables -L" zeigen Sie?
Ich bin mit OSX und meine firewall ist ausgeschaltet. Es besagt ausdrücklich "Alle verbindungen erlaubt sind auf diesem computer". Es gibt keine native 'iptables' - Befehl in OSX.
netcat offenbar Handlungen unterscheiden, die auf unterschiedlichen Plattformen (philandstuff.com/2013/05/17/statsd-netcat.html). Ich bin auf linux. Können Sie ausführen, tcpdump, während Sie diesen Befehl ausführen, um zu sehen, ob das erwartete Verhalten Auftritt?

InformationsquelleAutor anditpainsme | 2014-06-13

Schreibe einen Kommentar