Hostwinds 博客
寻找结果为:
端口就像门口,允许Linux系统上的应用程序和程序发送和接收数据。如果您想查看正在使用的端口,哪些端口是打开的,或者只是弄清楚网络正在发生的事情,那么您来了。
在本指南中,我们将浏览多种方式,使用简单命令在Linux中检查端口。最后,您会感到更自在地与港口合作,并知道系统上正在发生的事情。
在跳入命令之前,让我们花点时间了解什么是端口:
这样一来,让我们探索如何检查端口发生的事情。
Linux有许多工具可以帮助您检查打开或收听端口。下面,我们将介绍五种常见方法,并解释每种方法的作用。
NetStat命令为您提供了网络连接和端口使用情况的详细视图。
打开终端和类型:
netstat -tuln
这是每个选项的含义:
您会看到什么:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
这是阅读的方法:
快速注意: Netstat是Net-Tools软件包的一部分,可能不会在较新的Linux版本上预安装。使用:
sudo apt install net-tools # On Debian/Ubuntu
sudo yum install net-tools # On RHEL/CentOS
ss 是Netstat的更新,更快的替代品。它提供了类似的信息,但在现代系统上可以更好地工作。
运行以下命令:
ss -tuln
选项与NetStat相同,因此您应该可以直接跳入。
您会看到什么:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
该输出类似于Netstat,但是 ss 往往会更快,尤其是当您处理很多连接时。
lsof (列表打开文件)是一个方便的工具,可查看进程使用哪些文件或网络连接。
要查看哪些端口是打开的以及使用它们的是什么,请运行:
sudo lsof -i -P -n
您会看到什么:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
dhclient 5678 root 6u IPv4 54321 0t0 UDP *:68
如果您要进行故障排除,并且需要找出使用特定端口的哪个过程, lsof 是您的首选工具。
nmap (网络映射器)是扫描网络和检查哪些端口打开的理想选择。
要扫描所有端口,请运行:
sudo nmap -sT -p- localhost
您会看到什么:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
为什么NMAP有用:
nmap 如果您希望完整地查看系统上的所有开放端口,或者需要扫描另一台机器,那就太好了。
Netcat 是一个简单但功能强大的工具,用于检查特定端口是否打开。
要检查端口22是否打开,请输入:
nc -zv localhost 22
您会看到什么:
Connection to localhost 22 port [tcp/ssh] succeeded!
为什么有用:
如果您只需要快速检查特定端口是否打开, NC 这项工作毫不费力。
当您检查端口时,结果通常意味着:
检查端口时,您可能会遇到以下情况:
检查端口只是第一步。这里有几种整理事情的方法:
停止不必要的程序:
如果程序在您不需要的端口上运行,请将其关闭:
sudo systemctl stop <service_name>
sudo systemctl disable <service_name>
使用防火墙:
使用UFW(简单的防火墙)等工具限制访问端口的访问:
sudo ufw allow 22 # Allow SSH
sudo ufw deny 80 # Block HTTP
定期监视端口:
养成不时检查开放端口的习惯,尤其是在您运行服务器时。
检查Linux中的端口不必复杂。无论您是使用Netstat,SS,LSOF,NMAP还是NC,每个工具都可以使您对正在发生的事情有所不同。选择最适合您需求的方法,不要害怕探索。您练习的次数越多,就越容易!
撰写者 Hostwinds Team / 一月 14, 2025