11

I'm having trouble port-forwarding connections from outside my network when tethering with my phone. I have a bad understanding of routers and networking in general, so please bear with me.

My Android device is the one directly connected to the Internet. To enable access to my computer from the outer world via the Android device, I'm currently using the free app called Port Forwarder and my phone is rooted so I have the authorization I need. The port on which I handle connections on the server is 80. Accessing the Server's IP address (inside the network) with <local_ip.addr.ess.here>:80 I can access it, so that works.

The problem is when I'm trying to access it from outside the network, the app tells me to set the source to 80, and the destination whatever it is (their example is 8080); of course I set it to 80 since that's what the server is listening to. So I try to access the server from outside using <phone.public_ip.adr.ess>:80 but it doesn't work.

As you have noticed, I've got no clue what I'm doing and finding guides has been difficult, even for standard routers. Has anyone successfully used this app and maybe could help me out? I probably left out important info because of ignorance, if so, let me know and I will update the question.

  • What "public address" we're talking about here? If it's the WiFi address assigned by your router (usually something like 192.168.*.*, but sometimes also 172.*.*.* or 10.*.*.*, see Wikipedia), it's only visible inside your local network, and cannot be accessed directly from the "outer world". Port forwarding settings in your router are needed here, and are better discussed at ServerFault. – Izzy Oct 27 '13 at 21:59
  • No it's the address from google'ing "whats my ip" (if you haven't used it google itself gives an ip-address which should be reliable). And you're misunderstand the question, in the title it says "wifi-tethering". Meaning it's not a regular router my Android device IS my router, making this the relevant site. Did you even read the entire question? I'm mentioning apps, phone and other relevant stuff you seem to completely have missed. – justanotherhobbyist Oct 27 '13 at 23:46
  • 1
    I've even read it multiple times – but I must admit I was a little confused. You didn't explicitly state which device acts as "server" in that context, so I assumed the usual direction (the word "tether" alone doesn't specify who's server and who's client, sorry). Thanks for clarification: this makes my comment towards ServerFault obsolete of course. // Your port foward from 80 to 80 looks correct to me. I'd suggest to consult the Android logs (e.g. adb logcat) while trying to access from the outside, to see if it at least reaches your device and maybe logs some hints. – Izzy Oct 28 '13 at 0:36
  • 1
    Thanks! I've just edited in a little more, so now it should be perfectly clear (hopefully; at least nobody should tap into the same trap as I did anymore). Feel free to adjust if you don't like my edit. // A thought is your provider might not allow for that. To check, setup some server (like a simple FTP server) on your Android device, and try whether that can be accessed from the "outer world". If that doesn't work either, it's your provider blocking that traffic. If it works, we still can investigate further. – Izzy Oct 28 '13 at 12:36
  • 1
    I called my provider, and they said they allow it. Only some "known virus ports" were blocked, whatever that means. So the problem should be in the phone itself. – justanotherhobbyist Oct 30 '13 at 13:29
2

I am not sure which version you're running, here is my advice. The cause you're probably blocked, is due Android's firewall and strong Se-Linux policy.

Since you have a full root access, you can get a shell with ADB, and check that. Type su - and it will get you into root. I am using TerminalEmulator, but you can use native one, if it is shipped with OS.

If I've understood you correctly, your phone acts like router in tethering mode. So this is needed to forward packets: echo 1 > /proc/sys/net/ipv4/ip_forward

See if that helps. Most likely, you'll need to play with iptables, allow port 80,443 on the tethering port. This is not complete answer, but it is too long to post as a comment.

1

The answer is your provider blocks port 80, however if you switch to port 443 they can not block it because port 443 has to have two way communication unblocked for https to send and receive responses. Thus changing from http to https:// should most likely resolve your issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.