如何看linux开放了哪些端口号,linux 怎么看对外开放的端口

《如何查看Linux已开放的端口?5种方法与注意事项全解析》

为什么需要查看开放的端口? 在Linux服务器管理中,开放的端口直接关系到网络服务的安全性,未授权的端口开放可能导致数据泄露或被攻击。

  • 管理员可能误开启测试端口却未及时关闭
  • 第三方服务可能占用意外端口
  • 攻击者扫描端口发现未防护的开放端口

5种专业查看方法详解

使用ss命令(推荐) 语法:ss -tulpn 说明:

如何看linux开放了哪些端口号,linux 怎么看对外开放的端口

  • t:显示TCP连接
  • u:显示UDP端口
  • l:显示监听端口(Listen)
  • p:显示关联进程
  • n:显示IP地址和端口编号 示例输出: listening on 0.0.0.0:22 (ss -ulpn) 0.0.0.0:22 tcp LISTEN 4282/servicemon

netstat命令(传统工具) 语法:netstat -tuln 特点:

  • 适合熟悉传统命令的管理员
  • 需注意Linux内核版本差异(netstat在较新内核中功能被ss取代) 示例: netstat -tuln | grep ':22' Active Internet connections (server): TCP 0.0.0.0:22 0.0.0.0:* LISTEN

nmap扫描法(主动探测) 语法:sudo nmap -sV -p 1-10000 关键参数:

  • -sV:版本探测
  • -p:指定端口范围
  • -T4:加速扫描模式 输出示例: 22/tcp open ssh OpenSSH 8.2p1, protocol 2.0 80/tcp open http Apache httpd 2.4.41 ((Debian)) 443/tcp open https Apache httpd 2.4.41 ((Debian))

lsof命令(进程关联查询) 语法:sudo lsof -i -n -P | grep ':' 优势:

  • 直接关联打开端口的进程
  • 可终止异常进程 示例: lsof -i -n -P | grep ':22' sshd: TCP 0.0.0.0:22 (LISTEN) sshd: TCP *:22 (ESTABLISHED)

系统自带的firewalld(防火墙视角) 语法:sudo firewall-cmd --list-all 查看已开放端口: firewall-cmd --zone=public --list-all public (active, default) interfaces: enp0s3 sources: 10.0.0.0/24 services: ssh http https masquerade: no forward-ports: 22:tcp permanent 80:tcp permanent

如何看linux开放了哪些端口号,linux 怎么看对外开放的端口

关键注意事项

  1. 权限要求:多数命令需要sudo权限
  2. 端口状态解读:
    • LISTEN:正在监听
    • ESTABLISHED:已建立连接
    • CLOSE_WAIT:连接关闭等待
  3. 安全建议:
    • 定期扫描(建议每月至少1次)
    • 关闭非必要端口(如关闭23 telnet)
    • 使用防火墙规则限制访问(如iptables)
    • 配置端口时记录操作日志

进阶技巧

  1. 实时监控工具(ss -an) sudo ss -an | grep ':' 可持续观察端口状态变化

  2. 端口占用率分析(结合top) lsof -i -n -P | sort -nrk3 | head -n10 按连接数排序查看高占用端口

    如何看linux开放了哪些端口号,linux 怎么看对外开放的端口

  3. 自动化脚本(示例) for port in {1..65535}; do if ss -tulpn | grep ":$port"; then echo "端口 $port 已开放" fi done

常见问题解答 Q:如何强制关闭异常端口? A:使用lsof找到进程后强制终止: sudo lsof -i -n -P | grep ':8080' | awk '{print $2}' | xargs kill -9

Q:如何查看已关闭的端口? A:检查系统日志: grep 'port closed' /var/log/syslog

Q:如何验证端口关闭? A:使用telnet测试: telnet 192.168.1.100 8080 若连接失败则表示端口已关闭

通过以上方法,管理员可以全面掌握Linux服务器的端口状态,有效维护网络边界安全,建议将端口检查纳入定期维护流程,结合防火墙规则和入侵检测系统,构建多层防御体系。