无法在我的 Windows 机器上启动 Acrylic DNS Proxy

无法在我的 Windows 机器上启动 Acrylic DNS Proxy

安装时丙烯酸 DNS 代理在我的 Windows 10 Pro 机器上,出现此错误:

2019-03-05 12:44:45.527 THostsCache.LoadFromFile: Done loading hosts cache items.
2019-03-05 12:44:45.528 TBootstrapper.StartSystem: Done loading hosts cache items.
2019-03-05 12:44:45.528 TBootstrapper.StartSystem: Starting DNS resolver...
2019-03-05 12:44:45.529 TBootstrapper.StartSystem: Done starting DNS resolver.
2019-03-05 12:44:45.531 TDnsResolver.Execute: TDualUdpCommunicationChannel.Bind: Binding to IPv4 address 0.0.0.0 and port 53 failed with Windows Sockets error code 10048.

为了找出哪个进程阻塞了该端口,我运行了以下命令:

Get-Process -Id (Get-NetUDPEndpoint -LocalPort 53).OwningProcess

对此,我收到了这样的回复:

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    214      15     2632       6800              8620   0 svchost

我如何找出哪个程序实际上占用了 DNS 端口 (53)?或者是否有某个 Windows 设置需要打开或关闭?

问题是,直到一两个月前,Acylic 运行起来才刚刚开始。

一些背景知识:我在 Docker 容器中运行 Web 服务器,并将 Docker 容器中的端口 80 暴露到我的 PC 网络。我已将 PC 网络的 DNS 设置为指向 Acrylic 所需的 127.0.0.1。最近,我迁移到了 WSL(Linux 的 Windows 子系统),因此不需要 Docker 容器,所以我取消了端口暴露(使用netsh interface portproxy)命令。

就在那时我怀疑丙烯酸停止工作。

我无法重置系统以找出问题所在,但如果有人能告诉我,我将不胜感激。如果您需要更多信息,请随时询问。

这是一个令人震惊的情况>:-[

答案1

原来是我的电脑不知怎么启动了 Internet 连接共享 (ICS) 服务。该服务阻止了端口 53 分配给 Acrylic。

自从我发布了上述问题后,我找不到任何 Powershell 命令可以让我找到占用端口的进程。但后来我交叉引用了此命令返回的 PID 号:

Get-Process -Id (Get-NetUDPEndpoint -LocalPort 53).OwningProcess

并查看了任务管理器中的服务列表,结果发现ICS服务。我刚刚停止了服务,瞧!

相关内容