linux下的一些网络调试命令

这里记录一下,linux下的一些网络调试命令。

测试到达目的主机的网络是否连接,但ping无法检查系统端口是否开放

1
ping www.google.com

检查某个端口是否开放

1
telnet ip_addr:port

检测发出数据包的主机到目标主机之间所经过的网关数量

traceroute的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。
程序利用增加存活时间(TTL)值来实现其功能。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者

1
traceroute www.google.com

判断连接是否健康

查看服务器端口有没有客户端来连接

1
netstat -anp | grep xxxx

查看到进程id之后,使用netstat命令查看其占用的端口

1
netstat -nap | grep pid

查看tcp连接数及状态

1
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
1
2
3
4
5
6
LAST_ACK 5  
SYN_RECV 30
ESTABLISHED 15
FIN_WAIT1 51
FIN_WAIT2 5
TIME_WAIT 10

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT表示处理完毕,等待超时结束的请求数。
LAST_ACK:等待所有分组死掉


No dejes camino viejo por sendero nuevo.