在动态 IP 地址上运行 VpnHood! SERVER
许多家庭网络连接每隔几天就会获得一个新的公网 IP 地址。您无需静态 IP:VpnHood! MANAGER 会自动跟随新地址,您用户的应用则通过动态 DNS 域名或集群 Token URL 找到它。
地址变化时会发生什么
开启 Automatic Configuration 的服务器(每台新服务器默认如此)会自动跟随地址。它下一次向 MANAGER 的上报来自新地址,于是 MANAGER 让服务器重新查询自己的地址,并在几分钟内更新接入点和密钥。无需重新安装或重启。
关闭 Automatic Configuration 后,地址会保持您设置的值,因此需要您自行更改(参见更改地址)。
在家用路由器之后
应用通过您的路由器访问服务器,因此路由器必须转发它们的连接。这只需设置一次:地址变化时,MANAGER 会保留每个接入点的端口。
- 为这台机器在家庭网络中分配一个固定地址。路由器通常称之为 DHCP 保留或静态租约。
- 打开 Servers,选择该服务器,找到其 Access Points,其中列出了它的端口。
- 在路由器上将这些端口转发到这台机器:TCP Port (1) 按 TCP 转发,UDP Port (2) 和 QUIC Port (3) 按 UDP 转发。值为
-1的端口已关闭,无需转发。
192.168.1.10 是路由器转发端口的目标。公网地址 203.0.113.10 写入密钥,并由 MANAGER 自动更改。
让应用找到新地址
密钥包含生成时的地址,因此地址变化后,持有该密钥的应用会尝试旧地址。请在地址变化之前,为您的密钥提供一条通往新地址的路径:动态 DNS 域名、集群 Token URL,或两者兼用。
动态 DNS 域名
动态 DNS (DDNS) 服务为您提供一个始终指向当前地址的域名。包含该域名的密钥会继续有效,因为应用每次连接时都会解析它。
- 从动态 DNS 服务获取一个域名,并让路由器或机器上的小程序保持其更新。名称中切勿包含 VPN:应用在每次建立连接时都会明文发送该名称,网络中间节点可直接读取。
- 在使用该域名期间,也要将 TCP 端口
80转发到这台机器:证书验证及每隔数月的续期都通过该端口进行。 - 为集群添加该域名的证书(参见使用自定义域名):将 Signing 设为 AutoSign (1),等待 Signature 显示 CA Signed (2),然后将 Visibility 设为 PublicInToken (3)。
关键在于签名:只有证书为 CA Signed 时,应用才会解析域名。使用自签名证书时,应用只会尝试密钥中的地址。
集群 Token URL
集群 Token URL 指向网络上的一个文件,MANAGER 每次变更后都会在其中发布集群当前的地址。无法连接的应用会读取该文件,并用找到的信息重试。这不需要域名,也不需要额外端口,只需要一个您的用户能够访问的网络位置,例如 GitHub 仓库。添加方法请参见集群 Token URL。请将 Auto Upload 设为 Off 以外的选项,这样 MANAGER 才会自动更新该文件。
已分发的密钥处理
从现在起您从 MANAGER 复制的密钥都包含该域名或这些 URL。持有旧密钥的应用会在下次连接时获取新密钥,因为 Push token to clients 默认开启,所以请趁其密钥中的地址仍然有效时完成设置。已无法访问服务器的应用需要您提供新密钥。
注意事项
- 已连接的应用会断开。此时已连接的应用会失去连接。一旦域名或文件显示新地址,它们即可重新连接,通常只需几分钟。
- 共享地址无法使用。有些运营商让许多客户共用一个公网地址(通常称为 CGNAT),外部连接永远到不了您的路由器。如果路由器显示的地址与网站看到的地址不同,请向运营商申请公网地址。
- 双线路无法使用此功能。如果路由器让每个连接走不同的线路,地址看起来会一直变化,服务器也会不断重新配置。在这样的服务器上,请关闭 Automatic Configuration 并自行设置地址。
在独立服务器上配置
没有 MANAGER 时,密钥不会被更新,独立服务器也只在启动时查询自己的地址。动态 DNS 域名依然有效,因为应用会自行解析域名:请为服务器提供该域名的证书(参见使用域名和受信任的证书),并向用户分发新密钥。