地址与 DNS
先用实际地址验证连接,再使用名称。IPv4 别名和昵称以发起访问的这台设备为准。
地址能访问而名称不能解析,通常是 DNS 问题,不必重新配对。
获取对方地址
在准备发起访问的设备上运行:
把 NODE_ID 替换为 peers 第一列的节点 ID,也支持至少 8 字符的唯一 ID 前缀或本机备注名。完整 64 字符公钥仍可使用;不能随意截短公钥。
两种 IPv4 入口都是地址,不是备注名。只使用状态为 [active] 的条目;它表示映射启用,不保证对方在线。输出中没有某项,就不要自行推算或照抄其他设备的值。
验证实际流量
将下面的 PEER_IPV6 替换为上一步的 IPv6。
Linux:
macOS:
Windows:
在另一端也做一次,再访问你真正需要的应用端口。ping 成功不代表应用已监听,应用可访问也不要求防火墙允许 ICMP。
服务需要监听可达的接口和正确地址族;只监听 127.0.0.1 或 ::1 的服务不会因此自动对另一台设备开放。按所需端口配置防火墙,不要为排错关闭整机防火墙。P2P 配对也不会自动把对方整个局域网变成可访问网段。
IPv4 别名只在本机有效
默认别名池为 100.64.0.0/10,每台设备为自己看到的对端分配别名。因此 A 上显示的 B 别名,不保证与 C 上显示的 B 别名相同。
不要把某台设备的别名写进公共 DNS、发给所有人通用,或当作永久设备身份。设备身份用于核验,实际访问地址以发起访问一端的当前输出为准。
如果与现有 VPN、路由、接口地址或防火墙规则冲突,别名可能显示为 suspended;无法安全观察主机状态时也可能暂停。此时先检查冲突,必要时使用已经验证可用的原生 IPv6;不要删除其他 VPN 的路由来强行启用别名。
DNS:先确认平台默认值
桌面默认监听地址为 127.0.0.54:53,分域接入不替换全局 DNS。遇到已有解析规则或企业策略冲突时会提示错误,不会覆盖原设置;请根据启动提示处理冲突,企业设备可联系管理员协助。
显式关闭 resolver 或选择不接入系统时,遵从你的配置。仅开启监听,并不会让系统自动向它查询。Linux 上也不要为此直接覆盖 /etc/resolv.conf;当前运行时尚未接入 systemd-resolved 的专用适配器。
用名称访问已配对设备
DNS 可用时,可先为对方设置一个本机昵称:
确认后,在这台设备上使用 office-laptop.keynet.internal。昵称只在本机生效,不会发布给其他设备,也不能替代配对时的身份核验。
没有备注时,从 peer show 的“节点 ID”字段复制完整 20 字符,构成 NODE_ID.id.keynet.internal。这里的 NODE_ID 是占位符;DNS 必须使用完整节点 ID,不能使用短前缀或完整公钥。
名称的两种视图如下:
无备注时对应使用 NODE_ID.id.keynet.internal 和 NODE_ID.id.v4.keynet.internal。A 记录只在相应本地别名有效时返回;尚未获准、已移除或冲突的设备不会仅因为名称存在而获得访问权限。
使用系统解析的应用才能受益于分域设置;自行指定其他 DNS 或使用自带加密 DNS 的应用需要另行检查。当前桌面系统接入以正向名称为范围,不保证系统反向查询(PTR)自动接入;不要以 PTR 查询失败判断配对失败。
仍无法访问时,按排错指南区分配对、传输、地址和 DNS 问题。