vnt-dev / vnts

vnt server
161 stars 67 forks source link

新增的支持wireguard怎么使用 #21

Open muziling opened 3 months ago

muziling commented 3 months ago

支持wireguard有使用说明不?

lmq8267 commented 3 months ago

https://test.wherewego.top/guide/wg.html

muziling commented 3 months ago

如果vnt客户端开启了 w 参数, 怎么和wg客户端通讯, 加上 --allow-wg 就无视 w参数的流量加密? 在这种场景下,wg的私钥参数又是充当什么用途? vnts里的wg配置,组网编号对应的命令行参数是什么?

lmq8267 commented 3 months ago

wg流量会由vnts加密,开--allow-wg就是接受vnts的网络数据包,所以连不受信任的vnts不要开这个参数

muziling commented 3 months ago

wg客户端发送加密过的数据给vnts, vnts解密后明文发给vnt客户端吗?

lmq8267 commented 3 months ago
  1. vnts和wg相互连接,使用wg协议加密通信,由vnts控制指定公钥的wg加入哪个vnt网络。
  2. 组网编号对应命令行-k,这个文档有写。
  3. 关于wg流量在vnt端的加密问题:不受vnt -w 参数控制,密钥是vnt和vnts协商的(用-W开启加密)
muziling commented 3 months ago

vnt 还需要加上参数 -W <wg客户端私钥> ?还是说加了--allow-wg参数,vnts自动告知vnt 网内wg客户端的wg私钥?

vnts自身协议会自动生成公钥, 这种情况下还会自动再生成wg协议的公钥?

vnt-dev commented 3 months ago

没看懂你提的问题,就简单说一下vnt和wg互通的原理吧:

  1. 由vnts屏蔽wg和vnt的差异,在vnt看来就只是与vnts通信,如果要加密增加参数-W即可(这是一直就有的功能),vnt并不获取wg私钥之类的东西
  2. 考虑到会连接公共vnts服务器,所以直接接收vnts来的网络数据包可能是有风险的,不管加不加密都有风险,所以增加了--allow-wg参数来允许接收vnts的网络数据
  3. -w <password>和-W是两种不同形式的加密,前者是vnt客户端之间的加密(用户自己选择加密算法),这个密钥vnts服务端并不知道,所以也无法此类对数据进行加解密,后者是vnt客户端和vnts服务端之间的加密(rsa+aes-gcm),所有和服务端的通信都用这个方式加密

不知道这样说解答了你的疑问没有

muziling commented 3 months ago

这种场景是针对打洞不成功,所有数据需要从服务端转发吧。

也就是说vnt客户端和wg客户端之间的所有数据,都需要经过vnts转发?

那我明白了,就是vnts接收到wg的加密数据,解密出来,再用vnt客户端的加密方式加密数据,再发送给vnt客户端

vnt-dev commented 3 months ago

针对iOS端这种vnt不支持的平台,也能正常加入vnt网络

muziling commented 3 months ago

只是ios没人做客户端吧,看旧版本编译出来的二进制,有苹果平台的呀

vnt-dev commented 3 months ago

嗯,没有iOS客户端