ip命令:
linux的ip命令和ifconfig类似,ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。linux系统提供的iproute2工具用于替代一些常用的net-tools命令。
用来显示或操纵linux主主机的路由、网络设备、策略路由和隧道
ip link
ip -s addr show eth1:
ifconfig:
参数说明:
mtu:最大的传输单元
inet:ipv4地址
netmask:子网的掩码
broadcast:广播地址
ether:mac地址
RX,TX行表示的是:接收和发送的数据包的个数(或者)字节数。
packets:包数
bytes:字节数
errors:表示发生错误的数据包数,比如校验错误、帧同步错误等
dropped:表示丢弃的数据包数,即数据包已经收到了 Ring Buffer,但因为内存不足等原因丢包
overruns:表示超限数据包数,即网络 I/O 速度过快,导致 Ring Buffer 中的数据包来不及处理(队列
满)而导致的丢包
carrier:表示发生 carrirer 错误的数据包数,比如双工模式不匹配、物理电缆出现问题等
collisions:表示碰撞数据包数
netstat
Netstat 的10个基本用法_Linux教程_Linux公社-Linux系统门户网站
Netstat 的10个基本用法_DViewer的专栏-CSDN博客_netstat
查看端口状态,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。
BusyBox v1.25.1 () multi-call binary.
Usage: netstat [-ral] [-tuwx] [-enWp]
Display networking information
-r Routing table
-a All sockets
-l Listening sockets
Else: connected sockets
-t TCP sockets
-u UDP sockets
-w Raw sockets
-x Unix sockets
Else: all socket types
-e Other/more information
-n Don't resolve names
-W Wide display
-p Show PID/program name for sockets
参数说明
Proto:各种相关的协议信息。
Recv-Q:接收队列
Send-Q:发送队列
Local Address:本地地址
Foreign Address:远端地址
State:套接字状态
PID/Program name:pid号和进程名字
说明:接收队列和发送队列在不同的套接字状态下,有不同的含义:
当套接字处于连接状态(Established)时,
Recv-Q 表示套接字缓冲还没有被应用程序取走的字节数(即接收队列长度)。
而 Send-Q 表示还没有被远端主机确认的字节数(即发送队列长度)。
当套接字处于监听状态(Listening)时,
Recv-Q 表示全连接队列的长度。
而 Send-Q 表示全连接队列的最大长度。
所谓全连接,是指服务器收到了客户端的 ACK,完成了 TCP 三次握手,
然后就会把这个连接挪到全连接队列中。
这些全连接中的套接字,还需要被 accept() 系统调用取走,
服务器才可以开始真正处理客户端的请求。
与全连接队列相对应的,还有一个半连接队列。
所谓半连接是指还没有完成 TCP 三次握手的连接,连接只进行了一半。
服务器收到了客户端的 SYN 包后,就会把这个连接放到半连接队列中,
然后再向客户端发送 SYN+ACK 包
netstat -a
列出 tcp, udp 和 unix 协议下所有套接字的所有连接。然而这些信息还不够详细,管理员往往需要查看某个协议或端口的具体连接情况。
netstat -at :
列出tcp协议连接
netstat -ant
默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能
netstat -antp
查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。
使用 -p 选项查看进程信息
使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下
netstat -antep
相比进程名和进程号而言,查看进程的拥有者会更有用。使用 -ep 选项可以同时查看进程名和用户名
假如你将 -n 和 -e 选项一起使用,User 列的属性就是用户的 ID 号,而不是用户名
ss命令
可以用来获取socket统计信息,和netstat显示的内容类似
sar命令
sar 是目前linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,对文件的读写情况、系统调用的使用状况、磁盘I/O、CPU的效率、内存的使用情况、进程活动及IPC有关的活动,同样也使用于网络中等。参考sar
参考资料:
参考ip
参考ifconfig
参考netstat
参考ss
参考sar
ethtool 用于查询及设置网卡参数的命令参考ethtool
参考ping
参考tcpdump