网络服务相关

netstat

netstat 是一个很实用的 Linux 命令,通过它可以显示网络连接,路由表,接口状态,网络链路和组播成员组等信息。最常用的场景是拿来看本机的 TCP/UDP 网络连接,并以此判断本地网络服务的运行状态。

单独使用查看所有连接信息
natstat

查看端口占用使用情况

1
netstat -tulpn

只显示 TCP 连接信息:

1
netstat -t

关于 State 状态字段的值列表如下:

状态名称 说明
ESTABLISHED 套接字有一个有效连接。
SYN_SENT 套接字尝试建立一个连接。
SYN_RECV 从网络上收到一个连接请求。
FIN_WAIT1 套接字已关闭,连接正在断开。
FIN_WAIT2 连接已关闭,套接字等待远程方中止。
TIME_WAIT 在关闭之后,套接字等待处理仍然在网络中的分组
CLOSED 套接字未用。
CLOSE_WAIT 远程方已关闭,等待套接字关闭。
LAST_ACK 远程方中止,套接字已关闭。等待确认。
LISTEN 套接字监听进来的连接。如果不设置 –listening 或者 –all 选项,将不显示出来这些连接。
CLOSING 套接字都已关闭,而还未把所有数据发出。
UNKNOWN 套接字状态未知。

telnet

telnet表示开启终端机阶段作业,并登入远端主机。telnet是一个Linux命令,同时也是一个协议(远程登陆协议)。

命令格式: telnet[参数][主机]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-8 允许使用8位字符资料,包括输入与输出。

-a 尝试自动登入远端系统。

-b<主机别名> 使用别名指定远端主机名称。

-c 不读取用户专属目录里的.telnetrc文件。

-d 启动排错模式。

-e<脱离字符> 设置脱离字符。

-E 滤除脱离字符。

-f 此参数的效果和指定"-F"参数相同。

-F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。

-k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。

-K 不自动登入远端主机。

-l<用户名称> 指定要登入远端主机的用户名称。

-L 允许输出8位字符资料。

-n<记录文件> 指定文件记录相关信息。

-r 使用类似rlogin指令的用户界面。

-S<服务类型> 设置telnet连线所需的IP TOS信息。

-x 假设主机有支持数据加密的功能,就使用它。

-X<认证形态> 关闭指定的认证形态。

ss

ss 命令是 netstat 的替代品,提供了更多的网络连接信息,特别是网络状态和性能统计信息。

查看所有连接:

1
ss -a

查看监听端口:

1
ss -l

显示所有 TCP 连接:

1
ss -t

显示所有 UDP 连接:

1
ss -u

lsof

lsof 命令用于列出打开的文件,可以结合网络选项来显示网络连接信息。

显示网络连接信息:

1
lsof -i

显示特定端口的使用情况:

1
lsof -i :80

ip

ip 命令用于显示和操作路由、设备、策略路由和隧道等。

显示网络设备状态:

1
ip link show

显示 IP 地址:

1
ip addr show

显示路由表:

1
ip route show