← 返回技术手记

用私有网络连接多台设备,如何判断链路状态

家中电脑、随身笔记本与云服务器处在不同网络时,私有组网可以简化连接。但“显示在线”和“可以登录”之间,仍然有多个环节需要确认。

一、先区分控制连接和数据连接

以 Tailscale 一类组网工具为例,控制服务帮助设备完成注册、获取节点信息和访问规则;实际数据则通过设备间直连,或在无法直连时使用中继转发。控制服务通常不承载全部业务流量。

因此,控制连接正常并不意味着任意两台设备都一定直连。反过来,控制服务暂时不可用时,部分已有连接也可能继续工作;具体表现取决于本地状态、密钥有效期和网络变化。

二、直连与中继各自解决什么问题

直连通常能减少绕行,延迟和吞吐受两端网络质量影响。中继用于处理复杂 NAT、防火墙限制或 UDP 不可达等情况,让设备仍有机会互通。中继能否使用,也取决于设备能否访问中继端点。

判断链路时,可以先查看节点状态,再向对端执行工具自带的连通检查:

tailscale status
tailscale ping <对端设备的 Tailscale IP>

观察结果中的直连或中继信息,再与实际业务延迟一起判断。不要只凭一次普通 ping 的结果推断整条链路的工作方式。

三、把 SSH 问题拆成三层

  1. 设备层:对端是否开机,组网服务是否运行,地址是否仍然有效。
  2. 网络层:节点是否可达,访问规则是否允许连接,SSH 端口是否被防火墙阻止。
  3. 认证层:用户名、公钥和文件权限是否正确,SSH 服务是否允许对应的登录方式。

网络通但登录被拒绝时,应查看 SSH 的详细输出与服务器日志。公钥认证成功与组网身份认证是两个概念;经由 Tailscale 地址访问传统 OpenSSH,也仍需满足 OpenSSH 的认证配置。

四、为关键连接保留恢复路径

如果某台设备依赖另一台机器转发流量,那么转发机器就成为连接的一部分。维护时应记录依赖关系,并保留经过授权、受到限制的管理入口,避免一次网络变更同时切断所有恢复路径。

对长期运行的连接服务,可以交由系统服务管理器负责重启和日志记录。自动重启能处理进程退出,但无法解决远端地址失效、认证失败或运营商链路持续中断等问题。

排查时优先收集当前状态,再逐项调整。一次同时修改路由、认证和服务配置,会增加定位问题的难度。

← 查看其他技术总结