在我的设置中,我有几个 OpenVPN 客户端指向 VPN 服务器的 DNS 名称。让我们以 vpn1.mydomain.com 为例。该域指向的服务器公共 IP 例如为 123.45.67.89
现在我更改 DNS 记录并将 vpn1.mydomain.com 域指向另一个 IP,例如 98.76.54.32。
我的问题是,客户端何时执行 DNS 查找来解析 OpenVPN 的新 IP,以及如何触发查找以使客户端使用新 IP? 我是否需要在客户端、服务器上重新启动服务,或者是否有某种方法可以刷新 DNS 缓存并让客户端打开与新 IP 的新连接?
注意:我知道使用域名可能不被视为此类设置的最佳实践,而有些人可能更喜欢直接使用 IP。
答案1
我的问题是,客户端何时执行 DNS 查找来解析 OpenVPN 的新 IP
首次建立连接时。
我如何触发查找以使客户端使用新的 IP?
这取决于操作系统。例如,如果您的用户使用的是 OSX,$ dscacheutil -flushcache
则将刷新本地缓存。其他操作系统也有类似的命令。刷新缓存后,断开/重新连接 OpenVPN。
然而...
DNS 记录缓存在许多不同的级别(主机操作系统、ISP 解析器等),其中许多级别您无法控制。您能做的最好的事情就是在更改之前将记录上的 TTL 降低到尽可能低的水平,然后进行更改,保持旧服务器运行,直到它停止接收 OpenVPN 连接。如果您有顽固的连接不会移动到新 IP,那么只需将它们从服务器上踢出并强制解决问题。
注意:我知道使用域名可能不被视为此类设置的最佳实践,而有些人可能更喜欢直接使用 IP。
不,这正是你应该做的。在这里使用 DNS 名称会导致 IP 更改很多更轻松。