一文讲透所有网络穿透(篇一)
字数 1504 2025-08-23 18:31:34
网络穿透技术详解:端口转发篇
网络穿透概述
网络穿透技术主要用于解决IPv4地址枯竭导致的NAT环境下的通信问题,在渗透测试、异地组网、远程办公、开发测试环境管理等方面有广泛应用。
主要技术分类
- 端口转发:将流量从一个IP地址和端口转发到另一个IP地址和端口
- 端口映射:端口转发的一种实现方式,主要用于NAT和PAT
- 网络代理:代理客户端请求,可进行内容过滤和缓存
- 网络隧道:通过加密和封装技术在网络间创建安全连接
- VPN:使用网络隧道技术在公网上创建虚拟专用网络
- 异地组网:使用VPN技术连接不同地理位置的网络
NAT类型与穿透难度
STUN标准将NAT分为四种类型,穿透难度递增:
-
全锥形NAT(Full Cone NAT)
- 任何外部主机知道NAT的公共IP和端口即可通信
- STUN支持程度最高,穿透最容易
-
受限锥形NAT(Restricted Cone NAT)
- 只有先前从内网发送过数据的外部主机可通信
- STUN支持程度较高,穿透相对容易
-
端口受限锥形NAT(Port Restricted Cone NAT)
- 只有先前从内网发送过数据的外部主机的特定端口可通信
- STUN支持程度中等,穿透较难
-
对称NAT(Symmetric NAT)
- 每个外部主机和端口请求分配不同的映射公共端口
- STUN支持程度最低,穿透非常困难,通常需要TURN服务器
SSH端口转发详解
SSH提供三种端口转发方式,功能强大且安全。
1. 本地端口转发(Local Port Forwarding, LPF)
功能:将本地端口绑定到SSH服务器上的远程端口
命令格式:
ssh -L [本地端口]:[目标主机]:[目标端口] [SSH用户]@[SSH服务器]
常用选项:
-N:不执行远程命令-f:将SSH进程放入后台-C:启用压缩
两种转发模式:
-
转发到远程主机的localhost:
ssh -L 123:localhost:456 remotehost- 本地端口123 → SSH隧道 → remotehost的localhost:456
-
转发到远程主机可访问的其他主机:
ssh -L 123:farawayhost:456 remotehost- 本地端口123 → SSH隧道 → remotehost → farawayhost:456
应用场景:
- 通过跳板机访问内网服务
- 安全访问远程服务
2. 远程端口转发(Remote Port Forwarding, RPF)
功能:将远程端口绑定到本地或本地网络中的端口
命令格式:
ssh -R [远程端口]:[目标主机]:[目标端口] [SSH用户]@[SSH服务器]
两种转发模式:
-
转发到本地主机的localhost:
ssh -R 123:localhost:456 remotehost- 远程端口123 → SSH隧道 → 本地localhost:456
-
转发到本地网络中的其他主机:
ssh -R 123:nearhost:456 remotehost- 远程端口123 → SSH隧道 → 本地网络nearhost:456
应用场景:
- 将内网服务暴露到公网
- 反向连接场景
3. 动态端口转发(Dynamic Port Forwarding, DPF)
功能:创建SOCKS代理,动态转发所有流量
命令格式:
ssh -D [本地端口] [用户@远程主机]
工作原理:
- 建立SSH连接
- 在本地创建SOCKS代理
- 应用程序流量通过代理→SSH隧道→远程主机→目标服务器
应用场景:
- 绕过防火墙限制
- 匿名浏览
- 访问区域限制服务
Windows端口转发工具
netsh端口转发
Windows系统自带的网络配置工具,可用于端口转发。
图形化工具:
PortProxyGUI - netsh的图形化界面工具,简化配置过程。
总结
端口转发是网络穿透的基础技术,SSH提供的三种转发方式可以满足大多数场景需求:
- 本地转发:正向代理模式,通过跳板访问内网
- 远程转发:反向代理模式,暴露内网服务
- 动态转发:全流量代理,灵活访问各类资源
理解NAT类型对选择穿透方案至关重要,全锥形NAT最容易穿透,对称NAT最难穿透通常需要中继服务器。