Linux机器测试IP及端口连通性方法记录

在Linux中测试与目标IP特定端口的连通性时,需根据协议类型选择不同工具和方法。以下是针对HTTPS、TCP、UDP的详细测试方法:


一、HTTPS 端口测试(基于TCP的应用层协议)

1. 检查TCP层连通性
bash 复制代码
# 使用netcat测试TCP 443端口
nc -zv <IP地址> 443

# 使用telnet测试(若系统未安装需先安装telnet)
telnet <IP地址> 443
  • 若提示 Connectedsucceeded 表示TCP层可达。
2. 检查SSL/TLS握手
bash 复制代码
# 使用openssl验证SSL证书和握手
openssl s_client -connect <IP地址>:443 -servername <域名>(如有SNI需求)
  • 输出中出现 SSL handshake has read X bytes and written Y bytes 表示握手成功。
  • 若需测试HTTP响应,可用 curl
bash 复制代码
curl -Iv https://<IP地址>:端口

二、纯TCP端口测试

bash 复制代码
# 方法1: netcat快速测试
nc -zv <IP地址> <端口>

# 方法2: nmap扫描(需root权限)
nmap -p <端口> <IP地址>

# 方法3: telnet(基础测试)
telnet <IP地址> <端口>
  • 成功连接后,TCP端口被视为可达。

三、UDP端口测试

1. 使用netcat(需目标服务响应)
bash 复制代码
# 发送UDP数据包并监听响应(需交互式操作)
nc -u <IP地址> <端口>
输入测试数据后按回车,观察是否有回复

# 快速扫描模式(部分系统支持)
nc -uzv <IP地址> <端口>
  • 注意:UDP无连接特性可能导致假阳性,需结合服务特性判断。
2. 使用nmap深度扫描
bash 复制代码
sudo nmap -sU -p <端口> <IP地址>
  • open 表示端口可达,open|filtered 表示可能被防火墙干扰。
3. 使用socat发送UDP探测
bash 复制代码
echo "test" | socat - UDP4:<IP地址>:<端口>
  • 结合服务日志或抓包工具(如 tcpdump)验证数据是否到达。

四、补充工具与技巧

  1. 抓包验证

    使用 tcpdump 直接观察流量:

    bash 复制代码
    tcpdump -i any host <IP地址> and port <端口>
  2. 防火墙检查

    确保本地和网络防火墙未阻止连接:

    bash 复制代码
    iptables -L -n  # 检查本地规则
  3. 服务日志分析

    查看目标服务的日志,确认连接请求是否到达。


五、结果解读

协议 成功标志 失败可能原因
HTTPS TCP连通且SSL握手成功 证书错误、协议不兼容
TCP 工具显示 Connectedopen 端口关闭、防火墙阻断
UDP 收到服务响应或nmap标记 open 无响应、服务不处理探测数据

根据实际需求选择方法,若需验证服务可用性,建议结合协议特性发送实际请求(如HTTPS使用curl)。

相关推荐
巫山老妖8 分钟前
Linux流量分析:tcpdump&wireshark
linux·嵌入式
秃秃秃秃哇10 分钟前
ubuntu18编译RealSense SDK 2.0
linux
神也佑我橙橙12 分钟前
Ubuntu 22.04 安装英伟达驱动
linux·ubuntu·nvidia
不喝水的鱼儿17 分钟前
Ubuntu 25.04安装搜狗输入法
linux·运维·ubuntu
一只小阿乐39 分钟前
window 服务器上部署前端静态资源以及nginx 配置
运维·服务器·nginx
Jay Kay1 小时前
brpc中后端server挂在同一个命名服务和不同命名服务的区别详解
运维·服务器·brpc
Linux运维技术栈1 小时前
Nginx 动静分离原理与工作机制详解:从架构优化到性能提升
运维·nginx·架构
不脱发的程序猿1 小时前
Linux守护进程
linux·嵌入式
奈斯ing2 小时前
【prometheus+Grafana篇】PromQL核心函数解析:rate()与irate()函数详解
运维·grafana·prometheus
尤达c5 小时前
Jenkins on Mesos 高可用高并发部署
运维·ci/cd·devops