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

端口管理|网络排查|linux查看端口的常用命令及方法

🔍 Linux端口管理指南:从排查到掌握的实用命令大全

场景引入
深夜赶工部署新服务,突然发现应用死活连不上数据库?🤯 同事大喊“端口被占用了!”,而你对着黑乎乎的终端一脸懵——别慌!掌握这些Linux端口管理技巧,分分钟让你从“端口小白”进阶“网络侦探”🕵️♂️


📌 端口基础:快速认知

端口是什么
好比快递柜的格子号(比如3306是MySQL的专属“柜子”),数据通过端口找到正确的服务。

常见端口

  • 22:SSH远程登录
  • 80/443:HTTP/HTTPS网页服务
  • 3306:MySQL数据库
  • 6379:Redis缓存服务

🛠️ 必会命令:查看端口四板斧

1️⃣ netstat:老牌全能选手

netstat -tuln  # 查看所有监听中的TCP/UDP端口  

输出解读

  • t:TCP协议
  • u:UDP协议
  • l:仅显示监听端口
  • n:直接显示端口号(不解析服务名)

示例

端口管理|网络排查|linux查看端口的常用命令及方法

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

👉 22端口正在监听所有IP的连接


2️⃣ ss:netstat的超级进化版

ss -tuln  # 更快速!推荐新系统使用  

优势

  • 速度比netstat快10倍⚡
  • 显示更简洁(试试加-p看占用进程)

3️⃣ lsof:精准定位“谁在用我的端口”

sudo lsof -i :8080  # 查看8080端口的占用情况  

输出示例

COMMAND  PID USER  FD TYPE DEVICE SIZE/OFF NODE NAME  
nginx   1234 root  6u IPv4 12345   0t0     TCP *:8080 (LISTEN)  

👉 原来是nginx占用了8080端口!

端口管理|网络排查|linux查看端口的常用命令及方法


4️⃣ nmap:端口扫描神器

sudo nmap -sT 127.0.0.1  # 扫描本机开放端口  

高级玩法

nmap -p 1-1000 192.168.1.1  # 扫描某IP的1~1000端口  

⚠️ 注意:未经授权的扫描可能违法!


🔧 实战场景:端口问题排错

问题1:端口被占用导致服务启动失败

解决步骤

  1. 找出罪魁祸首:
    sudo lsof -i :3306  
  2. 根据PID干掉进程:
    sudo kill -9 [PID]  
  3. 重启服务:
    sudo systemctl restart mysql  

🌐 问题2:测试远程端口是否可达

telnet 目标IP 端口号  # 传统方法(如未安装:yum install telnet)  
nc -zv 目标IP 端口号  # 更推荐!(需安装netcat)  

成功响应Connection to 192.168.1.10 22 port [tcp/ssh] succeeded!

端口管理|网络排查|linux查看端口的常用命令及方法


💡 高级技巧:端口转发与防火墙

🔄 端口转发(比如将外网8080转到内网80)

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80  

🛡️ 防火墙放行端口(以firewalld为例)

sudo firewall-cmd --add-port=8080/tcp --permanent  # 永久生效  
sudo firewall-cmd --reload  

🎯 一张速查表

场景 命令
查看所有监听端口 ss -tulnnetstat -tuln
查具体端口占用 sudo lsof -i :端口号
杀进程 sudo kill -9 [PID]
测试端口连通性 nc -zv IP 端口
开放防火墙端口 firewall-cmd --add-port=XX/tcp

最后的忠告🔊:

  • 修改生产环境端口前一定要备份配置!
  • 遇到“Permission denied”时,记得加sudo提权哦~

现在你可以淡定地对同事说:“放着,我来!” 💪 (默默收藏这篇指南就更稳了)

发表评论