目标串与被控机要求
-connect 是远程桌面唯一的地址来源:网关能连哪些机器,完全由启动参数决定,网页上没有任何输入框可以改。
语法
[名称=]<vnc|rdp>:<host>[:<port>][?user=&domain=&pass=&res=WxH]
| 段 | 必填 | 说明 |
|---|---|---|
名称= | 否 | 展示名称,出现在访问页面的机器卡片上;省略则显示成 RDP 192.168.10.7:3389 |
rdp / vnc | 是 | 协议前缀,决定页面用哪套客户端 |
<host> | 是 | 目标机地址,只允许本机与局域网(见下) |
:<port> | 否 | 省略取协议默认值:RDP 3389、VNC 5900 |
user / domain | 否 | RDP 预置用户名与域(域账号才需要),页面仍可修改 |
pass | 否 | VNC 预置口令(VNC Auth 只有口令一项) |
res | 否 | 预置分辨率(64–4096),省略时页面按浏览器窗口自适应 |
机器编号(rdp-1、vnc-2…)由网关按协议内顺序自动分配,是你不用管的内部 ID;地址不能重复,同一台机器的两个端口要写成两条目标。IPv6 目标要用方括号 vnc:[::1]:5900,裸写 fe80::1 会被视为「不带端口」。
名称与端口都可以省 —— -connect rdp:192.168.10.7 就是一条合法目标:端口取默认 3389,机器卡片显示成 RDP 192.168.10.7:3389。临时试一台机器时不必先想名字。
# 名称、端口全省
./p2pee-remote-1.0.0-linux-amd64 -key '<你的Key>' -connect rdp:192.168.10.7
# 同一台机器的完整写法:只是多给了展示名与显式端口
./p2pee-remote-1.0.0-linux-amd64 -key '<你的Key>' -connect '办公室机=rdp:192.168.10.7:3389'
要长期用、或者一台网关挂多台机器,就把名称写上 —— 页面上认名字比认 IP 省事得多。
- RDP 口令不接受启动参数预置:
-connect里没有给 RDP 写口令的位置,只能在页面输入。NLA / CredSSP 需要账号与口令成对出现,把口令塞进参数就等于让整条命令行变成凭据载体 —— 任何能ps一下的人都读得到。 - VNC 预置口令 = 拿到地址就能进桌面:
pass=的值不进机器清单、不进日志,只在会话就绪时经已加密的 P2P 通道下发一次;但结果上持有访问地址的人不需要再输入任何东西。要发给别人(家人协助、外包运维)的地址,不要预置口令。
目标地址只允许本机与局域网
判定发生在启动阶段(不联网、不看订阅,也没有绕过开关),只看字面量、不做 DNS 解析:
| 类别 | 例子 |
|---|---|
| 回环 / 私有网段 | 127.0.0.1、::1、localhost、10.x、172.16-31.x、192.168.x、fc00::/7 |
| 链路本地 / CGNAT | 169.254.x、fe80::/10、100.64.x(Tailscale 这类组网地址) |
| 内网语义域名 / 裸主机名 | *.local、*.lan、*.internal、*.localdomain、*.home、*.corp;nas、pc-01(不含点才算了) |
因为只看字面量,带点的公网域名一律按公网处理:rdp:win.example.com 会在启动时被拒绝。想让网关连一台只有域名的机器,请用它的内网 IP。
被控机需要开的设置
Windows(RDP)
| 项 | 要求 |
|---|---|
| 系统版本 | Windows 10 / Server 2016 及以上(低版本的 RDP 服务端协商不了) |
| 远程桌面 | 系统属性 → 远程 → 勾选「允许远程连接到此计算机」 |
| 账户 | 有登录口令的账户(空口令账户在 Windows 默认策略下连不上) |
| NLA | 两种填法都能连:页面填了用户名 + 口令 → 优先走 NLA(CredSSP)自动登录,失败自动回退标准安全层,推荐用法;留空用户名 → 连上后在远端登录界面输账号口令,这条路径要求目标机关闭 NLA(Win10 / 11 默认开启,只有在你想「先看到登录界面再输口令」时才需要取消那个勾选) |
Linux / macOS(VNC)
任何提供 RFB 的服务都能连:x11vnc(直接共享当前 X11 会话,最接近「看这台机器的屏幕」)、TigerVNC / TightVNC / UltraVNC(独立虚拟桌面,VNC Auth 口令最通用)、RealVNC 的 VNC Server(开启传统 VNC 鉴权)、GNOME 桌面共享、macOS「共享 → 远程管理 / 屏幕共享」。
画面按窗口铺满(本地缩放),不会请求远端改分辨率 —— 这是 RFB 协议侧的限制。
一台网关挂几台机器
被控端数量与并发会话数由账户套餐决定(数值由服务端随信令凭证下发):
| 免费版 | 会员版 | |
|---|---|---|
最多 -connect 目标数 | 2 | 10 |
| 最大并发桌面会话 | 2 | 10 |
超出数量的目标不会进访问页面的列表(只在网关日志里出现一行提示),并发取完时新的选择会被拒绝。额度对比与升级见 套餐与计费。
常用写法
| 场景 | 写法 |
|---|---|
| 本机自己的桌面 | -connect rdp:127.0.0.1?user=ops |
| 局域网一台 Windows | -connect "办公室机=rdp:192.168.10.7?user=ops" |
| 域账号的 Windows | -connect "域机=rdp:192.168.10.8?user=zhang&domain=CONTOSO" |
| 带口令的 VNC | -connect "设计机=vnc:192.168.10.9?pass=vncpw" |
| 非默认端口的 VNC | -connect "NAS桌面=vnc:192.168.10.20:5901" |
| 固定分辨率的机器 | -connect "会议室机=rdp:192.168.10.30?user=demo&res=1600x900" |
| IPv6 目标 | -connect "v6机=vnc:[fd00::10]:5900" |
| 同一内网多台 | 重复给 -connect,或用逗号分隔写在一条参数里 |
