Auf meinem Computer mit Ubuntu 14.04 kann ich Folgendes tun:
$ nc -l 5349 -vvv
Listening on [0.0.0.0] (family 0, port 5349)
oder dieses:
$ nc -vvv -l 192.168.254.96 5349
Listening on [192.168.254.96] (family 0, port 5349)
Und ein Socket wird geöffnet, um die Eingabe von Verbindungen unter meiner lokalen IP-Adresse (192.168.254.96) abzuhören. Und natürlich kann ich mich von der anderen Seite verbinden und Daten übertragen.
Aber auf einem Server hinter einem NAT mit Debian 8.0 Jessie habe ich diesen seltsamen Fehler bekommen:
$ nc -vvv -l 5349
5349: inverse host lookup failed: Unknown host
nnetfd reuseport failed : Protocol not available
listening on [any] 38541 ... : Protocol not available
oder:
$ nc -vvv -l 10.1.6.189 5349
10.1.6.189: inverse host lookup failed: Unknown host
nnetfd reuseport failed : Protocol not available
listening on [any] 52606 ... : Protocol not available
Der Port wird nicht verwendet:
$ ss -tnl | grep 5349
(empty)
und es ist die richtige IP-Adresse:
$ ip addr list
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 1e:89:93:f1:96:a4 brd ff:ff:ff:ff:ff:ff
inet 10.1.6.189/19 brd 10.1.31.255 scope global eth0
inet6 fe80::1c89:93ff:fef1:96a4/64 scope link
valid_lft forever preferred_lft forever
Was könnte das Problem sein? Könnte etwas mit dem NAT hinter dem Server zu tun haben?
$ nc -vvv -l -p 5349 \ nnetfd reuseport failed : Protocol not available \ listening on [any] 5349 ... : Protocol not available
3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3
in Debian 8.2 Jessie.netcat-openbsd
hat funktioniert. Vielen Dank!