我正在尝试运行一个 OpenVPN tun 服务器,该服务器侦听 UDP 上的端口 53。我还在同一台机器上运行非绑定 DNS,以便为 VPN 和机器本身提供 DNS 和过滤。
由于端口冲突,我无法同时运行两者(服务将无法启动),那么有没有办法同时运行两者,让 unbound 为机器和 VPN 提供 DNS 服务,并让 OpenVPN 也监听端口 53 UDP?
该机器运行Ubuntu 14.04,以及最新版本的OpenVPN和unbound。
答案1
你的意思是你将 OpenVPN 的常规 UDP 监听端口 1194 改为 53?你为什么要这么做???
最好不要使用 1024 以下的端口,因为它们通常用于重要的事情。端口 53 已用尽。重新使用端口 1194。
否则,如果您真的执意要使用端口 53 两次(您是否位于您无法控制的防火墙后面?),请将任一服务放置在 VM 内部,并确保 VM 不在 NAT 后面,而是在您的 LAN 上具有 IP 地址。
如果虚拟机太麻烦,您可以尝试更轻松的解决方案,如果您使用的是 Linux,则可以使用 Linux 容器 (LXC)。Ubuntu 有一些脚本可以为您完成所有工作。
新的网络命名空间将不是做。
答案2
在没有两个不同的 IP 地址的情况下执行此操作的唯一方法是使用不同的 openvpn 端口,因为 dns 不能通过任何其他端口运行,除非您使用使用不同端口的自定义编译的 dns 服务器和客户端(尽管我确信这是可能的,但我从未在现实世界中见过这样的事情)。
答案3
它可能是可能的,但这是一个非常糟糕的想法™。为了实现这一点,您很可能必须编写一些 C 代码来将此功能修补到 OpenVPN 中。不要这样做。
通过端口 53 隧道传输流量的一个常见用例是突破强制门户。这是你想要的吗?那么你可能需要研究一下DNS 隧道。
答案4
你不会想使用 OpenVPN 来实现这一点,如果我理解你想做什么的话……你可能想要碘