跳转到内容
下载软件

内网穿透搭建服务器

内网穿透是指将位于内网中的服务器的某些端口通过某种技术手段,映射到公网上,使得公网中的客户端可以访问到内网中的服务器。

目前常用的技术有FrpNgrok等,它们通过在公网服务器上搭建代理服务,将公网流量转发到内网中的服务器,实现内网穿透。当然,如果您的NAT类型为NAT1(完全锥形NAT),则可以使用STUN协议实现内网穿透。

下面,我们分别介绍这两种技术的搭建过程,代理服务器以SakuraFrp为例, STUN穿透以Lucky工具为例。

  1. 根据需要配置好服务端的组网参数
  2. 监听端口处可以按需填写,这里以默认的 11010 tcp 端口为例
  3. 点击运行网络即可 填入地址及端口
  1. 打开FRP网站-注册-登陆-实名认证
  2. 查看可选FRP节点状态
  3. 创建FRP隧道 由于运营商QOS以及节点设置,推荐优先选择TCP隧道

SakuraFrp-创建隧道

  1. 修改本地IP为局域网IP(127.0.0.1等本地回环地址会导致组网无法连接)

修改本地IP

  1. 修改本地端口为你在QtEasyTier中配置的监听端口(默认为11010)

创建隧道效果图

在选择穿透节点时,推荐按顺序考虑以下几点:

  • 优先选择同省多线、三线节点
  • 若没有同省节点,优先选择物理位置较近多线、三线节点
  • 若没有多线、三线节点可选,优先选择同运营商节点,尽可能避免跨运营商访问。在此基础上,尽可能选择物理位置较近的节点
  • 在没有其他选择的情况下,选择离自己物理位置较近的节点
  • 特别的,对于广电用户,在没有三线、多线可选的情况下,请尝试移动联通节点
  1. 根据设备下载合适的二次开发启动器frpc 下载软件
  2. 配置启动器(根据引导操作,不详述)
  3. 启动隧道
  4. 查看FRP日志,从中获取FRP穿透地址及端口 FRP日志
  5. 进行组网时,服务器一栏填写FRP穿透地址及端口即可

本部分内容基于Lucky或其他STUN内网穿透软件实现,以下以Lucky为例。

STUN(Session Traversal Utilities for NAT)内网穿透技术可以帮助解决因NAT(Network Address Translation)技术所带来的网络连接问题。STUN技术允许NAT1用户获取公网端口,通过路由端口转发或者LUCKY内置转发,将内网服务端口暴露到外网,从而实现内网穿透的目的。

STUN功能提供的端口穿透仅用于体验,无法保证端口变化的频率。请注意,对于与STUN稳定性相关的问题,无法提供技术支持。同时,我们也不提供任何关于如何访问内网的无公网v4方案。

STUN内网穿透基础使用说明详见STUN内网穿透

服务端的启动方法与前文相同,不再赘述

  1. 检测自己的NAT类型
  2. 设置DMZ或UPNP
  3. 创建穿透端口 (1) TCP穿透 在 lucky -> 内网穿透 -> STUN内网穿透 下创建一条新的穿透规则,穿透协议选择为IPV4-TCP。
    • 穿透通道本地端口可为 0 (随机端口),也可手动指定一个大于10240的未使用端口(推荐);
    • 目标地址填写设备的ip地址(不可为127.0.0.0/8);
    • 目标端口为对应的EasyTier监听端口。 stun参考配置 (2) UDP穿透
    • udp穿透和tcp的内容一致,只不过穿透类型改成了UDP而已。 (3) 手动设置
    • 不使用Lucky内置端口转发,改为手动开启对应的防火墙和端口转发,从而提高转发效率。
  4. 成功实现STUN内网穿透 STUN内网穿透效果图
  5. 固定穿透stun端口 Easytier支持通过DNS的TXT记录、SRV记录和HTTP(s)请求获取链接,从而获取对端设备的IP+端口号,因此我们可以在 lucky -> 动态域名 创建对应的解析记录或者 lucky -> Web服务 实现动态解析地址。 (1) TXT记录 在 lucky->动态域名->添加ddns记录 添加一个txt记录,记录名为要更新的域名,记录类型为TXT,记录内容为lucky的全局变量 tcp://{STUN_规则名_ADDR} DDNS-TXT参考配置 DDNS配置效果图 (2) SRV记录 配置和灵活性没有TXT高,因此这里不展开说明如何实现,如果有需要可以参考ie-12大佬的教程 (3) HTTP记录 HTTP相较于DNS的TXT记录的优势在于动态变化的端口可以实时解析,不会因为DNS缓存导致滞后,但是前提是需要搭建好Web的反向代理和STUN穿透。

lucky -> Web服务 -> 添加子规则 创建一个站点,服务类型选择为文本输出,前端地址设置为你的域名解析地址,这里的地址可以和你的TXT记录一致,因为一个是A/AAAA记录,另一个是TXT记录,两者不冲突。 HTTP(s)参考配置

  1. 将STUN穿透地址及端口填入服务器栏
  2. 或将TXT记录填入服务器栏
  3. 启动组网 填入TXT记录