跳转至

不同情况下的内网穿透

技术说明

  • ddns:将动态的公网 ip 地址绑定到一个域名上
  • 通过 VPN 访问内网:在互联网上建立一个隧道,通过隧道可实现访问内网设备
  • 端口转发:将发送给 A 的某个端口的数据转发给 B 的某个端口。对于访问者来说,访问的是 A,实际响应的是 B

网络状况

设备 A 位于路由器后,设备 B 想要远程连接 A。以下是设备 B 分别使用 ipv4 和 ipv6 访问 A 时不同情况的处理方式。

  • ipv4
    • 路由器 WAN 口有公网 ipv4 地址
      1. 方式一:路由器 ddns + 路由器端口转发
      2. 方式二:wireguard,B 通过 VPN 连接到路由器上,进而访问内网设备
    • 路由器 WAN 口为内网 ipv4 地址
      1. 方式一:A 上安装 Zerotier,B 上也安装 Zerotier,AB 便可以通过虚拟的 Zerotier 地址相互访问。
      2. 方式二:在路由器上安装 Zerotier,同时在 Zerotier central 中配置转发规则(具体方式自行搜索)。B 上安装 Zerotier,此时 B 不仅可以访问路由器,也可以访问路由器 LAN 中的其它设备,因此可以访问 A - 注:Zerotier 连接的两个设备间的通信不一定全靠 Zerotier 服务器中转,如果两个设备中间的 NAT 结构比较好的话,Zerotier 会通过UDP 打洞的方式,让两个设备直接通信。
  • ipv6
    • 路由器 WAN 口和 A 均有公网 ipv6 地址
      • 直接在 PC 上配置 ddns 注:1)如果 PC 无 ipv6,那么配置路由器不要使用 NAT6 2)ipv6 的端口转发是不必要的
      • 注:目前所有 ISP 一般都提供了公网 ipv6 地址,可能需要在光猫中开启。
  • 特殊情况
    • 虽然无公网 ipv4 地址,但是如果 A, B 可以 ping 通对方(比如都位于校园网中),则可以使用 ip 地址直接远程连接。
    • 虽然有公网 ipv4/ipv6 地址,但是 B 可能仍无法访问 A。比如,校园网虽然提供了公网地址,但是校外访问时会被防火墙拦截。
      • 这种情况 wireguard 仍然有效,不会被防火墙拦截
      • 一般只对 ipv4 地址进行拦截,ipv6 基本不怎么拦截,因此可以使用 ipv6

网络穿透 + 远程桌面用例

注:括号内为要求

  • (同时连接在校园网上)去实验室做实验时,直接远程连接寝室电脑,再也不用带电脑了。
  • (同时连接在校园网上)在教室的多媒体电脑上远程连接寝室电脑(有一次使用这种方式救急拷贝了演讲的 ppt)
  • (同时连接在校园网上)在实验室,串流玩寝室的台式电脑。
  • (校园网有公网 ipv4)放假在家,通过 wireguard 远程访问位于学校的台式电脑。