Linux服务器作为一种广泛使用的服务器操作系统,有时需要对Socket连接进行连接状态的查看,以下提供几种查看Linux下Socket连接状态的方法。
1. 使用netstat命令
Netstat是Linux查看系统状态的一个命令,可以查看当前网络状态,包括TCP/IP、UDP(User Date Protocol)等查看实例如下:
$ netstat -an #查看全部的网络端口
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.1:3389 172.17.165.243:1048 ESTABLISHED
tcp 0 0 192.168.1.1:5357 192.168.1.240:8899 ESTABLISHED
获取到的结果中包含了当前网络的连接情况,其中Local Address 代表本机地址,Foreign Address 代表外部的地址,state 表明链接的状态,当操作netstat时,可以使用后面的参数来细化输出:
#查看TCP端口
$ netstat -at
#查看UDP端口
$ netstat -au
#仅查看处于 Listening 状态的 TCP 端口
$ netstat -atnl
#查看指定端口 22 状态
$ netstat -ap | grep ssh
netstat 由于使用范围广,因此有多少参数可以使用,可以查看某一台机器所有生效的连接,也可以查看指定端口的连接状态。
2. 使用lsof命令
除了netstat,还可以使用lsof(List Open File)查看当前的Socket状态,查看示例如下:
$ lsof –n | grep TCP
sshd 3520 root 3u IPv4 157344 0t0 TCP *:ssh (LISTEN)
sshd 3520 root 4u IPv6 157346 0t0 TCP *:ssh (LISTEN)
vncserver 3549 xxxx 5u IPv4 176300 0t0 TCP 127.0.0.1:5801 (LISTEN)
lsof结果中多了最后一列是PID(进程标识),很容易查看出正在使用什么进程,可以使用如下命令查看,lsof可以生成中文输出,方便查看进程:
$ lsof –n –i TCP
$ lsof -n –i tcp:8888 # 监听指定端口 8888
$ lsof –n | grep TCP | grep LISTEN #仅查看处于 Listening 状态的 TCP 端口.
以上方法可以初步查看Linux下Socket连接状态,通过查看便可以对网络自50端口的开放、被防火墙封锁等进行快速定位,从而可以更快捷的解决网络的问题。
香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/171845.html<