一个 P2P 跨网段组网的小工具

2021-02-17 17:40:02 +08:00
 araaaa

fubuki 是一个类似于 n2n, tinc 的小工具

Github: https://github.com/xutianyi1999/fubuki

支持平台: Windows, Linux

传输方式

客户端与客户端之间只能 P2P 传输,无法通过服务器中转,服务端只提供客户端信息之间共享和同步

对于对等 NAT 是无法被穿透的

如何工作

客户端在启动时会创建 TUN 网卡,然后将自己的节点信息上传至服务端,所有其他的节点信息将被同步到本地。 当有报文经过 TUN 网卡时,客户端将会读取到这个 IP 报文,通过报文头得到目标 TUN 的 IP 地址,就能从映射表得到报文所在的外网 IP,最后将这个报文放入 UDP 中发往目的 IP

关于这个工程

代码很精简,只实现了基本功能,主要是想通过 tuntap 做一些好玩的小东西

6710 次点击
所在节点    分享创造
33 条回复
araaaa
2021-02-18 17:33:14 +08:00
qiuai
2021-02-18 19:10:48 +08:00
@no1xsyzy 想过,没找到太符合情况的文章啊...有详细点的文章么?
1041412569
2021-02-18 20:51:05 +08:00
有考虑加 arm64 版么,路由器挂了一下运行不了。
araaaa
2021-02-18 23:36:08 +08:00
@1041412569 #23 加了个 aarch64 放在 release 里了
no1xsyzy
2021-02-19 10:25:35 +08:00
@qiuai 我不是很清楚你具体的情况与大部分文章的互通。
但是,所有文章应该都会介绍到 TR069 内网互能 ping 通的程度,一般会到 point-to-point 完成。那么之后就是在 point-to-point 基础上升级到 site-to-site,这部分参考下你采用的传输方案(比如 ov 或者 wg )的 Arch Linux Wiki 或者官方教程或者两相结合。
大致上来说,主要就是 point-to-point 基础上,网关配置路由表或 DHCP 下发路由表或者各设备静态路由表把对端 site 的路由到本地侧节点,两头都打开转发(节点上是否需要 NAT ?)。
wym0823
2021-02-19 11:51:38 +08:00
简单试用了一下,服务端和客户端是用 key 绑定的,只能为一个局域网提供服务。不能像 n2n 那样,服务端可以是公共的,多个局域网共用一个服务端。还有 fubuki.exe 编译的时候应该用了不少 vc 运行库,一旦客户端缺少某个运行库就跑不起来,得折腾老半天
araaaa
2021-02-19 12:56:41 +08:00
@wym0823 emm 只做了基本功能,只适合自己一个人玩玩或者小范围用。编译的话我是 rust1.50 和 vs2019
missdeer
2021-02-19 13:20:39 +08:00
@qiuai https://github.com/gnbdev/gnb 貌似符合你的需求,也是基于 UDP 的,但是穿透成功率就有点看运气,你的路由器需要使能 upnp,没有完全开源,那个代码编译不出最终的可执行文件,但是预编译好的程序覆盖的平台还挺广的
sypopo
2021-02-19 15:45:57 +08:00
感觉还是把 ZeroTier 放在路由器上好用
sypopo
2021-02-19 15:48:05 +08:00
@qiuai 用 ZeroTier 就可以啊 ,SMB 共享跑满带宽。
qiuai
2021-02-19 20:08:43 +08:00
@sypopo 好的,一会看看,一直没试过这个
@no1xsyzy 谢谢,研究研究,本来想直接找人放一条光缆...
@missdeer 谢谢,我看看
mandymak
2021-02-20 12:02:07 +08:00
hanmiao
2021-02-26 20:24:24 +08:00
要是支持移动端就好了,想安卓手机访问家里的 nas 。一直没找到好的 p2p 方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/753717

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX