dns-proxy-server icon indicating copy to clipboard operation
dns-proxy-server copied to clipboard

The port 53 is already used on windows by some other services

Open HomeOfTheWizard opened this issue 2 years ago • 4 comments

Hi,

I am on windows 10 Family v 22h2 docker desktop 4.21.1 DSP version 3.16.0 https://github.com/mageddo/dns-proxy-server/releases/tag/3.16.0-snapshot

I cannot launch the app via docker or via executable manually. It is because the port 53 is already in use by some windows services https://superuser.com/questions/1633432/why-windows-10-has-a-svchost-process-that-listen-on-port-53 https://answers.microsoft.com/en-us/windows/forum/all/solved-unable-to-stop-internet-connection-sharing/b01e1ebc-4f9d-4bf6-8d15-37a782fa03ff

I cant turn off this service cause it is used by HyperV, so I cannot launch docker if I turn it off.

HomeOfTheWizard avatar Aug 25 '23 15:08 HomeOfTheWizard

here are the logs for the docker run

2023-08-25 18:04:10 16:04:10.522 [main           ] INF com.mageddo.dnsproxyserver.config.Configs         l=166  m=build                           status=configuring, configFile=/app/conf/config.json
2023-08-25 18:04:10 16:04:10.538 [main           ] INF com.mageddo.dnsproxyserver.docker.EventListener   l=33   m=onStart                         status=binding-docker-events, dockerConnected=false
2023-08-25 18:04:10 16:04:10.540 [main           ] INF c.mageddo.dnsproxyserver.server.dns.UDPServerPool l=31   m=start                           Starting UDP server, addresses=/0.0.0.0:53
2023-08-25 18:04:10 16:04:10.552 [Thread-4       ] INF com.mageddo.dnsproxyserver.server.dns.TCPServer   l=50   m=start0                          status=tcpServerStarting, port=53
2023-08-25 18:04:10 16:04:10.552 [main           ] INF c.mageddo.dnsproxyserver.server.dns.ServerStarter l=32   m=start                           status=startingDnsServer, protocol=UDP_TCP, port=53
2023-08-25 18:04:10 16:04:10.556 [main           ] INF com.mageddo.http.WebServer                        l=134  m=start                           status=startingWebServer, port=5380
2023-08-25 18:04:15 16:04:15.539 [Thread-2       ] WAR c.m.d.dnsconfigurator.DnsConfigurators            l=58   m=lambda$configurationHook$0      status=failedToConfigureAsDefaultDns, path=/host/etc/systemd/resolved.conf,/host/etc/resolv.conf,/etc/systemd/resolved.conf,/etc/resolv.conf, msg=Could not initialize class com.github.dockerjava.transport.DomainSocket
2023-08-25 18:04:15 java.lang.NoClassDefFoundError: Could not initialize class com.github.dockerjava.transport.DomainSocket
2023-08-25 18:04:15 at com.github.dockerjava.transport.UnixSocket.get(UnixSocket.java:29)
2023-08-25 18:04:15 at com.github.dockerjava.httpclient5.ApacheDockerHttpClientImpl$2.createSocket(ApacheDockerHttpClientImpl.java:153)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:125)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:409)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:164)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:174)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:135)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:172)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:93)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:128)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:116)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:178)
2023-08-25 18:04:15 at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:67)
2023-08-25 18:04:15 at com.github.dockerjava.httpclient5.ApacheDockerHttpClientImpl.execute(ApacheDockerHttpClientImpl.java:191)
2023-08-25 18:04:15 at com.github.dockerjava.httpclient5.ApacheDockerHttpClient.execute(ApacheDockerHttpClient.java:9)
2023-08-25 18:04:15 at com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:228)
2023-08-25 18:04:15 at com.github.dockerjava.core.DefaultInvocationBuilder.get(DefaultInvocationBuilder.java:202)
2023-08-25 18:04:15 at com.github.dockerjava.core.DefaultInvocationBuilder.get(DefaultInvocationBuilder.java:74)
2023-08-25 18:04:15 at com.github.dockerjava.core.exec.ListContainersCmdExec.execute(ListContainersCmdExec.java:44)
2023-08-25 18:04:15 at com.github.dockerjava.core.exec.ListContainersCmdExec.execute(ListContainersCmdExec.java:15)
2023-08-25 18:04:15 at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
2023-08-25 18:04:15 at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
2023-08-25 18:04:15 at com.mageddo.dnsproxyserver.docker.DpsContainerManager.findDpsContainer(DpsContainerManager.java:99)
2023-08-25 18:04:15 at com.mageddo.dnsproxyserver.docker.DpsContainerManager.findDpsContainerIP(DpsContainerManager.java:113)
2023-08-25 18:04:15 at com.mageddo.dnsproxyserver.dnsconfigurator.DpsIpDiscover.findDpsIP(DpsIpDiscover.java:25)
2023-08-25 18:04:15 at com.mageddo.dnsproxyserver.dnsconfigurator.DnsConfigurators.findIpAddr(DnsConfigurators.java:70)
2023-08-25 18:04:15 at com.mageddo.dnsproxyserver.dnsconfigurator.DnsConfigurators.lambda$configurationHook$0(DnsConfigurators.java:50)
2023-08-25 18:04:15 at [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
2023-08-25 18:04:15 at [email protected]/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358)
2023-08-25 18:04:15 at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
2023-08-25 18:04:15 at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
2023-08-25 18:04:15 at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
2023-08-25 18:04:15 at [email protected]/java.lang.Thread.run(Thread.java:1589)
2023-08-25 18:04:15 at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
2023-08-25 18:04:15 at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)

