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?
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)