web-dev-qa-db-fra.com

Client / serveur simple avec NC ne fonctionne pas

Pourquoi ce qui suit ne fonctionne pas?

J'ai un système de Debian 9 fraîchement installé. iptables est large:

[···]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Je me connecte à deux consoles distinctes (bien, deux connexions SSH distinctes). Dans l'un d'entre eux, je cours:

[···]# nc -l 11115

Ensuite, je vais à l'autre console et je courais:

[···]# nc localhost 11115

et je reçois une connexion refusée Erreur:

[···]# nc localhost 11115
localhost [127.0.0.1] 11115 (?) : Connection refused

J'ai aussi essayé nc 127.0.0.1 11115, essayé avec telnet --- toujours Connexion refusée .

Sur le côté "écoute", j'ai aussi essayé nc -l localhost 11115 --- aucune différence.

Qu'est-ce que je manque ou fais-il mal?

[modifier]: sur une machine Centos 6.9, les mêmes commandes ci-dessus sont présentes comme prévu. Même chose sur mon ubuntu 14.04 à la maison. Je pensais qu'il est peut-être que courir comme la racine fait nc interdire certaines fonctionnalités. Mais non, je viens d'essayer d'un utilisateur régulier sur la machine de Debian 9, et elle échoue tout de même. Des idées pourquoi?

2
Cal-linux

Sur les packages de Debian 2 Netcat et A Package transitoire , qui se référera à Netcat-traditionnel

root@debian9:~# apt-cache search ^netcat
netcat - TCP/IP swiss army knife -- transitional package
netcat-traditional - TCP/IP swiss army knife
netcat-openbsd - TCP/IP swiss army knife
[../..]

Lorsque vous exécutez plusieurs fois NC -L -L 11115, NC écoute mais sur un port aléatoire (semble être aléatoire).

root@debian9:~# lsof -p $(pidof nc ) | grep LISTEN
nc      12734 root    3u  IPv4 11892054      0t0   TCP *:44907 (LISTEN)

En fait, vous pouvez exécuter NC -L au lieu de NC -L 11115, et vous aurez le même comportement.

Oui NetCat-Traditionnel est un ancien logiciel et que certains bugs simples ne sont pas corrigés (dans votre exemple, manquent le paramètre - P port pour l'écoute.

Vous pouvez préférer NetCat-openbsd, et cela fonctionnera comme prévu.

root@debian9:/# lsof -p $( pidof nc ) | grep LISTEN
nc      2140 root    3u  IPv4  29855      0t0     TCP *:11115 (LISTEN)
2
EchoMike444