DNS over tunnel not working on Android client #2566
Replies: 4 comments 5 replies
-
|
Trying out Pangolin today and this is definitely broken for Android clients, it's not possible to tunnel DNS to your defined upstreams. I did pretty much the same investigation and troubleshooting you did before I found this issue posted. From similar reports it sounds like the Pangolin client on a computer will work as expected, making it an Android-specific problem... I'm going to be testing with a VM to verify if that's the case. |
Beta Was this translation helpful? Give feedback.
-
|
I was able to create the private resource and add my own DNS server as the only server for the pangolin app on Android. If I dig @myserver I get the right responses, but the default android DNS still goes out of the tunnel, effectively preventing me to have a working setup for now. |
Beta Was this translation helpful? Give feedback.
-
|
So I ran a few more tests with this, and it appears that I cannot fully reach private resources even when using IP, but there's a catch. The basic setup is the same: Android device with the app running. On pangolin, I configured one of my IPs as a private resource:
Using this configuration, attempting to ping from the android device fails with a timeout. On the newt logs I see: However, if I change the Port restrictions above to TCP=All, and UDP=All, then everything magically works. Of course, that's undesirable from a security perspective. New logs show: |
Beta Was this translation helpful? Give feedback.
-
|
I have exactly the same problem. I've added a private resource, allowed all TCP and UDP ports in the DNS restrictions, and then in the Pangolin Android client, I have: If I test a ping from my phone to the DNS, it responds correctly, but it's as if Android isn't recognizing the Pangolin DNS configuration. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello there!
I'm testing pangolin and I'm seeing an interesting problem related to the Android DNS override + tunneling.
In a nutshell, in the pangolin dashboard, I've created a private resource for my "internal" DNS server:
Inside the pangolin android client I have:
I have newt running on a another machine in the 172.30.1.0/24 network. It can access the DNS server without problems, no firewall involved.
With this setup, I'd expect all DNS queries to go over the tunnel and hit my internal DNS server, which does not happen. I've verified this with tcpdump on port 53 on my DNS server.
The interesting thing is that when I use a DNS resolution app on my phone (PingTools, for example), it does go through the tunnel and I can see the exact query on tcpdump in my server. However, all browser queries seem to use the carrier DNS, and thus I cannot resolve any internal IP addresses :(
I even changed the browser settings on the phone and turned off "Secure DNS" (DNS over https), but it still does not work.
I also have a plain Wireguard client installed on this phone. This client is configured to override DNS. When I turn off pangolin and turn on the Wireguard VPN client, everything works as expected. Naturally, the Wireguard client is not using pangolin -- this just serves to show that the VPN override works for another VPN client.
PS: Despite log collection being turned on, the "Logs" option in the pangolin client app shows a greyed out "Download logs" button. Bug?
Any ideas will be appreciated.
Beta Was this translation helpful? Give feedback.
All reactions