当前位置:首页 > 问答 > 正文

端口管理|网络安全|查看linux端口的常用方法与操作步骤

端口管理 | 网络安全 | 查看Linux端口的常用方法与操作步骤

场景引入

想象一下,你正在远程管理一台Linux服务器,突然发现网络连接变慢,或者有可疑的流量进出,这时候,你会不会想:“这台服务器到底开放了哪些端口?有没有不该开的端口暴露在外?”

端口就像是服务器的“门”,如果管理不善,黑客可能会通过这些“门”溜进来,学会查看和管理Linux端口是网络安全的基本功,我们就来聊聊几种常用的方法,让你轻松掌握端口状态。


使用 netstat 查看端口

netstat(网络统计工具)是Linux上最经典的网络状态查看命令之一,可以列出所有活动的网络连接、监听端口和路由表等信息。

基本用法

netstat -tuln

参数解释:

  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:仅显示监听(LISTEN)状态的端口
  • -n:以数字形式显示端口和IP,不解析域名

示例输出

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          

解读:

  • 0.0.0:22 表示SSH服务在所有网络接口上监听22端口(TCP)。
  • :::80 表示HTTP服务在IPv6的所有接口上监听80端口(TCP)。
  • 0.0.0:68 表示DHCP客户端在UDP 68端口上运行。

进阶用法

如果想查看所有连接(包括已建立的),可以加 -a 参数:

netstat -tulnp

-p 参数会显示占用端口的进程名,方便排查问题。

注意:在较新的Linux发行版中,netstat 可能被标记为“过时”,推荐使用 ss 命令替代。

端口管理|网络安全|查看linux端口的常用方法与操作步骤


使用 ss 替代 netstat(更高效)

ss(Socket Statistics)是 netstat 的现代替代品,速度更快,功能更强大。

基本用法

ss -tuln

参数和 netstat 类似:

  • -t:TCP端口
  • -u:UDP端口
  • -l:仅监听端口
  • -n:不解析服务名

示例输出

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:*        
tcp   LISTEN 0      128    [::]:80            [::]:*           
udp   UNCONN 0      0      0.0.0.0:68         0.0.0.0:*        

解读:

  • 0.0.0:22 表示SSH服务在监听。
  • [::]:80 表示HTTP服务在IPv6上监听。

进阶用法

查看所有TCP连接(包括已建立的):

ss -t -a

查看占用某个端口的进程:

ss -ltnp | grep 80

使用 lsof 查看端口占用情况

lsof(List Open Files)可以列出系统中所有打开的文件,包括网络套接字(Socket),因此可以用来查看端口占用情况。

基本用法

lsof -i :22

示例输出

COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME  
sshd    123 root    3u  IPv4  12345      0t0  TCP *:ssh (LISTEN)  

解读:

端口管理|网络安全|查看linux端口的常用方法与操作步骤

  • sshd 进程(PID 123)正在监听22端口(SSH)。

查看所有网络连接

lsof -i

查看特定协议的连接(如TCP)

lsof -i tcp

使用 nmap 扫描端口(本地或远程)

nmap 是强大的网络扫描工具,可以检查本机或远程主机的开放端口。

扫描本机开放端口

nmap -sT -p- 127.0.0.1

参数解释:

  • -sT:TCP扫描
  • -p-:扫描所有端口(1-65535)

扫描远程主机(示例)

nmap -sT 192.168.1.100

注意:未经授权扫描他人主机可能违法,仅限合法用途!


使用 systemctl 管理服务(关闭不必要的端口)

如果发现某个端口不安全(比如不需要的FTP服务),可以用 systemctl 关闭对应服务:

查看所有服务状态

systemctl list-units --type=service

停止并禁用SSH服务(示例)

systemctl stop sshd  
systemctl disable sshd  

重新启用服务

systemctl start sshd  
systemctl enable sshd  

工具 适用场景 特点
netstat 查看端口、连接状态 经典但逐渐被 ss 取代
ss 高效查看Socket状态 netstat 更快,推荐使用
lsof 查看进程占用的端口 适合排查端口冲突
nmap 扫描本地或远程主机的开放端口 功能强大,适合安全审计
systemctl 管理服务(开启/关闭端口) 适用于systemd管理的Linux系统

掌握这些方法,你就能轻松管理Linux端口,提升服务器安全性,记得定期检查开放端口,避免不必要的风险!

(2025-08 更新)

发表评论