HomeOfTheWizard avatar Aug 25 '23 16:08 HomeOfTheWizard

Here are the logs for the executable's run

18:05:43.457 [main           ] INF com.mageddo.dnsproxyserver.config.Configs         l=166  m=build                           status=configuring, configFile=C:\Users\OZ\programs\Windows-X64\conf\config.json
18:05:43.493 [main           ] INF com.mageddo.dnsproxyserver.docker.EventListener   l=33   m=onStart                         status=binding-docker-events, dockerConnected=true
18:05:43.493 [main           ] INF c.m.dnsproxyserver.docker.DpsContainerManager     l=40   m=setupNetwork                    status=dpsNetwork, active=false
18:05:43.493 [main           ] INF com.mageddo.dnsproxyserver.docker.EventListener   l=41   m=onStart                         status=autoConnectDpsNetworkDisabled, dpsNetwork=false, dpsNetworkAutoConnect=false
18:05:43.500 [main           ] INF c.mageddo.dnsproxyserver.server.dns.UDPServerPool l=31   m=start                           Starting UDP server, addresses=/0.0.0.0:53
18:05:43.501 [main           ] INF c.mageddo.dnsproxyserver.server.dns.ServerStarter l=32   m=start                           status=startingDnsServer, protocol=UDP_TCP, port=53
18:05:43.501 [Thread-12      ] INF com.mageddo.dnsproxyserver.server.dns.TCPServer   l=50   m=start0                          status=tcpServerStarting, port=53
18:05:43.501 [Thread-11      ] ERR com.mageddo.dnsproxyserver.server.dns.UDPServer   l=46   m=start0                          status=dnsServerStartFailed, address=/0.0.0.0:53, msg=Address already in use: bind
java.net.BindException: Address already in use: bind
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$NewObjectWithObjectArrayArgFunctionPointer.invoke(JNIFunctions.java)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions.ThrowNew(JNIFunctions.java:882)
        at [email protected]/sun.nio.ch.Net.bind0(Net.java)
        at [email protected]/sun.nio.ch.Net.bind(Net.java:555)
        at [email protected]/sun.nio.ch.DatagramChannelImpl.bindInternal(DatagramChannelImpl.java:1247)
        at [email protected]/sun.nio.ch.DatagramChannelImpl.bind(DatagramChannelImpl.java:1217)
        at [email protected]/sun.nio.ch.DatagramSocketAdaptor.bind(DatagramSocketAdaptor.java:111)
        at [email protected]/java.net.DatagramSocket.createDelegate(DatagramSocket.java:1427)
        at [email protected]/java.net.DatagramSocket.<init>(DatagramSocket.java:328)
        at com.mageddo.dnsproxyserver.server.dns.UDPServer.start0(UDPServer.java:36)
        at [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
        at [email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at [email protected]/java.lang.Thread.run(Thread.java:1589)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.windows.WindowsPlatformThreads.osThreadStartRoutine(WindowsPlatformThreads.java:178)
18:05:43.540 [main           ] INF com.mageddo.http.WebServer                        l=134  m=start                           status=startingWebServer, port=5380
18:05:48.640 [Thread-1       ] INF c.m.d.dnsconfigurator.DnsConfigurators            l=112  m=getInstance0                    usingDnsConfigurator=DnsConfiguratorDefault

HomeOfTheWizard avatar Aug 25 '23 16:08 HomeOfTheWizard

Same on MacOS, trying to run the docker service.

kassi avatar Oct 23 '23 14:10 kassi

Hey, it's really troublesome because Windows hasn't an option to specify a custom port, what you can do is try like @kassi said and run DPS inside a container pointing windows to the to the container IP instead.

mageddo avatar Apr 23 '24 21:04 mageddo

Closing this issue, feel free to reopen it when you are able to respond

mageddo avatar May 29 '24 18:05 mageddo