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

Linux如何快速查看开放哪些端口?

在Linux系统中,查看开放端口(监听状态)的常用命令有:,1. netstat -tuln:列出TCP/UDP监听端口。,2. ss -tuln:更快速的替代命令,功能类似。,3. lsof -i -P -n | grep LISTEN:列出监听端口的进程信息。

在Linux系统中,查看开放端口是系统管理、网络安全排查和服务器配置的基础操作,开放端口可能成为安全风险入口,也可能影响服务正常运行,以下是几种专业可靠的方法,操作前建议使用sudo或root权限以确保结果完整。


使用 netstat 命令(经典工具)

netstat 是传统网络工具,可查看端口和连接状态。
安装与使用

# 如果未安装(部分新系统需手动安装)
sudo apt install net-tools  # Debian/Ubuntu
sudo yum install net-tools  # CentOS/RHEL
# 查看所有监听端口
sudo netstat -tuln
  • 参数解释
    -t:TCP端口
    -u:UDP端口
    -l:仅显示监听中的端口
    -n:以数字形式显示(不解析域名)
    输出示例

    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

    提示Local Address列中:22表示22端口开放,0.0.0表示监听所有IP。


使用 ss 命令(推荐替代方案)

ss(Socket Statistics)是netstat的现代替代品,速度更快且功能更强。
基本命令

Linux如何快速查看开放哪些端口?  第1张

sudo ss -tuln  # 参数含义同netstat

进阶用法

# 查看所有已建立连接的端口
sudo ss -tun state established
# 检查特定端口(如80端口)
sudo ss -tun sport = :80

使用 lsof 命令(查看进程关联端口)

lsof(List Open Files)可显示端口对应的进程,适合定位服务冲突。
安装与使用

sudo lsof -i -P -n | grep LISTEN
  • 参数解释
    -i:显示网络连接
    -P:禁用端口别名(显示数字端口)
    -n:禁用域名解析
    输出示例

    sshd    1234 root    3u  IPv4 28777      0t0  TCP *:22 (LISTEN)
    nginx   5678 root    6u  IPv6 34521      0t0  TCP *:80 (LISTEN)

    输出中*:22表示22端口由sshd进程监听。


使用 nmap 扫描(检测外部可见端口)

nmap 是专业级扫描工具,可检测防火墙规则下的实际开放端口。
安装与扫描

# 安装nmap
sudo apt install nmap  # Debian/Ubuntu
sudo yum install nmap  # CentOS/RHEL
# 扫描本机开放端口
nmap -sT -p- localhost
  • 参数解释
    -sT:TCP连接扫描
    -p-:扫描所有端口(1-65535)
    输出示例

    PORT    STATE SERVICE
    22/tcp  open  ssh
    80/tcp  open  http

    注意nmap扫描结果反映外部可访问的端口,可能受防火墙影响。


查看 /etc/services 文件(端口服务映射)

该文件记录了标准端口与服务名称的对应关系:

grep -w '80/tcp' /etc/services  # 查询80端口对应的服务

输出示例:

http    80/tcp  www  # World Wide Web HTTP

防火墙工具辅助

若使用防火墙(如ufwfirewalld),需单独检查规则:

  • ufw(Ubuntu):
    sudo ufw status  # 查看允许的端口
  • firewalld(CentOS/RHEL):
    sudo firewall-cmd --list-ports

总结与安全建议

  1. 方法选择
    • 快速检查:用 ss -tuln
    • 查进程关联:用 lsof -i -P -n
    • 外部扫描:用 nmap localhost
  2. 安全提示
    • 关闭无用端口(如测试后忘记关闭的临时端口)。
    • 限制高危端口(如22、3306)的IP访问范围。
    • 定期使用 nmap 扫描服务器,验证防火墙有效性。
  3. 权限注意
    nmap外,其他命令通常需sudo权限才能查看所有端口。

引用说明

  • Linux man 手册(命令后输入 man netstatman ss 等)。
  • Nmap官方文档:https://nmap.org/docs.html。
  • Linux Foundation 基础网络管理指南。
0