当前位置:首页 > 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。

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


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

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

基本命令

sudo ss -tuln # 参数含义同netstat

进阶用法

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


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

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

安装与使用

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

  • 参数解释

    -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)

    输出示例

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

    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


防火墙工具辅助

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

  • 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 netstat、man ss 等)。
  • Nmap官方文档:https://nmap.org/docs.html
  • Linux Foundation 基础网络管理指南。

0