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

相关推荐
云泽80820 小时前
不止是命令:Linux 高频指令实战 + 芯片架构底层逻辑
linux·运维·服务器
j_xxx404_20 小时前
Linux:基础IO
linux·运维·服务器
wdfk_prog20 小时前
[Linux]学习笔记系列 -- [drivers][i2c]i2c-dev
linux·笔记·学习
angushine21 小时前
银河麒麟V10创建用户
运维
Trouvaille ~1 天前
【Linux】网络编程基础(二):数据封装与网络传输流程
linux·运维·服务器·网络·c++·tcp/ip·通信
久绊A1 天前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
旅途中的宽~1 天前
【深度学习】通过nohup后台运行训练命令后,如何通过日志文件反向查找并终止进程?
linux·深度学习
梦想的旅途21 天前
企业微信API外部群自动化推送:从“群发工具”到“智能触达”的架构实践
运维·自动化·企业微信
yuezhilangniao1 天前
Next.js 项目运维手册-含-常用命令-常见场景
运维·开发语言·reactjs
dump linux1 天前
内核驱动调试接口与使用方法入门
linux·驱动开发·嵌入式硬件