netstat
命令显示网络连接、路由表、接口统计、伪装连接和多播连接等信息
-
查看端口占用情况
netstat -tunlp
-
查看具体端口占用情况
netstat -tunlp | grep [port]
-
查看所有端口
netstat -ntlp
-
查看某个进程占用情况
netstat -anp | grep [pid]
nc
是 netcat
的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
nc的作用
- 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
- 端口的扫描,nc可以作为client发起TCP或UDP连接
- 机器之间传输文件
- 机器之间网络测速
参数
-
用于指定nc将处于侦听模式
nc -l
-
指定监听端口
nc -p <port>
-
指定发送数据的源IP地址,适用于多网卡机
nc -s
-
指定nc使用UDP协议,默认为TCP
nc -u
-
输出交互或出错信息,新手调试时尤为有用
nc -v
-
超时秒数,后面跟数字
nc -w
-
表示zero,表示扫描时不发送任何数据
nc -z
参考
ss
命令用于获取套接字统计信息。它可以显示类似于 netstat 的信息。不过 netstat 几乎要过时了,ss 命令更具优势
-
显示所有 TCP 或 UDP 套接字
ss -t -a
或ss -u -a
-
显示所有带有 SELinux 安全上下文Security Context的 TCP
ss -t -a -Z
iptraf
命令是一个基于 ncurses 的交互式 IP 网络监控工具。它可以生成多种网络统计信息,包括 TCP 信息、UDP 计数、ICMP 和 OSPF 信息、以太网负载信息、节点统计信息、IP 校验错误等。它以简单的格式提供了以下信息
- 基于 TCP 连接的网络流量统计
- 基于网络接口的 IP 流量统计
- 基于协议的网络流量统计
- 基于 TCP/UDP 端口和数据包大小的网络流量统计
- 基于二层地址的网络流量统计
tcpdump
命令是简单的分析网络通信的命令。您需要充分了解 TCP/IP 协议才便于使用此工具
-
显示有关 DNS 的流量信息
tcpdump -i eth1 'udp port 53'
-
查看所有去往和来自端口 80 的 IPv4 HTTP 数据包,仅打印真正包含数据的包,而不是像 SYN、FIN 和仅含 ACK 这类的数据包
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
-
显示所有目标地址为 202.54.1.5 的 FTP 会话
tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20)
-
打印所有目标地址为 192.168.1.5 的 HTTP 会话
tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http
-
使用 wireshark 查看文件的详细内容
tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
lsof
比netstat更强大的网络监控工具
在mac上查询端口用这个代替netstat
-
查看打开filename文件的所有进程
lsof filename
-
查看指定用户
lsof -u root
-
显示所有连接
lsof -i
-
查看相关端口的进程
lsof -i:port
-
仅获取IPv6流量
lsof -i 6
-
仅显示TCP连接
lsof -iTCP
-
显示指定到指定主机的连接
lsof -i@ip
-
找出正等候连接的端口
lsof -i -sTCP:LISTEN
或lsof -i | grep -i LISTEN
-
显示任何已经连接的连接
lsof -i -sTCP:ESTABLISHED
或lsof -i | grep -i ESTABLISHED
-
-a 结果进行“与”运算 多个命令结果和在一起
lsof -i -a -c ssh
-
显示指定用户打开了什么
lsof -u [user]
-
杀死指定用户所做的一切事情
lsof kill -9 `lsof -t -u [user]`
-
使用-c查看指定的命令正在使用的文件和网络连接
lsof -c syslog-ng
-
返回PID
lsof -t -c Mail
-
查看进程ID为procid的进程打开的文件列表
lsof -p procid
iperf3
测试最大TCP和UDP带宽性能
iperf3
要开两端,一端服务端,一端测试端进行测试
-
定义端口号
iperf3 -p
-
输出格式 Kbits, Mbits, Gbits, Tbits
iperf3 -f [kmgtKMGT]
- 表示服务器端
iperf3 -s
-
表示客户端,ip表示服务端的ip
iperf3 -c <ip>
-
指定带宽
iperf3 -b #[KMG][/#]
-
传输的字节数
iperf3 -n #[KMG]
-
间隔时间
iperf3 -i <time>
-
默认发送时间
iperf3 -t
-
缓冲区指定大小
iperf3 -w
-
参数可以将输出的测试结果储存至文件中
iperf3 --logfile
-
输出JSON格式
iperf3 -J
-
下载模式
iperf3 -R
-
分块传输
iperf3 -k
mtr
网络出口工具
MAC下注意事项:
- 安装在了/usr/local/sbin下,添加命令
export PATH=$HOME/bin:/usr/local/bin:$PATH:/usr/local/sbin
- 调用时需要用
sudo
s
-
以报告模式显示输出
mtr -r \ -report
-
将每次追踪的结果分别列出来
mtr -p \ -split
-
指定ping数据包的大小
mtr -s \ -psize
-
不对IP地址做域名反解析
mtr -n \ -no-dns
-
设置发送数据包的IP地址。用于主机有多个IP时
mtr -a \ -address
-
只使用IPv4协议
mtr -4
-
只使用IPv6协议
mtr -6
-
可以在mtr命令运行过程中,输入相应字母来快速切换模式
-
显示帮助菜单
mtr ?\ h
-
切换显示模式
mtr d
-
切换启用或禁用DNS域名解析
mtr n
-
切换使用ICMP或UDP数据包进行探测
mtr u
参考: