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가 표시됩니다(두 번째 셸에):

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

그런 다음 연결하면 (세 번째 셸)

$ 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    

관련 정보