写了一个 p2p 的隧道程序,自带流量特征混淆

查看 12|回复 0
作者:chenjia404   
go-p2ptunnel
使用 libp2p 建立 tcp 隧道(不支持 udp),底层传输可以使用 quic 、tcp 、package websocket 、webtransport 实现,使用 noise 协议加密传输,自带 nat ,可以多层组合使用。
如果在没有公网 ip 的情况下,可以使用节点 id 进行连接,如果有情况的直接指定 ip 和通讯协议进行连接。
节点私钥文件在当前目录下,文件名后缀是 .key ,默认是 user.key ,删除后重启程序就会自动创建新的节点 id 。
参数说明
[td]字段[/td]
[td]类型[/td]
[td]说明[/td]
l
ip
监听或者转发的地址,如果没有设置 id ,就是转发这个地址,如果设置了,就是把远程端口映射到本地这个地址,默认值 127.0.0.1:10086
id
multiaddr
连接远程服务 id
p2p_port
ip
p2p 使用的端口,也是监听其它节点连接的端口,默认 4001 ,会自动进行 nat ,但是可能需要您进行端口映射。如果是 0 ,就会选择随机端口
nodisc
bool
禁止广播提高性能,连接节点必须使用带 ip 和端口的链接
user
string
指定使用本地的哪一个 key 文件
update
bool
从 GitHub 更新最新版,会验证升级包签名、sha512
max_peers
int
最大连接数,默认 500
流量特征
如果没有关闭节点广播(-nodisc),节点会和大量节点进行通信,就如同一个普通的 p2p 程序,一天时间可能会和几千个 ip 通信,但是每个 ip 使用的流量在几十 kb 到几百 kb 左右。
使用案例
如果你的的公司或者学校网络限制了一些网站使用,那么你搭建一个隧道,连接到服务器就可以无限制的使用了。在公司网管来看,你只是使用了一个普通的 p2p 程序,而且连接了多个 ip 。
和服务器连接的过程,你可以使用 quic 、tcp 、websocket 、webtransport 这几种协议的任意一种,根据你的网络情况来选择。在连接 id 构建上,如果只是服务器节点 id ,就不固定使用的网络连接方式,如果用 tcp 的连接地址就会使用 tcp 链接,也可以用 websocket 格式的连接地址。
https://github.com/chenjia404/go-p2ptunnel
您需要登录后才可以回帖 登录 | 立即注册

返回顶部