mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
20170726-24 选题
This commit is contained in:
parent
75698df754
commit
77b5a30a88
@ -0,0 +1,67 @@
|
||||
ss: another way to get socket statistics
|
||||
============================================================
|
||||
|
||||
### Share or save
|
||||
|
||||
In an earlier blog post I mentioned **ss**, another tool that comes with the _iproute2_ package and allows you to query statistics about sockets. The same thing that can be done with **netstat**, with the added benefit that it is typically a little bit faster, and shorter to type.
|
||||
|
||||
Just **ss **by default will display much the same thing as netstat, and can be similarly passed options to limit the output to just what you want. For instance:
|
||||
|
||||
```
|
||||
$ ss -t
|
||||
State Recv-Q Send-Q Local Address:Port Peer Address:Port
|
||||
ESTAB 0 0 127.0.0.1:postgresql 127.0.0.1:48154
|
||||
ESTAB 0 0 192.168.0.136:35296 192.168.0.120:8009
|
||||
ESTAB 0 0 192.168.0.136:47574 173.194.74.189:https
|
||||
```
|
||||
|
||||
[…]
|
||||
|
||||
**ss -t **shows just TCP connections. **ss -u **can be used to show UDP connections, **-l **will show only listening ports, and things can be further filtered to just the information you want.
|
||||
|
||||
I have not tested all the possible options, but you can even forcibly close sockets with **-K**.
|
||||
|
||||
One place where **ss** really shines though is in its filtering capabilities. Let’s list all connections with a source port of 22 (ssh):
|
||||
|
||||
```
|
||||
$ ss state all sport = :ssh
|
||||
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
|
||||
tcp LISTEN 0 128 *:ssh *:*
|
||||
tcp ESTAB 0 0 192.168.0.136:ssh 192.168.0.102:46540
|
||||
tcp LISTEN 0 128 :::ssh :::*
|
||||
```
|
||||
|
||||
And if I want to show only connected sockets (everything but _listening_ or _closed_ ):
|
||||
|
||||
```
|
||||
$ ss state connected sport = :ssh
|
||||
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
|
||||
tcp ESTAB 0 0 192.168.0.136:ssh 192.168.0.102:46540
|
||||
```
|
||||
|
||||
Similarly, you can have it list all connections to a specific host or range; in this case, using the 74.125.0.0/16 subnet, which apparently belongs to Google:
|
||||
|
||||
```
|
||||
$ ss state all dst 74.125.0.0/16
|
||||
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
|
||||
tcp ESTAB 0 0 192.168.0.136:33616 74.125.142.189:https
|
||||
tcp ESTAB 0 0 192.168.0.136:42034 74.125.70.189:https
|
||||
tcp ESTAB 0 0 192.168.0.136:57408 74.125.202.189:https
|
||||
```
|
||||
|
||||
This is very much the same syntax as for _iptables_ , so if you’re familiar with that already, it will be quite easy to pick up. You can also install the _iproute2-doc_ package, and look in _/usr/share/doc/iproute2-doc/ss.html_ for the full documentation.
|
||||
|
||||
Try it for yourself! You’ll see how well it works. If anything, I’m glad for the fewer characters this makes me type.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://insights.ubuntu.com/2017/07/25/ss-another-way-to-get-socket-statistics/
|
||||
|
||||
作者:[ Mathieu Trudel-Lapierre ][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:https://insights.ubuntu.com/author/mathieu-trudel-lapierre/
|
||||
[1]:https://insights.ubuntu.com/author/mathieu-trudel-lapierre/
|
Loading…
Reference in New Issue
Block a user