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

相关推荐
CAFEBABE 3411 分钟前
linux离线安装docker并启动
linux·docker·eureka
wanhengidc1 小时前
云手机的存储空间可以灵活扩展吗?
运维·服务器·科技·智能手机·云计算
Danileaf_Guo1 小时前
256台H100服务器的RoCEv2无损与全互联算力网络建设方案
运维·服务器·网络
解压专家6662 小时前
怎么找书?怎么传输?在Kred里完成的全过程
运维·服务器·网络
OnlyEasyCode2 小时前
快速上手!查看、拷贝、编辑、远程连接Linux命令
linux·运维·服务器
dualven_in_csdn2 小时前
UDP广播接收小优化
linux·运维·服务器
Xの哲學3 小时前
Linux二层转发: 从数据包到网络之桥的深度解剖
linux·服务器·算法·架构·边缘计算
石像鬼₧魂石3 小时前
Termux ↔ Windows 靶机 反向连接实操命令清单
linux·windows·学习
yuguo.im3 小时前
Docker 两大基石:Namespace 和 Cgroups
运维·docker·容器
亮子AI3 小时前
application/json 服务器收到的是字符串,还是json对象?
运维·服务器·json