Hysteria 新增 Hysteria Realms

项目地址: https://github.com/apernet/hysteria/releases/tag/app%2Fv2.9.0

  • 新增 Hysteria Realms:没有公网 IP 也没问题!通过 NAT 打洞,让你从家宽、手机流量甚至咖啡店都能运行 Hysteria 服务端。与客户端 P2P 连接,无需配置端口转发或中转。

使用方法: https://hysteria.network/zh/docs/advanced/Realms/

工作原理

  1. Hysteria 服务端通过 STUN 发现自己的 UDP 公网地址,把这些地址连同你选择的 realm(一个名字)注册到牵线服务。
                   stun 服务器-----step2----------↓
 client 端                  ↑--step1-------  server 端  8.9.6.4:8964
                                                           ↓
                  牵线realm 服务器 <-step3  8.9.6.4:8964 name:xijinping
  1. 客户端用相同的 realm 地址,请求牵线服务发起连接。牵线服务把服务端的地址返回给客户端,同时把客户端的地址推送给服务端。
                            stun 服务器
 client 端 1.9.5.3:0615                    8.9.6.4:8964  server 端
  ↑  ↓                                                      ↑
  ↑  ↓- ---name:xiijinping->牵线realm 服务器 - 1.9.5.3:0615--↑
  ↑                                        ↓
  ↑ ------8.9.6.4:8964---------------------
  1. 双方同时朝彼此发送 UDP 包,从而在各自的 NAT 上打洞。
                            stun 服务器

                  ↓------udp-------- -----------↑
 client 端 1.9.5.3:0615                8.9.6.4:8964  server 端
                 ↓----------------udp-----------↑

                          牵线realm 服务器
  1. 一旦洞打开,常规的 Hysteria QUIC 握手就在直连之上继续进行。
                            stun 服务器

 client 端 1.9.5.3:0615  <---Hysteria QUIC---> 8.9.6.4:8964  server 端
 
                          牵线realm 服务器

牵线服务器只负责帮双方 “牵线搭桥”。不代理任何流量。

个人点评:
Hysteria 版 frp P2P

从设计上说,不需要realm 服务器也能达成,server 端打完洞 ,client 端手动输入server 端IP:PORT