Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I have this data plan that gives unlimited mobile browsing. It only works with the browser, so http and https. If I tried to use the Maps or Youtube app, it won't connect.

I enter the APN settings with the provided server, port (80), username, password to connect.

There's a few proxy apps like ProxyDroid that let me use Maps, Youtube, Gmail, etc. with that same data plan. I just enter those APN settings into the ProxyDroid settings.

Can someone tell me what the proxy is doing to give me access like this?

share|improve this question

migrated from superuser.com Apr 19 '12 at 16:26

This question came from our site for computer enthusiasts and power users.

2 Answers 2

If you have an (W)LAN network connected to an ADSL modem at your home, a mobile access point is like that ADSL modem; a mobile access point (AP) translates between the protocol of the mobile network to the protocol of the wider Internet. Imagine the mobile network as a LAN, and access points are the nodes in the LAN that have direct access to the Internet, all communication between the inner network and the outer network must go through an access point.

Access points can have rules about what data can pass through it, how it works is similar to how a firewall works. At a minimum, the firewall will have rules on which ports that applications can connect to. By default, HTTP uses port 80 and HTTPS uses port 443, but any protocol can use any port number as long as both the client and the server agrees on which one to use. A more aggressive firewall will also inspect the destination of a data packet, and an even more aggressive one could inspect the actual content of the packets, as long as they aren't encrypted.

The job of a proxy is to tunnel a data transmission through a remote server; so if you configured your phone to use proxy 123.123.123.123 at port 80 or 443, the firewall will have no way of distinguishing between this and normal HTTP/HTTPS connection, especially with HTTPS proxy as the data is encrypted from the client to the proxy. The remote proxy server, which is ideally located in an unrestricted network, will then relay the data to their true destination.

The network operator can block a proxy by blacklisting their IP address and configuring their firewall to block any access to the IP address of a known proxy, but since there are 4 billion IPv4 addresses and the IP addresses used by some proxies change all the time, it is difficult if not impossible task to blacklist every proxy in existence. Anyone can also create their own proxy server using their own home connection or purchase a server that they use for proxying, this makes it impossible to filter all proxies.

Most networks that blocks only for browser connections does that to limit usage of bandwidth sucking applications, like torrents; so, as long as your proxy usage doesn't burden the network too much and you're not using it to access illegal materials, they usually wouldn't hunt you down for it.

share|improve this answer
    
+1 - thanks for the detailed explanation! –  Mr. Buster Apr 19 '12 at 19:36
    
Someone remembered my question, thanks! The ProxyDroid app is on the phone itself and is connecting directly to the same AP. My initial thought was that the AP checked the DST port to make sure it's port 80/443 and that ProxyDroid merely modified the destination port from say 565 (for youtube app) to 80 so it passes through. I assume that the apps that work accept connections at port 80. –  Jack Apr 21 '12 at 1:41
    
The ProxyDroid app has a setting for the port. I put in 80 thinking that this meant only port 80 was allowed so ProxyDroid would change all packets destinations to 80. But then I realized that port 80 is what most (all?) APNs use to connect to it. So how does ProxyDroid know that only http/s is allowed? –  Jack Apr 21 '12 at 1:44
    
@Jack: ProxyDroid not only modified the DST port, it also modified the DST IP address to the proxy server, and encapsulate that packet with the original DST IP and port so the proxy server knows where to relay the packet to. In any case, ProxyDroid didn't even need to be aware that it is an HTTP connection or some other protocol. When done correctly, any applications in the phone can connect to any port on the destination server. The only difference is that the destination server sees the packet as coming from the proxy server's IP address instead of from your mobile phone's IP address. –  Lie Ryan Apr 21 '12 at 1:57
    
Which proxy server are you talking about? I'm confused because the carrier's APN settings are what I input into ProxyDroid. I'm not aware of any other server. Would whatismyip.com show me the difference if I tried it with ProxyDroid on and off? –  Jack Apr 21 '12 at 2:26

I would gues that access point is sending you PAC - proxy auto configuration. If you ignore this you can browse freely.

share|improve this answer
    
So you're saying the proxy ignores this file? –  Jack Mar 28 '12 at 2:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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