当前位置:首页 > Linux > 正文

如何看linux机器端口号

Linux中,查看端口号的方法有: netstat -tulnss -tulnlsof -inmap IP地址以及查看 /etc/services文件。

Linux系统中,查看端口号是网络管理和系统监控的重要任务之一,以下是几种常用的方法来查看Linux机器上的端口号:

netstat命令

netstat是一个经典的网络统计工具,可以显示网络连接、路由表、接口统计等信息,通过以下命令可以查看当前系统上所有正在监听的TCP和UDP端口:

netstat -tuln
  • -t:显示TCP连接
  • -u:显示UDP连接
  • -l:仅显示监听状态的连接
  • -n:以数字形式显示地址和端口号,不解析服务名称

示例输出:

Proto Recv-Q Net-Device       Local Address           Foreign Address         State
tcp        0 0                0.0.0.0:22              0.0.0.0:               LISTEN
tcp        0 0                127.0.0.1:631           0.0.0.0:               LISTEN
udp        0 0                0.0.0.0:68              0.0.0.0:                          

ss命令

ss命令是netstat的替代品,功能更强大且更快速,它可以用来显示更多的网络信息,包括套接字统计信息,通过以下命令可以查看当前系统上所有正在监听的TCP和UDP端口:

ss -tuln
  • -t:显示TCP连接
  • -u:显示UDP连接
  • -l:仅显示监听状态的连接
  • -n:以数字形式显示地址和端口号,不解析服务名称

示例输出:

State      Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN     0      128    :22                     :                  
LISTEN     0      128    :68                     :                  
LISTEN     0      128    127.0.0.1:631           :

lsof命令

lsof命令可以列出当前系统打开的文件和进程信息,包括网络连接和打开的端口,通过以下命令可以查看正在监听的端口和相应的进程:

lsof -i
  • -i:显示所有网络连接和监听状态的端口号

如果只想查看特定端口的信息,可以使用:

lsof -i :端口号

查看80端口的信息:

如何看linux机器端口号  第1张

lsof -i :80

示例输出:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    1234 root   3u  IPv4  12345      0t0  TCP :80 (LISTEN)

nmap命令

nmap是一款网络扫描工具,可以用来探测目标主机的开放端口,通过以下命令可以扫描指定主机的端口号:

nmap 主机IP地址

扫描本地主机的端口:

nmap localhost

或者扫描特定IP地址的端口:

nmap 192.168.1.1

示例输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-07-21 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Other addresses for localhost (not scanned): ::1
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

systemctl命令(针对systemd系统)

如果你使用的是基于systemd的系统,可以通过systemctl命令查看特定服务的端口号,查看SSH服务的端口号:

systemctl status sshd

在输出中查找类似以下的行:

Active: active (running) since ...; 1min ago
...
Main PID: 1234 (sshd)
...

然后使用journalctl命令查看日志文件中的详细信息:

journalctl | grep -i ssh

示例输出:

Aug 01 21:43:36 elk3 systemd[1]: Starting OpenSSH server daemon...
Aug 01 21:43:36 elk3 sshd[860]: Server listening on 0.0.0.0 port 22.
Aug 01 21:43:36 elk3 sshd[860]: Server listening on :: port 22.
Aug 01 21:43:36 elk3 systemd[1]: Started OpenSSH server daemon.

/etc/services文件

在Linux系统中,端口号和服务之间有对应关系,可以通过查看/etc/services文件来了解常用服务的端口号,打开终端,输入以下命令:

cat /etc/services

该命令会列出/etc/services文件中定义的所有服务及其对应的端口号,HTTP服务默认使用80端口,SSH服务默认使用22端口。

归纳表格

命令 描述 常用选项 示例
netstat 显示网络连接、路由表、接口统计等 -tuln netstat -tuln
ss 显示套接字统计信息 -tuln ss -tuln
lsof 列出打开的文件和进程信息 -i lsof -i
nmap 网络扫描工具,探测开放端口 `nmap localhost`
systemctl 查看特定服务的端口号(基于systemd) `systemctl status sshd`
/etc/services 查看端口号和服务之间的对应关系 `cat /etc/services`

FAQs

Q1: 如何查看特定端口是否被占用?
A1: 可以使用lsofnetstat命令结合端口号来查看,查看80端口是否被占用:

lsof -i :80

或者:

netstat -tuln | grep :80

如果有输出,则表示该端口已被占用;否则未被占用。

Q2: 如何查看某个进程正在使用的端口号?
A2: 可以使用lsofnetstat命令结合进程ID来查看,假设进程ID为1234,查看该进程正在使用的端口号:

lsof -p 1234 -i

或者:

netstat -tulnp | grep
0