1. netstat命令
netstat是linux中最常用检查端口的命令,netstat能查看TCP连接、TCP和UDP监听端口、进程内存管理等,是监控TCP/IP网络状态的一个非常有用的工具。主要用于检验本机各端口的网络连接情况,能查看哪些网络连接正在运作,以及哪些端口正在被监听。
常用选项和用法:
-a:显示所有连接和监听端口。
-n:以数字形式显示地址和端口号,不进行DNS解析。
-t:仅显示TCP连接。
-u:仅显示UDP连接。
-l:仅显示监听状态的端口。
-p:显示进程标识符和进程名,需要root权限。
下面是该命令示例(仅查看正在监听的端口):
[root@master ~]# netstat -altp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5866 0.0.0.0:* LISTEN 29728/postgres
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN 584/rpcbind
tcp 0 0 master:domain 0.0.0.0:* LISTEN 1205/dnsmasq
tcp 0 0 0.0.0.0:ftp 0.0.0.0:* LISTEN 949/vsftpd
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 942/sshd
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 941/cupsd
tcp 0 0 localhos:x11-ssh-offset 0.0.0.0:* LISTEN 29668/sshd: root@pt
tcp 0 36 master:ssh 192.168.66.1:14531 ESTABLISHED 29668/sshd: root@pt
tcp 0 1 master:58050 192.168.66.137:2379 SYN_SENT 944/hghac
tcp6 0 0 [::]:5866 [::]:* LISTEN 29728/postgres
2. ss命令
ss是Linux系统中用于显示套接字(sockets)统计信息的工具,功能与netstat类似。
常用选项和用法:
-a:显示所有套接字。
-n:以数字形式显示地址和端口号。
-t:仅显示TCP连接。
-u:仅显示UDP连接。
-l:仅显示监听状态的端口。
下面是该命令示例(仅查看正在监听的端口):
[root@master ~]# ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:5866 *:*
LISTEN 0 128 *:sunrpc *:*
LISTEN 0 5 192.168.122.1:domain *:*
LISTEN 0 32 *:ftp *:*
LISTEN 0 128 *:ssh *:*
LISTEN 0 128 127.0.0.1:ipp *:*
LISTEN 0 128 127.0.0.1:x11-ssh-offset *:*
LISTEN 0 128 [::]:5866 [::]:*
LISTEN 0 128 [::]:sunrpc [::]:*
LISTEN 0 128 [::]:ssh [::]:*
LISTEN 0 128 [::1]:ipp [::]:*
LISTEN 0 128 [::1]:x11-ssh-offset [::]:*
3、lsof命令
可以用来查看网络连接及其对应的端口号。
常用选项和用法
-i:选择显示符合条件的文件,通常与:端口号一起使用来查看特定端口的连接。
下面是该命令示例:
[root@master ~]# lsof -i:5866
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 29728 root 3u IPv4 310662 0t0 TCP *:5866 (LISTEN)
postgres 29728 root 4u IPv6 310663 0t0 TCP *:5866 (LISTEN)