Linux中一直习惯了用netstat来查看网络连接状态信息,偶尔在一个接受ss的页面看到其比netstat命令还要好,习惯要改变,特此对这两个命令做记录。
ss是Redhat/centos7中开始有的命令,利用了tcp协议栈中的tcp_diag模块,统计速度比netsat要快很多,即使系统中没有了tcp_diag模块,其速度也是netsat所无法比拟的
还有一个原因是net-tools工具不支持GRE隧道技术,而iproute2支持
netstat命令其安装包是net-tools, ss命令的安装包是iproute2
下面是ss命令的简单使用
一查看当前服务器的网络连接统计
一般用做宏观统计
[root@localhost ~]# ss -s
Total: 1243 (kernel 1647)
TCP: 15 (estab 1, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 1647 - -
RAW 1 0 1
UDP 6 5 1
TCP 14 8 6
INET 21 13 8
FRAG 0 0 0
二查看打开的网络接口并看到具体的程序名称 下面省略了很多
ss -pl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
users:(("cupsd",pid=1072,fd=12))
tcp LISTEN 0 100 127.0.0.1:smtp *:* users:(("master",pid=1776,fd=13))
tcp LISTEN 0 128 :::sunrpc :::* users:(("systemd",pid=1,fd=44))
tcp LISTEN 0 128 ::1:webcache :::* users:(("sshd",pid=2689,fd=10))
tcp LISTEN 0 128 ::1:http :::* users:(("sshd",pid=2689,fd=8))
tcp LISTEN 0 128 :::ssh :::* users:(("sshd",pid=1154,fd=4))
tcp LISTEN 0 128 ::1:ipp :::* users:(("cupsd",pid=1072,fd=11))
tcp LISTEN 0 100 ::1:smtp :::* users:(("master",pid=1776,fd=14))
三 查看服务器上面相关的socket连接
ss -ta 查看tcp sockets
ss -ua 查看udp sockets
ss -wa 查看 RAW sockets
ss -xa 查看 UNIX sockets
四特意百度了一下两者使用上的相通处
开启某个网络接口 ifconfig eth0 up ip link set up eth0
停止某个网络接口 ifconfig eth0 down ip link set down eth0
设置IP地址 ifconfig eth0 1.1.1.1/24 ip addr add 1.1.1.1/24 dev eth0
删除网络IP ifconfig eth0 0 ip addr del 1.1.1.1/24 dev eth0
显示某个网络接口的IP地址 ifconfig eth0 ip addr show dev eth0
显示路由表 route -n ip route show
添加默认网关 route add default gw 192.168.1.1 eth0 ip route add defaults via 192.168.1.1 eth0
删除默认网关 route del default gw 192.168.1.1 eth0 ip route replace default via 192.168.1.1 dev eth0