pourquoi ss (8) comprend l'écoute des ports UDP différemment de netstat (8)?

8

Si j'exécute ss -luafin de visualiser toutes les sockets UDP d'écoute, alors aucune des sockets n'est affichée. Si j'exécute ss -au, qui répertorie toutes les sockets UDP (à la fois en écoute et non-écoute), alors les sockets "en écoute" sont affichées comme UNCONN:

T60:~ # lsof -n | sed -n '1p;/UDP/p'
COMMAND     PID   TID       USER   FD      TYPE     DEVICE SIZE/OFF       NODE NAME
avahi-dae   963            avahi   11u     IPv4       9088      0t0        UDP *:mdns 
avahi-dae   963            avahi   12u     IPv4       9089      0t0        UDP *:44639 
cupsd      1238             root   10u     IPv4       8160      0t0        UDP *:ipp 
dhcpcd     2072             root    7u     IPv4     532052      0t0        UDP *:bootpc 
dhclient6 13131             root    5u     IPv6      38031      0t0        UDP *:dhcpv6-client 
dhclient6 13131             root   20u     IPv4      37954      0t0        UDP *:20152 
dhclient6 13131             root   21u     IPv6      37955      0t0        UDP *:36745 
atftpd    20639             tftp    0u     IPv4     344977      0t0        UDP *:tftp 
T60:~ # netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 *:bootpc                *:*                                 
udp        0      0 *:tftp                  *:*                                 
udp        0      0 *:44639                 *:*                                 
udp        0      0 *:ipp                   *:*                                 
udp        0      0 *:20152                 *:*                                 
udp        0      0 *:mdns                  *:*                                 
udp        0      0 *:36745                 *:*                                 
udp        0      0 *:dhcpv6-client         *:*                                 
T60:~ # ss -lu
Recv-Q Send-Q                                                                                                          Local Address:Port                                                                                                              Peer Address:Port   
T60:~ # ss -ua
State       Recv-Q Send-Q                                                                                                     Local Address:Port                                                                                                         Peer Address:Port   
UNCONN      0      0                                                                                                                      *:bootpc                                                                                                                  *:*       
UNCONN      0      0                                                                                                                      *:tftp                                                                                                                    *:*       
UNCONN      0      0                                                                                                                      *:44639                                                                                                                   *:*       
UNCONN      0      0                                                                                                                      *:ipp                                                                                                                     *:*       
UNCONN      0      0                                                                                                                      *:20152                                                                                                                   *:*       
UNCONN      0      0                                                                                                                      *:mdns                                                                                                                    *:*       
UNCONN      0      0                                                                                                                     :::36745                                                                                                                  :::*       
UNCONN      0      0                                                                                                                     :::dhcpv6-client                                                                                                                :::*       
T60:~ # ss -v
ss utility, iproute2-ss110629
T60:~ # 

Quelle est la logique derrière cela? Par exemple, exécuter atftpd en écoutant les connexions, devrait avoir l'état LISTEN et non UNCONN, non?

Martin
la source
Peut-être juste un libellé? Une prise d'écoute n'est évidemment pas connectée ... ;-)
Hauke ​​Laging
1
@HaukeLaging Sans parler des deux sons mauvais compte tenu de UDP :)
TNW
J'ai remarqué que le comportement de -ulvarie entre RHEL5 et RHEL6. Cela n'a aucun sens pour RHEL5, mais RHEL6 fait ce que vous attendez. (l'état est toujours répertorié comme UNCONNdans la sortie, mais il ne montre que les auditeurs)
Andrew B

Réponses:

4

UDP est un protocole sans connexion. SS n'en affichera probablement pas à l'état LISTEN, uniquement dans UCONN ou ESTAB.

Si je fais ça,

$ nc -u -l 2333

Ensuite, ss affichera (dans un deuxième shell):

$ ss -au|grep 2333
UNCONN     0      0                       *:2333                     *:*       

Si je me connecte ensuite (3e shell)

$ nc -u localhost 2333

puis SS affiche:

$ ss -au|grep 2333
ESTAB      0      0               127.0.0.1:2333             127.0.0.1:58434   
ESTAB      0      0               127.0.0.1:58434            127.0.0.1:2333    
mitchell perilstein
la source