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

怎样检查Linux端口连通性

使用telnet、nc或nmap工具测试端口,telnet检查TCP连接,nc测试TCP/UDP,nmap扫描端口状态,同时检查防火墙设置是否放行。

使用 telnet 测试TCP端口

适用场景:快速检测TCP端口是否开放(需安装telnet)。

命令与操作

telnet <目标IP> <端口号> # 示例:检测192.168.1.100的80端口 telnet 192.168.1.100 80

结果解读

  • 连接成功:显示 Connected to 192.168.1.100 或黑屏光标(表示端口开放)。
  • 连接失败:提示 Connection refused(端口未开放)或 No route to host(网络不通)。

    注意:若未安装telnet,可通过 sudo apt install telnet(Debian/Ubuntu)或 sudo yum install telnet(CentOS/RHEL)安装。


使用 nc (netcat) 工具

适用场景:测试TCP/UDP端口,支持脚本自动化。

安装与命令

怎样检查Linux端口连通性 第1张

结果解读

  • 成功:Connection to 192.168.1.100 port 22 [tcp/ssh] succeeded!
  • 失败:nc: connect to 192.168.1.100 port 22 (tcp) failed: Connection refused


使用 nmap 扫描端口

适用场景:全面扫描目标主机的开放端口(支持批量IP检测)。

安装与命令

怎样检查Linux端口连通性 第2张

结果解读

  • 开放端口:PORT STATE SERVICE
  • 关闭端口:STATE 显示 closed 或 filtered(被防火墙拦截)。


专用协议工具

  1. HTTP/HTTPS端口

    使用 curl 测试Web服务:

    curl -I http://<目标IP>:<端口> # HTTP curl -I https://<目标IP>:<端口> # HTTPS(忽略证书错误加 `-k`)
    • 成功:返回HTTP状态码(如 200 OK)。
    • 失败:提示 Connection refused 或超时。
  2. SSH端口

    使用SSH客户端测试:

    怎样检查Linux端口连通性 第3张

    ssh -v -p <端口> user@<目标IP>
    • 成功:显示密钥交换信息。
    • 失败:Connection reset by peer 或超时。


本地端口监听检查

适用场景:确认本机服务是否监听指定端口。

命令

# 使用ss(推荐) ss -tuln | grep :<端口号> # 使用netstat netstat -tuln | grep :<端口号>

结果解读

  • 若输出中包含 LISTEN,表示服务已启动并监听该端口。
  • 无输出则说明端口未被监听。


防火墙与路由排查

若端口不通,需检查:

  1. 防火墙规则: sudo iptables -L -n # 查看iptables规则 sudo ufw status # Ubuntu防火墙
  2. 路由可达性: ping <目标IP> # 检查网络层连通性 traceroute <目标IP> # 追踪路由路径


总结建议

  • 快速测试:优先用 telnet 或 nc(TCP)、nmap(批量扫描)。
  • 协议适配:HTTP用 curl,SSH用客户端命令。
  • 全面诊断:结合本地监听检查(ss/netstat)和防火墙验证。
  • 注意局限
    • ICMP协议(ping)仅测试网络层,不涉及端口
    • UDP端口检测需服务端主动响应,否则结果可能不准确。

引用说明基于Linux官方文档(man7.org)及常用网络工具手册(如nmap、netcat),结合运维实践编写,确保方法可靠,防火墙配置部分参考了iptables官方指南(netfilter.org)。

0