rkonfj / peerguard

Another p2p network library in Go 🌍
GNU General Public License v3.0
203 stars 12 forks source link

如何像N2N那样直接使用密码进行认证 #6

Closed DarkiT closed 2 months ago

DarkiT commented 2 months ago

如题,能否增加-p参数来进行token鉴权认证,因为有些时候朋友间联机组网玩游戏,并没有注册github或者是google,而且境内的网络环境大家都懂的,他们使用的话会很不方便,这样只要使用相同的token就可以联机。例如:

cliA: pgcli vpn -s wss://synf.in/pg --ipv4 100.64.0.1/24 --ipv6 fd00::1/64 -p 123456789

cliB: pgcli vpn -s wss://synf.in/pg --ipv4 100.64.0.2/24 --ipv6 fd00::2/64 -p 123456789
rkonfj commented 2 months ago

@DarkiT 更新到 v0.5.5,可以使用-f参数指定预共享密钥文件

pgcli vpn -s wss://synf.in/pg -4 100.64.0.1/24 -f psns.json

有 2 种方式获取预共享密钥文件psns.json

DarkiT commented 2 months ago

@DarkiT 更新到 v0.5.5,可以使用-f参数指定预共享密钥文件

pgcli vpn -s wss://synf.in/pg -4 100.64.0.1/24 -f psns.json

有 2 种方式获取预共享密钥文件psns.json

  • 如果你知道 pgmapsecret-key,可以使用pgcli admin toolset 生成预共享密钥文件
PG_SECRET_KEY=5172554832d76672d1959a5ac63c5ab9 PG_SERVER=wss://synf.in/pg pgcli admin secret --network "<email>" --duration 24h > psns.json
  • 使用 oidc 认证后,-f 参数指定的路径会有密钥文件,可以用来认证(这适用于不知道secret-key的情况)

谢谢,这样确实就方便了很多,经过几天的试用,效果确实很好,不过我发现了一个问题,通过UDP方式组网流量如果稍稍一大,就容易被运营商限速,我想问下有计划基于TCP打洞来实现TCP组网吗?

打洞原理可以参考这个项目:NatMAP

rkonfj commented 2 months ago

谢谢,这样确实就方便了很多,经过几天的试用,效果确实很好

很高兴能帮到你

不过我发现了一个问题,通过UDP方式组网流量如果稍稍一大,就容易被运营商限速,我想问下有计划基于TCP打洞来实现TCP组网吗?

嗯。。。这算另一个话题了,可以创建一个新的 Issue 来讨论这个功能