web-dev-qa-db-ja.com

Linuxのnetstatとssの違いは?

Linuxでは、netstatコマンドはシステム内のアクティブなソケットの情報を教えてくれます。

netstat/proc/net/tcpを使用してシステムネットワーク情報を取得することを理解しています。

netstatのmanページにはnetstatは廃止されていると記載されているため、「ss」を使用する必要があります。

NOTE
   This program is obsolete.  Replacement for netstat is ss.   Replacement
   for  netstat -r is ip route.  Replacement for netstat -i is ip -s link.
   Replacement for netstat -g is ip maddr.

私はssが同様の機能を実行することを発見しましたが、システムネットワーク情報の取得に/proc/net/tcpを使用していません。

ssがシステムネットワークソケット情報を取得する方法に興味がありますか?

35
daehee

古典的な sockets APIを使用する Netlink を使用して、カーネル空間から直接取得します。

19
ggiroux

ssはiproute2パッケージに含まれており、netstatの代替品です。 ssは、ソケット統計をダンプするために使用されます。 netstatと同様の情報が表示されます。他のツールよりも多くのTCPおよび状態情報を表示できます。これは、(netstatに比べて)非常に便利で高速な新しいツールで、TCP接続とソケット。

13
Mr.Cool

Ssのソースを確認してください。

https://github.com/shemminger/iproute2/blob/master/misc/ss.c

基本的に、カーネルに直接クエリを送信し、netstatよりもはるかに速く応答できます。

7

ssは、LinuxおよびUnixシステムでソケットを調査するために使用されるユーティリティです。 netstatと同様の情報が表示され、ソケット統計をダンプできます。

ただし、netstatssで完全に置き換えることはできません。一部のnetstatコマンドはipコマンドに対応します。

    $ netstat -r   replaced by  $ ip route
    $ netstat -i   replaced by  $ ip -s lin
    $ netstat -g   replaced by  $ ip maddr

「古い」netstatコマンドは、ssコマンドとipコマンドの両方で置き換えることができると思います。

2
prosti