sigcn/pg

GitHub: sigcn/pg

一个 Go 语言编写的 P2P 网络库,致力于通过高成功率的 NAT 穿透和端到端加密实现设备间直接通信。

Stars: 301 | Forks: 15

# PeerGuard 另一个 Go 的 p2p 网络库。致力于实现设备间的直接通信。 [[简体中文]](https://github.com/sigcn/pg/blob/main/README_zh_CN.md) ## 功能 - 极简的架构 (pgcli & pgmap & OpenID Connect) - 高成功率的 NAT 穿透 (STUN & UPnP & PortScan & BirthdayParadox) - 全面支持 IPv4/IPv6 双栈 - 易用的库 (net.PacketConn) - **传输层安全 (curve25519 & chacha20poly1305 实现端到端加密)** - 用于可靠数据传输的 [RDT](https://github.com/sigcn/pg/tree/main/rdt) 协议 - 跨平台兼容 (linux/windows/macOS/iOS/android) ## 快速开始 ``` # node1 pgcli vpn -s wss://openpg.in/pg -4 100.64.0.1/24 ``` ``` # node2 pgcli vpn -s wss://openpg.in/pg -4 100.64.0.2/24 ``` ## 进阶 ### 自托管 peermap 服务器 #### 1. 运行 pgmap daemon ``` $ pgmap -l 127.0.0.1:9987 --secret-key 5172554832d76672d1959a5ac63c5ab9 \ --stun 111.206.174.2:3478 --stun 106.13.249.54:3478 --stun 106.12.251.52:3478 --stun 106.12.251.31:3478 ``` #### 2. 将 pgmap 封装为 https 服务器 ``` $ caddy reverse-proxy --from https://openpg.in --to 127.0.0.1:9987 ``` ### P2P 文件共享 ``` # 分享 $ pgcli share -s wss://openpg.in/pg ~/my-show.pptx ShareURL: pg://DJX2csRurJ3DvKeh63JebVHFDqVhnFjckdVhToAAiPYf/0/my-show.pptx ``` ``` # 下载 $ pgcli download -s wss://openpg.in/pg pg://DJX2csRurJ3DvKeh63JebVHFDqVhnFjckdVhToAAiPYf/0/my-show.pptx ``` ### 快捷方式 pgvpn ``` ln -sf /usr/sbin/pgcli /usr/sbin/pgvpn ``` 你现在可以使用 `pgvpn` 来代替 `pgcli vpn`。 ### 使用 IPC 查询已发现的 peers。 ``` pgvpn --peers ``` ### 无 root 模式 VPN ``` pgvpn -s wss://openpg.in/pg -4 100.64.0.1/24 --proxy-listen 127.0.0.1:4090 --forward tcp://127.0.0.1:80 --forward udp://8.8.8.8:53 ``` ### 使用预共享密钥文件代替 OIDC 认证 **首先** ``` $ export PG_SECRET_KEY=5172554832d76672d1959a5ac63c5ab9 $ export PG_SERVER=wss://openpg.in/pg $ pgcli admin secret --network "" --duration 24h > psns.json ``` **然后** ``` sudo pgcli vpn -s wss://openpg.in/pg -4 100.64.0.1/24 -f psns.json ``` ## 许可证 [GNU General Public License v3.0](https://github.com/sigcn/pg/blob/main/LICENSE) ## 贡献 欢迎贡献!有改进建议吗?提交一个 pull request。 ## 联系方式 - Telegram 群组: https://t.me/+-S5L6ZCBxlxkMTRl - QQ 群: 1039776116
标签:EVTX分析, Go语言, NAT穿透, P2P网络, VPN, 日志审计, 点对点传输, 程序破解, 端到端加密