CLI 命令行
p2pee-remote 是远程桌面的单文件网关,纯 Go 实现、无运行时依赖,跑在能访问到被控机器的那台机器上(通常就是被控机自己):
# Windows(反引号是续行符)
.\p2pee-remote.exe -key '<你的Key>' `
-connect "办公室机=rdp:192.168.10.7?user=ops"
# Linux / macOS(文件名以实际下载的版本为准)
wget https://gitee.com/xnkyn/assets/releases/download/p2pee-remote/p2pee-remote-1.0.0-linux-amd64
chmod +x ./p2pee-remote-1.0.0-linux-amd64
./p2pee-remote-1.0.0-linux-amd64 -key '<你的Key>' -connect '办公室机=rdp:192.168.10.7?user=ops'
安装包按平台从 远程桌面更新日志 对应版本条目下载(与官网下载区同源)。目标串完整语法与被控机要求见 目标串与被控机要求。
下载后可校验
发行版里附带 SHA256SUMS 与 manifest.txt:前者逐行列出每个包的文件名与哈希,后者记录本次构建的版本与 Go 工具链。拿到包之后对照一下哈希,确认没被中间环节改动过。
命令行参数
| 参数 | 默认值 | 说明 |
|---|---|---|
-key | — | 必填,账户 Key,用来换取信令凭证与 ICE 服务器 |
-connect | 空 | 目标机器,一条就是一台,可重复给,也可在一条里用逗号分隔;开头的 名称= 可以省,写成 -connect rdp:192.168.10.7 就能起 |
-mark | 随机 | 固定信令 markID(仅会员生效),地址因此保持稳定、方便收藏 |
-force-relay | 关 | ICE 只走中继,排查弱网 / 对称 NAT 时用 |
-version | — | 打印版本号 |
漏写 -connect 会直接报错退出
少写一次 -connect,后面那条目标串会被当成裸参数并直接报错退出,不会静默当成空清单 —— 进程一启动就没了,先检查参数拼写。-debug(本机内嵌页面,仅联调)与 -rdp-no-display(排查显示通道)是排障参数,用法见 常见问题排查。
启动后拿到什么
日志横幅里那一行 公网访问页: https://p2pee.cn/r/<凭证>/ 就是要发给访问端的地址。生产模式下日志已收敛:启动信息、每台机器的会话开始 / 结束与全部 Warn / Error。版本低于服务端最低要求时直接拒绝启动并提示换新,不会带着旧协议硬连。
开机常驻
网关进程退出 = 地址立即失效,所以要让它在被控机或 NAS 上长期跑:
- Windows:任务计划程序,触发器选启动时(不等人登录),操作填 exe 绝对路径与完整参数,属性里勾「不管用户是否登录都要运行」。
- NAS / 容器:不想配服务就用 Docker 部署 或 飞牛 NAS 应用。
# Linux:systemd 参考写法
sudo tee /etc/systemd/system/p2pee-remote.service >/dev/null <<'EOF'
[Unit]
Description=p2pee remote desktop gateway
After=network-online.target
[Service]
ExecStart=/opt/p2pee/p2pee-remote -key '<你的Key>' -connect '办公室机=rdp:192.168.10.7?user=ops'
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now p2pee-remote
journalctl -u p2pee-remote -f # 看横幅里的公网访问页地址
Key 落在服务文件里就要收好权限
-key 出现在命令行就等于留在磁盘上。服务文件权限收到 600、只允许 root 读;多人登录的机器上改用你自己的账户跑。
相关
- Docker 部署 · 飞牛 NAS 应用 · 飞牛 Docker 图形化 · FnDepot 应用源
- 目标串与被控机要求:
-connect的完整语法与 Windows 要开的设置 - 浏览器端连接桌面:拿到地址之后怎么用
- 控制台查看与管理:在控制台看在线被控端
