端口转发

在路由器上把一个 TCP 端口转发到电脑,手机通过 TLS 连接你的公网地址,并固定信任电脑自己的证书。

本页为译文。如与英文版不一致,以英文版为准。 English

适用情况:你可以修改路由器设置,而且你的网络连接有公网 IPv4 地址。不适用情况:运营商把你放在运营商级 NAT 之后(路由器的 WAN 地址以 100.64 到 100.127 开头,或者与 IP 查询网站显示的地址不同),或者你在公司无法开放端口。

设置步骤

  1. 给电脑在网络中分配一个固定地址(在路由器中做 DHCP 保留)。

  2. 在路由器中,把来自互联网的 TCP 8779 转发到电脑地址的 8779 端口。

  3. 查出你的公网地址。如果它会不时变化,请通过路由器或 DDNS 服务设置一个动态 DNS 域名,并在下面使用这个域名。

  4. 在 config.toml 中把这个地址告诉服务器(droidline doctor 会打印该文件的位置):

    [remote]
    addresses = ["tls://203.0.113.5:8779"]   # 或 "tls://home.example.net:8779"
  5. 重启 droidline serve。

  6. 用 droidline pair 配对新手机。已经配对的手机会在下次通过 Wi-Fi 连接时获取这个地址。

为什么用 TLS 和指纹

在这条路由上,手机通过 TLS 连接,对端使用的是电脑自己的自签名证书。配对二维码中包含该证书的 SHA-256 指纹,所以手机不需要任何证书颁发机构就能核验它,互联网上冒充的服务器会被拒绝。TLS 内部运行着与其他所有路由相同的端到端加密。

证书在首次启动时创建,保存在服务器的文件夹中(tls.crt,其私钥在机密存储中)。如果删除它,会生成新的证书,手机必须重新配对。

从外部检查

在一部已配对的手机上关闭 Wi-Fi,然后观察 droidline devices:几秒之内,路由应当变为 direct。