Tại sao ss (8) hiểu các cổng UDP nghe khác với netstat (8)?


8

Nếu tôi thực thi ss -luđể xem tất cả các ổ cắm UDP đang nghe, thì không có ổ cắm nào được hiển thị. Nếu tôi thực thi ss -au, liệt kê tất cả các ổ cắm UDP (cả nghe và không nghe), thì các ổ cắm "nghe" được hiển thị dưới dạng 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:~ # 

Logic đằng sau này là gì? Ví dụ: chạy atftpd lắng nghe các kết nối, nên có trạng thái LISTEN không phải UNCONN, không nên sao?


Có lẽ chỉ là từ ngữ? Một ổ cắm nghe rõ ràng là không được kết nối ... ;-)
Hauke ​​Laging

1
@HaukeLaging Không đề cập đến cả âm thanh tệ khi xem xét UDP :)
TNW

Tôi đã nhận thấy rằng hành vi -ulkhác nhau giữa RHEL5 và RHEL6. Điều này là vô nghĩa đối với RHEL5, nhưng RHEL6 thực hiện những gì bạn mong đợi. (trạng thái vẫn được liệt kê như UNCONNtrong đầu ra, nhưng nó chỉ hiển thị cho người nghe)
Andrew B

Câu trả lời:


4

UDP là một giao thức không kết nối. SS có thể sẽ không hiển thị một trạng thái LISTEN, chỉ trong UCONN hoặc ESTAB.

Nếu tôi làm điều này,

$ nc -u -l 2333

Sau đó ss sẽ hiển thị (trong vỏ thứ 2):

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

Nếu sau đó tôi kết nối với nó (vỏ thứ 3)

$ nc -u localhost 2333

sau đó SS hiển thị:

$ 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    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.