一个 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 做一些好玩的小东西

6321 次点击
所在节点    分享创造
33 条回复
missdeer
2021-02-17 20:54:43 +08:00
好像有点厉害的样子,用 wintun 的项目越来越多了
araaaa
2021-02-17 21:58:31 +08:00
@missdeer wintun 的 api 做的很方便,之前用 openvpn tap 的话需要撸 win32 很头大
1041412569
2021-02-18 00:18:50 +08:00
可以走 ipv6 组网不?
chunxue
2021-02-18 00:31:14 +08:00
和 zerotier 比有什么优势
araaaa
2021-02-18 00:45:11 +08:00
@1041412569 可以
araaaa
2021-02-18 00:47:53 +08:00
@chunxue emm..部署方便
Zy143L
2021-02-18 02:17:11 +08:00
1.支持自定义服务器吗?
2.这和 ZeroTier 好像没区别...都 UDP 打洞
3.如果后期考虑支持 TCP KCP 最好
4.这名字 fubuki ?说的是小狐狸(白上吹雪)?
Zy143L
2021-02-18 02:21:51 +08:00
@Zy143L 还是说的是吹雪级驱逐舰😂
xarthur
2021-02-18 08:44:33 +08:00
如果是想实现 p2p 功能,可以直接用 libp2p,nat 传统之类的功能直接支持而且被抽象掉了。
araaaa
2021-02-18 08:57:01 +08:00
@Zy143L 什么是自定义服务器。这本身就是一个重复轮子啊写给自己玩的。支持 tcp 的话意味着要走中转了,中转以后会考虑加入的。kcp 中转我觉得不是很有必要,如果只为了解决无法穿透其实有一种非常简单的办法就是直接伪造报文头就可以了,这个也会考虑加。吹雪驱逐舰哒
araaaa
2021-02-18 09:05:20 +08:00
@xarthur 这个库看起来不错
missdeer
2021-02-18 09:31:19 +08:00
认识一个人也写了个类似的东西,用了 openvpn 的 tap-windows,嫌慢,又说 wintun 的文档太少,于是尝试自己写个虚拟网卡驱动,貌似快写完了,说以后中国人有了自己的虚拟网卡驱动。。。
araaaa
2021-02-18 09:49:03 +08:00
@missdeer wintun 现在文档很全了,windows 下其实应该就是 ndis 驱动开发
Dkngit
2021-02-18 10:26:04 +08:00
国内普遍多级 NAT,跨运营商、跨地域、UDP 包 QOS 严重。

考虑到现实情况,支持 TCP 通道 服务器中转 更实用。
qiuai
2021-02-18 10:55:24 +08:00
我一直在找一个方案,把相隔 2KM 的 2 个家里的电脑做一个局域网,但是不想走中转。
现在是用的 VPN,但是并不太方便。本来想用蒲公英路由器的公网组网,但是看了看好像是走中转的。
楼主这个方案能实现 SMB 共享么?
araaaa
2021-02-18 11:09:35 +08:00
@Dkngit 所以还是适合都在同一省内,udp 的话用电信目前在大陆区域内 qos 已经比较不错了
araaaa
2021-02-18 11:11:25 +08:00
@qiuai 只要 nat 是圆锥,宽带不是移动这种,那就没问题
Zy143L
2021-02-18 12:56:39 +08:00
@araaaa 移动很多全椎 FullCone 的
no1xsyzy
2021-02-18 14:28:20 +08:00
@qiuai ( TR069
hanguofu
2021-02-18 16:14:35 +08:00
顺便问问: 用哪个软件测试 nat 类型啊 ?

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

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

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

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

© 2021 V2EX