在Windows中配置Wireguard以通过备用DNS服务器解析特定域

inkz8wg9  于 2023-03-13  发布在  Windows
关注(0)|答案(1)|浏览(526)

我想在Windows中扩展我当前的Wireguard配置,告诉Windows使用备用DNS服务器1.2.3.4来解析mycompany.ethernet域及其所有子域的IP地址。
备注:在大多数情况下,您只需在Windows HOST文件中添加一个条目,就可以将域解析为IP地址。但此解决方案要求您了解域是如何解析为IP地址的。
我希望解决方案在Wireguard接口对等配置中是独立的,并且还希望每次启动和停止Wireguard隧道时添加和删除规则。
在Linux下,解决方案有详细的文档记录,包括将以下行添加到接口块:PostUp = resolvectl dns %i 1.2.3.4; resolvectl domain %i mycompany.ethernet
你知道吗?

xlpyo6sf

xlpyo6sf1#

下面的link提供了解决方案的思想,但在我的例子中不起作用。非常好的工作包括两个简单的步骤:
1.首先,您需要启用wireguard执行脚本。创建注册表项HKEY_LOCAL_MACHINE\SOFTWARE\WireGuard,并在dword项下添加名为DangerousScriptExecution的十六进制值00000001
1.将以下行添加到Wireguard配置的[Interface]块中:

PostUp = powershell.exe -ExecutionPolicy Bypass -Command "$wg = Get-NetAdapter | Where-Object -Property InterfaceDescription -like 'WireGuard*'; $wg | Set-DnsClient -ConnectionSpecificSuffix 'mycompany.ethernet'; $wg | Set-DnsClientServerAddress -ServerAddresses '1.2.3.4'"

而且很有效!随着规则被添加到网络适配器中,当隧道关闭时,它也会被自动删除。

相关问题