No DNS Server / port forward to port 53 on Android 4.4.2 w/root & WiFi Tether Router - Networking

No DNS Server / port forward to port 53 on Android 4.4.2 w/root & WiFi Tether Router
I tried everything I could think of before posting this. If this is the wrong location for this kind of issue please let me know.
Anyway...
I have a rooted phone (Samsung Galaxy Avant) running the stock Android 4.4.2 that came with the phone and I use WiFi Tether Router to provide my other devices with an internet connection. Everything works perfectly and I get very fast LTE service both on my desktop and laptop (using a user agent switcher on my browser). However, I need to do some custom DNS routing and I am running into some issues.
What I want:
1.) When a browser on a device that is tethered to my phone through WiFi Tether Router requests a website then the DNS should run through the default DNS I specify (either Google's 8.8.8.8/8.8.4.4 or OpenDNS or my mobile provider's DNS servers) and load the website from the public internet.
2.) When a browser on a tethered device requests my-example-domain.com or my-other-domain.com I want the DNS to resolve to an IP of my choosing. In this case (for now, but I want to be able to change it), I want it to resolve to the IP address of my phone that is providing the tethering. The local IP address of the phone is is 192.168.11.254, which is the Default Gateway address when running Wifi Tether Router. I have a web server running on the phone on port 8080 and I want it to receive the requests for my two domain names
I want nearly all traffic from tethered devices to resolve through public DNS servers, but for those two specific domains I want the DNS to be handled by the DNS server running on the phone. I want those specific requests to resolve to the same phone that is providing the tethering and to have the web server running on the phone serve the files.
I have most of this working correctly except for one issue. Here are the details.
I am using three devices:
Galaxy Avant to provide tethering "phone"
Windows Laptop "laptop"
Windows Desktop "desktop"
Scenario 1 - Using Google DNS on phone:
In WiFi Tether Router under DHCP Settings I have:
HTML:
IP Address: 192.168.11.0 (0 is disabled and can't be changed)
DNS 1: 8.8.8.8 (google)
DNS 2: 8.8.4.4 (google)
When either of the Windows computers connects via wifi they receive the following:
HTML:
Default Gateway: 192.168.11.254
IP Address: 192.168.11.1XX
The laptop has a dynamic IP and DNS assigned by the DHCP in Wifi Tether Router on the phone.
The desktop has a static IP of 192.168.11.102 with its DNS pointing to the phone at 192.168.11.254 for DNS 1 and 192.168.11.0 for DNS 2 (I know the second one is invalid, but Windows requires two)
Under this scenario both the laptop and the desktop can access live websites through their browsers.
I'm assuming that the DNS is running through Google's 8.8.8.8 since that is the primary DNS for Wifi Tether Router and both computers are getting their DNS from the phone.
Scenario 2 - DNS running on Windows Desktop:
In WiFi Tether Router under DHCP Settings I have:
HTML:
IP Address: 192.168.11.0 (0 is disabled and can't be changed)
DNS 1: 192.168.11.102 (desktop)
DNS 2: 192.168.11.102 (desktop)
Both Windows computers still receive the following:
HTML:
Default Gateway: 192.168.11.254
IP Address: 192.168.11.1XX
Since the DNS 1 and DNS 2 settings for WiFi Tether Router now point to 192.168.11.102 (desktop) instead of 8.8.8.8/8.8.4.4 (Google) the DNS is now handled by the desktop.
The desktop is running Simple DNS Plus which is configured to point my-example-domain.com and my-other-domain.com to the IP address of the phone at 192.168.11.254.
There is a web server running on the phone.
Both computers can still access live websites through their browsers and both computers can access the web server running on the phone by visiting my-example-domain.com:8080 or my-other-domain.com:8080
The only records I have defined in Simple DNS Plus on the desktop are for my two domains, so I'm assuming that the rest of the DNS requests are getting passed back to the phone to be handled by the phone's default DNS servers since WiFi Tether Router no longer knows about Google's DNS (because it is now pointing at the desktop to resolve DNS instead). The DNS settings for the wifi network adapter on the desktop are pointing at the phone's 192.168.11.254 address still (which seems like it should create some sort of loop since the phone and desktop both point at each other, but it doesn't? Maybe someone can clear this part up for me), so even though my-example-domain.com and my-other-domain.com are being redirected by the DNS server on the desktop to the IP of the phone where the web server is listening, every other DNS request must be going back to the phone and resolving there since the phone is the desktop's only source of internet and the live websites actually resolve. The desktop must be either sending the request back to the phone to resolve or using the phone's data, but either way the desktop is forwarding the domains that it is supposed and leaving the rest up to the DNS on the phone somehow. I'd like to have a better idea of how this actually works.
In my head it's doing the following:
Request for my-example-domain.com or my-other-domain.com from laptop:
Checks DNS on WiFi Tether Router on phone > Forwards all DNS to Simple DNS Plus on Desktop > Points and resolves to web server on phone
Request for any other domains from laptop:
Checks DNS on WiFi Tether Router on phone > Forwards all DNS to Simple DNS Plus on Desktop > No record found for host > Returns DNS request to WiFi Tether Router on phone > Resolved by default DNS of phone
Scenario 3 - DNS running on Phone:
I installed the "DNS Server" app from Ice Cold Apps on the phone and created a DNS server instance, but I am not allowed to choose port 53 so I chose to have it assign random port (40747). If I try to set the port for the DNS Server to 53 I receive an error saying "The port you entered is not valid, try another one (this normally happens because Android doesn't allow a server on that port or another app is using the port)."
I created a rule that points my-example-domain.com and my-other-domain.com to the IP address of the phone at 192.168.11.254. The rules are very simple, you can only provide a domain name and an IP address for the DNS Server to route it to, nothing more.
In the DNS Server settings there is a checkbox for "Use a DNS server for requests" which is checked by default with a box attached to it for "DNS Server IP" which is set to 8.8.8.8:53 by default, which is Google's DNS on port 53.
There is another checkbox (that I unchecked) which says "Use a web DNS server for requests" with a box attached to it for "Web DNS server url" that is pre-populated with a PHP url from China
There isn't much documentation for these apps, so I assumed that it was ok just to use the Google servers from the first setting and skip the unfamiliar web DNS server stuff. I'm guessing those settings are supposed determine where the DNS Server app checks for hosts you didn't explicitly define with a rule. For example, if someone types one of my two domains name it should forward, but any other name should be checked with that provided DNS server. I could be totally wrong about this, so some clarification would be nice.
In WiFi Tether Router under DHCP Settings I have:
HTML:
IP Address: 192.168.11.0 (0 is disabled and can't be changed)
DNS 1: 192.168.11.254 (phone)
DNS 2: 127.0.0.1 (phone)
There is no option for port for the DNS so it's checking port 53 on my phone, but the DNS server wasn't allowed to start on 53 so it's listening on 40747 instead. This means I need to forward port 53 to port 40747 so that the DNS requests sent to DNS Server on port 53 by WiFi Tether Router will be answered.
I installed the "Port Forward Ultimate" app from Ice Cold Apps on the phone. There is only one setting, a checkbox which says "Force using internal iptables (advanced)". I left it unchecked initially, but found that the port forwarding server will not start unless that box is checked (and it doesn't matter what ports I'm trying to forward, without that box checked it simply will not start).
I created the following rule in the port forwarding app:
HTML:
Source port: 53
Destination port: 40747
I left the "Forward to external host" box unchecked and the accompanying "Forward to host/IP" box empty.
I started Port Forward Ultimate, DNS Server, and WiFi Tether Router.
Both the desktop and the laptop connect to WiFi Tether Router, but neither of them can access live websites and neither of them resolve my-example-domain.com or my-other-domain.com
I first thought that maybe the port forwarder couldn't bind to 53, so to test I changed my port forwarding settings to:
HTML:
Source port: 53
Destination port: 8080 (the port the web server is running on the phone)
When I visit 192.168.11.254:53 in Internet Explorer 9 from the desktop or laptop it works just fine (Chrome and Firefox won't let you browse websites on port 53, they show show a security error, but IE works). I see the website from the web server that is running on port 8080 on the phone, so port 53 is bound and forwarding to 8080, but when I try to forward 53 to 40747 (the port of the DNS server on the phone) it doesn't work. I've tried the DNS server on various ports (40747, 1029, etc). I made sure the port forwarder set to forward 53 to the port of the DNS server. I also made sure WiFi Tether Router set to use the phone (192.168.11.254) as the DNS, but live websites won't load and the the rules I have in the DNS server app on the phone do not cause my-example-domain.com or my-other-domain.com to resolve to either the phone itself on 192.168.11.254 or to the desktop web server running at 192.168.11.102 (I've tried setting it to forward to both).
I can forward port 53 directly to the web server on the phone or to the web server on the desktop (by checking "forward to external host" and providing the IP of the desktop), but when I set 53 to forward to the DNS server on the phone then the DNS server never does its job, as if it isn't even receiving requests.
When I run nmap on the phone at 192.168.11.254 with DNS and port forwarding enabled on the phone I get:
HTML:
PORT STATE SERVICE VERSION
53/tcp filtered domain
With port forwarding off I get:
HTML:
PORT STATE SERVICE VERSION
53/tcp open domain dnsmasq 2.62
When I run nmap on 40747 (or 1029 or any of the ports I've tried for the DNS server) with DNS running on the phone I get:
HTML:
PORT STATE SERVICE VERSION
1029/tcp filtered ms-lsa
WiFI Tether has no problem handing off the DNS to the Simple DNS Plus running on the desktop, but when it tries to hand the DNS off to DNS Server running on the phone it doesn't resolve.
Perhaps there is some kind of conflict I don't understand, like maybe when the DNS setting in WiFi Tether Router tries to connect to 192.168.11.254 on port 53 and is supposed to get forwarded. I do know that at all times I can access 192.168.11.254:8080 from the desktop as long as the web server is running and I am tethered to my phone.
Lastly, there is a checkbox in the DHCP settings for WiFi Tether Router which says "DNS Redirect" that when checked displays two IP address boxes for DNS 1 and DNS 2 under a header that says "Redirect DNS To". I'm not sure what this is, but it could be important. The only other two options under DHCP are "Use Internal DHCP" and "Use Alternative DHCP Config".
All I want is for most requests from tethered devices to go through standard DNS while the domain names I add host records for in the DNS Server on my phone will resolve to the IP addresses I specify, whether those IP addresses are external or the IP of the phone itself where the web server is running.
I have most of this working, including being able to hand off the DNS from WiFi Tether Router to one of my computers to do the routing, but I want to have it all self-contained on my phone as a standalone setup.
The web server is working, the tethering is working, the tethering handing off the DNS is working, the DNS on the desktop correctly routes the domains to the phone and the rest of the requests to live DNS, and the port forwarding appears to be working when forwarding 53 to my web server, so I'm just kind of stuck.
I've been working on this for 12 hours and I've hit a wall.
It could have something to do with needing to forward both UDP and TCP in the port forwarding, although there's no direct option for that except a box to create custom scripts that modify iptables, which I've tried but had no luck with. Or maybe Wifi Tether Router binds port 53 and is conflicting with the port forwarding / DNS server.
I'm open to any ideas as to why running WiFi Tether Router through the DNS on my phone with port forwarding doesn't work, but running WiFi Tether Router through DNS on my desktop does (especially since the DNS on the desktop correctly points my two domain names back to the phone for the web server to answer and also resolves live websites, both tasks that are receiving and sending requests through the phone); your input will be greatly valued.
The goal of this entire effort has been to create portable and private prototypes of browser-based applications that I've developed for still-to-go-live domain names and be able to run them entirely from my phone on any device that I tether (without modifying the hosts file on the tethered device) so that I can do on-the-fly demos even in areas with spotty data service. In addition, I can load up my SD card with media assets and personal content such as images, audio, and video and have everything available instantly in the web applications when I demo. I can also ensure that the only way to see particular applications I'm developing or access demo data is if you are directly tethered to my device. I can run full database software, application servers, and everything else directly from my phone and make changes to the apps instantly. All I need now is this one little DNS fix and I'm set.
Thanks!

Related

How to config Activesync for LAN/WAN access with Small Bus 2

Background to my problem
At our office, we have Small Bus Server 2003 with the new Exchange SP installed. Our web site domain name is not mapped to our local server, but hosted on a external commercial one.
Our router/firewall has one fixed IP address that is connected to the web, while all the workstations have local address like 192.168.10.xxx, etc.. To configure Activesnc to work from outside our network, all I had to do is enter the fixed IP address into the server settings in Active sync and it connects.
The problem occurs if the Wizard is connected to a PC via USB in the network. At this point, active sync is looking for an external IP address instead of the real address of the server which is 192.168.10.xxx.
So, I configured a custom DNS with our domain hosting provider to have "mail.domain.name" redirected to our fixed IP address. With a little tweaking on the router, this works! In ActiveSync I can enter just "mail.domain.name" instead of the external IP and it works from the outside.
Now, to sync while connected to the network, I have to manually change the server address every time to reflect 192.168.10.100. Ideally, i would like to somehow tell my local server that any request inernally sent to "mail.domain.name" gets redirected to 192.168.10.100 instead of going out on the web. This would solve my problem of changing the server address everytime I'm in the office.
Does anyone know how to do this in Small Business Server 2003? Is there another way to keep the same server settings in/out of our network?
Thanks
Rob

wifi network questions on HTC HD2

Hi,
Using a HTC HD2 I am trying to access my home network via WIFI (WPA2/PSK - AES). Some of it works, some of it doesn't and I was hoping some of you would be able to point me in the right direction:
I can connect to intranet pages (for instance utorrent web interface) via IP, but not via hostname.
I cannot connect to network (smb) shares at all, either via IP or hostname.
A program which requires the hostname to work (since I use it over Hamachi VPN as well as locally and don’t want to change the IP based on how I use it) does work over Hamachi and not over WIFI.
I'm quite confused
Any help would be greatly appreciated!
Cheers,
Elco
Sounds like your DNS isn't working. Do you have custom DNS servers configured in the "Name Servers" tab of network card config?
Yhanks for responding!
It should get it from DHCP (though I have tried assigning a static IP and dns, but this gave the same result)
Also, I have another older win mobile device, and with the same setttings it does allow me to access the network shares (by IP and hostname)
I've combed all settings regarding wifi and network, but since they are the same I am guessing it is probably a different at the registry level?
The HTC HD2 does have 2 broadcom wifi adapters mentioned though, a normal one and one with a DHD postfix.
Cheers,
Elco
@Talisman_: same problem here. have you solved it?
Exactly same problem on xperia x2. I just set on manual temporary.
Are you using Hamachi on your phone?
Did you have this problem prior to installing Hamachi?
The reason being is Hamachi installs a network interface which exists whether or not Hamachi is running
You may want to check your Data Connection settings and see if it has applied the "requires a proxy" setting
What are you using as your DNS server though, that is the question.
If it's your broadband router, then chances are it won't be able to serve DNS requests for internal devices (ie computers on your home network).
If that's the case, you'll need a proper DNS server (get an old PC and install Linux) and create a local domain such as home.local, or if you've got a registered domain, you can even set it up the same (domain.com for instance) just tell the DNS server it's the domain master.
It's been yonks since I played around with Linux so I can't tell you how, much easier with Windows Server
Some people advise against using the same public domain name as an internal domain name, but it just means you add A records for any public addressess such as WWW.domain.com or mail.domain.com if it's accessable outside your network as well as inside.
Alternatively, if you're only going to be accessing them via the home network then you could try adding a few hosts to your registry (use the windows calc or similar to convert each IP address number to Hex)
http://windowsmobilepro.blogspot.com/2006/04/etchosts-file-equivalent-in-windows.html
As always, you modify the registry at your own risk.

[Q] Help me access my server over the internet

I want to visit this page on my server
http://192.168.2.53:8080/tma/majBtm/androidToDesktop
Since it's a dynamic IP, the above mentioned IP address keeps changing everytime I reset my connection. I replaced the IP with a DynDNS hostname I created
http://tmagrails.dyndns-ip.com/tma/m...droidToDesktop
However, I'm unable to access this page from a remote machine (any machine outside the server's network)
I was asked to forward the port 80 to 8080. I'm unable to do so as there is no port forwarding option in my router page. I use a UTStarcom UT300R2T modem/router.
Is there any workaround for this?
Please advice.
blueren said:
I want to visit this page on my server
http://192.168.2.53:8080/tma/majBtm/androidToDesktop
Since it's a dynamic IP, the above mentioned IP address keeps changing everytime I reset my connection. I replaced the IP with a DynDNS hostname I created
http://tmagrails.dyndns-ip.com/tma/m...droidToDesktop
However, I'm unable to access this page from a remote machine (any machine outside the server's network)
I was asked to forward the port 80 to 8080. I'm unable to do so as there is no port forwarding option in my router page. I use a UTStarcom UT300R2T modem/router.
Is there any workaround for this?
Please advice.
Click to expand...
Click to collapse
This IP Address is a local-only IP address.
IP addresses in the 192.168.x.x ranges cannot be accessed from the internet.
You need to port forward a particular port on your router, and map that to the internal address. Your router has an external facing IP address, and you need a router that supports DynDns in its control panel.
You can find your external IP via www.whatismyipaddress.com but to get this working you need to be able to setup an incoming port forward, so port 8080 is directed by your router to your PC. The DynDns is currently pointing to
tmagrails.dyndns-ip.com (117.192.174.157)
So you just need to somehow forward all incoming connections to port 8080 onto that desired computer, and give that machine a static IP address on the internal network via DHCP pre-allocation.

Static DNS Entries are ignored and google DNS is forced

Hello everyone,
So I've been doing some work on my A1. Managed to root it via Magisk and something strange happened after that, though now i don't even know if it's related to root or the newest software update. But here is what I've found.
I have a home DNS server with some local network DNS entries.
I also have a DHCP which is providing home DNS server IP along together with 8.8.8.8 as secondary DNS to DHCP clients.
On my phone, i have set a static IP address but pointed DNS servers, as first server to be my home server and secondary to be 8.8.8.8 (as if i were to get these settings via DHCP).
All works well. I am able to get to my devices by looking them up like "pc.lan" or "printer.lan" ... In the first 5 minutes OR LESS!
After that SHORT period expires, my phone no longer queries my local DNS. I couldn't see which server is he trying to reach, i was afraid that i have rooted my phone badly and somehow installed malware onto it which is overwriting my DNS settings.
TBH i even checked /etc/resolv.conf and noticed that i do not have my entries there, but onle 8.8.8.8 and 8.8.4.4. Even after editing that file i still have no luck (maybe it's not reading that file).
So I've done little snooping and sniffing. Moved PCAP file to PC and looked it up in wireshark and there i saw something interesting!
Basically, he was querying google's 8.8.8.8 over port 853 (TLS) and completely ignoring my entry.
When i removed 8.8.8.8 as secondary DNS from my static entries, all worked fine, i was able to query my local DNS just fine!
So my question is. Is anyone aware of anything new regarding DNS queries? Maybe android is now forcing encrypted DNS traffic when available ?
EDIT:
Just for the record. I am using Android 9 with V10.0.5.0 build number (as earlier mentioned, Xiaomi Mi A1)

DNS forwarding not working

I've rooted my first android device yesterday (Samsung J530f) for the purpose of system wide proxyfication through a local network socks proxy. In other words, I have a socks5 client running on my PC to which I connect from my android device using a local IP in Socksdroid. The traffic coming from the android device is then proxified through the socks set in the client on my PC.
I have however huge issues with android getting the DNS server remotely, based on the proxy IP. I've tried different DNS related apps including Override DNS and DNS forwarder, but I get some very strange results. In the same browser on different checkers I get DNS servers from different countries, yet none of them are the servers that I manually set in either Override DNS and DNS forwarder. I've tried 3-4 different apps and none of them seem to work in the way intended and give inconsistent and glitchy results, so I start to suspect that there's something that prevents these apps from functioning properly.
The only way that I managed to get DNS to function like intended is to set network.proxy.socks_remote_dns to true in firefox nightly, but then again, it only uses the right DNS in one browser, and not the entire system.
Does anyone have any suggestions on what I could do to get DNS working consistently and properly?
Thx.

Categories

Resources