yinheli / udppunch

udppunch hole for wireguard
154 stars 23 forks source link

无自有服务器实现? #2

Closed yinheli closed 10 months ago

yinheli commented 2 years ago

开了个新的轮子做尝试,利用 stun 获取公网 IP,然后用 IRC 聊天室共享这个信息给其他的节点。还在实验状态 https://github.com/yinheli/wgc

或者大家有什么更好的方案?一定要廉价最好免费,并且长期可用。

aloasut commented 2 years ago

我个人用主要是两三个点之间互相连接,不知这个punch能不能在某一个点的公网IP改变(重新拨号)以后,自动通知其他几个点修改对端IP?(等于mesh形式) 我现在用的是netmaker来实现这个功能。

yinheli commented 2 years ago

@aloasut 没用过 netmaker 我看它的 readme 里提到了 p2p,不能满足你的需求吗?

我搞了两个方案,他们都是能实现 mesh

  1. 自建的公网服务,提供注册服务
  2. 就是上面提到的 wgc 的项目,用 stun + irc 聊天 (就是为了省个公网服务器钱💰)

原理都是每隔一段时间获取到自己的出口 IP 并且通过 IRC 聊天/或者自建的服务布和其他的 peer 共享,从而实现自动更新。

另外,在 Android 手机端要实现这个的话(非 root 情况下),需要额外的针对 wireguard 的官方 app 进行魔改,我感觉工作量有点大了,而我不想 root 手机。

所以我现在自己换用了 nebula 了,它有 app,而且 go 程序部署方便,默认就实现了 p2p,没有特别的内核要求,当然性能会差一点,体验下来还行吧。当然需要自建一个公网的 lighthouse,1M 小水管那种足矣。

打洞还是很香的。PC 手机,家里、公司都在一个虚拟内网互通了,外出只要公共 wifi (或者手机热点)信号够好,体验真是棒。