给 netcat 引入了 P2P 穿透、多路复用、强加密以及内置服务模块,并且完全开源

1 月 8 日
 le4tim

之前在这发布过的,最近花了些时间给这个小工具写了份比较详细的文档了,请查阅

文档: https://www.gonc.cc/docs/

Github: https://github.com/threatexpert/gonc

自己平时使用的场景:

1 、公司的 VPN 好久不用了,家里 CGNAT 宽带和公司建立 P2P 的 HTTP+SOCKS5 代理隧道,自由访问公司网络。

2 、和分公司内网直接 P2P 快速(实时压缩)传输文件/目录。

3 、内置服务模块满足其他场景,例如 TCP/UDP 端口转发、类 frp 反向代理、甚至科学上网,一个工具都胜任了。

还真别说,通过打洞建立 P2P 的加密隧道,定期端口轮换的功能本来是针对运营商 Qos 的,在科学上网方面有独特的效果。

3245 次点击
所在节点    Go 编程语言
49 条回复
ThirdFlame
1 月 8 日
已 star 很多思路值得学习
theend233
1 月 8 日
之前我使用的命令是
服务端:
gonc -p2p xxxx -socks5server
客户端:
gonc -p2p xxxx -socks5local-port 3080
客户端访问 10.0.0.1-3389.gonc.cc:3080 就能直接远程桌面

现在 P2P 连接不再区分“服务端”和“客户端”,双方都是平等的对等端 (Peer)。
请问我该使用什么命令可以获得同样的效果?
theend233
1 月 8 日
@theend233 看文档找到了,谢谢
listenerri
1 月 8 日
之前找 windows 下的 netcat 时发现了这个项目,感谢 OP 分享开源
EricYuan1
1 月 9 日
你的头像,有点东西…
cheng6563
1 月 9 日
好好好
能用配置文件配置么
hzsdr
1 月 9 日
gonc -nat-checker 命令显示 failed: <nil>是不是没救了
le4tim
1 月 9 日
@cheng6563 用配置文件多麻烦,一开始就坚持不会设计成需要用配置文件的使用方式。
le4tim
1 月 9 日
@hzsdr 好奇,不知道为什么就一行报错??什么系统环境?
chouvel
1 月 9 日
这个太厉害了吧,和 tailscale 有啥区别?
p2o521
1 月 9 日
有没有公司电脑访问家里群晖 nas 的教程?小白不知道怎么安装在 DSM 上
yinmin
1 月 9 日
@le4tim OP 做一个 docker 版本吧 ;-)
Valpha6
1 月 9 日
受启发了,已素质三连。
wymam
1 月 10 日
Mark 一下后续研究一下
maninnet
1 月 10 日
没搞明白,电脑的远程桌面端口不是 3389 怎么指定?服务器用 gonc -p2p 0rZj85CEjRBABmofzALgUN -linkagent 这种方式启动。
le4tim
1 月 10 日
@maninnet
假如客户端-link 1080
目的不是 3389 假如是 4489 ,那连接目标地址:10.0.0.1:4489
就是
10.0.0.1-4489.gonc.cc:1080
maninnet
1 月 10 日
@le4tim 不行,提示内部错误
我家里电脑的输出:
20260110-123313 [:mux] Waiting for linkagent handshake...
20260110-123313 [:mux] [link] Sending R-Config: none?peer_active=1
20260110-123313 [:mux] [link] Waiting for Remote ACK...
20260110-123313 [:mux] [link] Remote ready (OK:none).
20260110-123313 [:mux] [link-x] Listening on 0.0.0.0:1080 (TProxy=true)
20260110-123313 [:mux] TProxy Format: 127.1.13.61:1080 -> 1.1:3389
20260110-123313 [:mux] [link] Local service started.
20260110-123318 [:mux] New client connected from 127.0.0.1:34870
20260110-123318 [:mux] TCP: 127.0.0.1:34870->1.132:9172 connecting...
20260110-123318 [:mux] 127.0.0.1:34870->1.132:9172 failed: ERROR: DNS lookup failed for '1.132' on network 'ip': lookup 1.132: no such host
20260110-123318 [:mux] Proxy session 127.0.0.1:34870->1.132 (T-CONNECT) finished with error: tunnel TCP connect failed: ERROR: DNS lookup failed for '1.132' on network 'ip': lookup 1.132: no such host

公司电脑输出
20260110-123314 [:mux] [linkagent] Session established. OwnerID=
20260110-123316 [MQTT] Waiting for event on topic: nat-exchange/288b1baf89dc533d across 4 servers
20260110-123319 [:mux] TCP-Connect: 1.132:9172
le4tim
1 月 10 日
@maninnet TProxy Format: 127.1.13.61:1080 -> 1.1:3389 这个提示似乎说明了你使用了-magicdns ,而且应该参数有问题?
le4tim
1 月 10 日
@maninnet 感谢,我重现了,发现代码有个 bug ,trim 想删掉最后的一个.0 的逻辑错了,结果所有.0 的都删除了,如果是你指定 magicdns 是 10.0.0.0 ,b 和 c 段是.0 就有 bug 。这个 bug 有点傻。。。
maninnet
1 月 10 日
@le4tim 是的,原来没开不行,我就开了 magicdns 。。。

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

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

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

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

© 2021 V2EX