网络问题诊断常用命令
1. ifconfig——查看当前主机的IP 地址
- 用法:
ifconfig
2. ping —— 确定当前主机和目标主机是否联通
- 功能:确定当前主机和是否联通;
- 用法:
ping ${domainName}/${IP}
,可对目标主机的域名或者IP进行操作;
示例:
ping www.baidu.com
ping 153.3.238.102
ping
命令带参数的其它详细用法可参考博客:ping 命令使用详解
3. route —— 查看当前主机的网关
- 用法:
route -n
-n:该参数可以不加,加上该参数表示将域名转换成IP展示;
4. traceroute —— 查看当前主机到目标主机的每一跳
- 用法:
traceroute ${host} -w ${timeout}
-w: 在每一跳设置超时等待时间
该命令就是查看当前主机到目标主机的每一跳,并且在每一条都设置了等待的超时时间;
5. mtr —— 查看当前主机到目标主机的每一跳
- (My Trace Route),跟 traceroute 命令一样,也是查看当前主机到目标主机的每一跳,显示的信息更加丰富;
- 用法:
mtr ${host}
使用
mtr
命令之后会进入一个独立的弹窗界面,该界面会显示每一条的信息,并实时更新;
6. nslookup —— 根据域名获取相应的 IP 地址
- 用法:
nslookup www.baidu.com
7. telnet —— 指定域名下端口是否畅通
- 用法:
telnet ${domainName}/${IP} {port}
示例:telnet 127.0.0.1 3306
在指定主机上,如果指定的端口被监听,则会提示连接成功
之类的字样,否则就没有,示例如下图
8. tcpdump —— 抓包工具
- 功能:抓取所有网卡向指定主机发送的数据包,地址以IP的形式显示。
- 用法:
tcpdump -i any -n host ${IP}
示例: tcpdump -i any -n host 127.0.0.1
-i any: 抓取所有网卡上的包
-n: 以IP的形式进行显示,因为将IP转换成域名显示有时会很耗费性能;
host : 在其后指定一个IP,表示仅抓取指定目标IP上的数据包;
- 功能:抓取所有网卡向指定端口发送的数据包,地址以IP的形式显示。
- 用法:
tcpdump -i any -n port ${port} -v
示例:tcpdump -i any -n port 3306 -v
-i any 抓取所有网卡上的包
-n: 将域名转换成IP进行显示
-v: 该选项表示抓取各种协议的信息;
port : 在其后指定一个端口号,表示仅抓取指定端口上的数据包;
- 功能:抓取所有网卡向指定主机且指定端口发送的数据包,地址以IP的形式显示,并将抓取的数据保存在指定的文件中。
- 用法:
tcpdump -i any -n port 3306 and host 10.0.0.1 -w ${filePath}
示例:tcpdump -i any -n port 3306 and host 10.0.0.1 -w test.txt
,我们可以看到命令执行完毕之后会多出一个 test.txt
文件。
9. netstat —— 查看机器上网络端口、进程、监听状态
- 用法:
netstat -ntpl
-n: 将域名转换成IP显示;
-t: TCP 协议;
-p: process显示出指定端口的进程;
-l: listen,显示监听状态;
10. ss —— 查看机器上网络端口、进程、监听状态
- 用法:
ss -ntpl
,获取的信息与netstat
命令类似,使用哪一种具体看个人喜好了,还要看机器上安装了哪一种工具。
-n: 将域名转换成IP显示;
-t: TCP 协议;
-p: process显示出指定端口的进程;
-l: listen,显示监听状态;