ss(8) が netstat(8) と違って UDP ポートの受信を理解するのはなぜですか?

ss(8) が netstat(8) と違って UDP ポートの受信を理解するのはなぜですか?

ss -luすべての受信UDPソケットを表示するコマンドを実行すると、ソケットは表示されません。ss -auすべての(受信および非受信)UDPソケットがリストされているを実行すると、「受信」ソケットがUNCONNとして表示されます(下記参照)。

これの論理は何ですか?たとえば実行ftpd着信接続はUNCONNの代わりにLISTEN状態を持つ必要があります。そうですか?

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

答え1

UDPは非接続プロトコルです。 SSはLISTEN状態では表示されず、UCONNまたはESTABでのみ表示できます。

私がこうすると、

$ nc -u -l 2333

これにより、ssが表示されます(2番目のシェル):

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

その後、接続すると(3番目のシェル)

$ nc -u localhost 2333

その後、SSは以下を表示する。

$ 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    

関連情報