OpenVPN:将单个 URL 分配给一个 IP

OpenVPN:将单个 URL 分配给一个 IP

我有一个通过 OpenVPN 连接的远程服务器。OpenVPN 服务器配置为不转发 ipv4 包,因此“互联网流量”不会经过该服务器。

现在我想将单个 URL 分配给网络内的 IP 地址。例如:每当我连接到 VPN 并在浏览器中输入 random.org 时,它都会将我重定向到我的 VPN 子网中的 10.8.42.12。

我不知道这是否可行或可取?我搜索过解决方案,但没有找到。可能是因为我没有使用正确的术语?

任何帮助或评论都值得赞赏。谢谢!:)

答案1

您需要在某处设置 DNS A 记录,可以在您的 VPN 网络上,也可以在客户端可以访问的其他网络上。

如果您在 VPN 网络上有 DNS 服务器(或可从 VPN 连接路由的网络),那么您可以配置 openVPN 以将 DNS 服务器地址推送到客户端,这样当它们连接时,DNS 的请求将转到您指定的包含所需 A 记录的服务器。此设置意味着当客户端连接到 VPN 时,URL 只会解析到该 IP。

看看这个:

https://openvpn.net/index.php/open-source/documentation/howto.html#dhcp

编辑:

我忘了说,更改客户端 DNS 设置时必须考虑一些事项。客户端缓存可能仍包含查询,在这种情况下,您必须考虑设置 A 记录的 TTL,以便它尽快过期。

答案2

使用hosts文件

10.8.42.12 example.org

或将条目添加到DNS服务器。创建文件,内容修改ns1.exampledns.com为指向有效地址

; Zone file for example.org
$TTL    3600
$ORIGIN example.org
@       IN      SOA     ns1.exampledns.com.    root.example.org. (
                                                     2012033101         ; Serial
                                                     3600         ; Refresh
                                                     1800         ; Retry
                                                     604800         ; Expire
                                                    43200 )       ; Negative Cache TTL

                IN      NS      ns1.exampledns.com.
                IN      NS      ns2.exampledns.com.

@       IN      A       10.8.42.12
www     IN      A       10.8.42.12

然后将区域添加到/etc/bind/named.conf.local

zone "example.com" {
                type master;
                file "/etc/bind/db.example.org.conf";
};

答案3

当然,根据 tomstephens89 的回答,DNS 解决方案是一种可能的答案,但它只有在您输入任何域名时才有效,而且如果客户端更改服务器推送的 DNS 服务器,它将不起作用。

您真正想要的是一个解决方案,有时称为 Captive Portal。我并不完全属于该主题,但 SQUID 是一个功能强大的 HTTP 代理(可以配置为透明代理 - 即无需在客户端进行任何配置),可以帮助将用户重定向到您的页面。

相关内容