4

HTC/Android 4.4.2

I am trying to set up VPN at work, which requires me to define a proxy server. I can long-tap on the staff WiFi name and enable advanced options, which allows me to define the proxy and port – except that the Save button seems to grey-out or not depending on what I type. It seems to be validating the proxy address as I type.

My problem is that our work proxy server address contains slashes, which the validation doesn't accept. So, if I enter proxy.pac then I can save it, however, I need to enter http://xxx.com/proxy.pac

Having looked around the forums, I think this must be a fairly rare problem - I see only a few references to this field not accepting a slash (in relation to adBlock). Although this does give me some assurance that its not just me, it doesn't really seem to offer a solution - those forums seem to find either a trailing space at the end of the proxy name, or that entering the form's fields in a reverse order then enables the save button.

So my questions are:

  1. Is this a known problem? Can it be repeated elsewhere? Am I doing something stupid?

  2. Can a 3rd party app offer a solution? I've tried some, eg "Proxy Settings" but it too doesn't allow the slash, also seeming to attempt to validate the hostname setting and refusing to accept what I need to enter.

  3. Would rooting the phone help me? I see a lot of the available apps for setting proxies require that the phone has been rooted - I am reluctant to do this unless I know it will solve my problem.

  4. I am aware there is a new release of Andriod around the corner... perhaps somebody with hands-on experience can see whether this problem still exists (simply try and enter a string with a slash in it for proxy settings, if you can press enter then I'll be first in the queue to upgrade when its available for me)

Any help/comments much appreciated!

2 Answers 2

3

As stated by Lie Ryan's answer, the proxy.pac file is a javascript file. In the Proxy Settings on your Android, you can only enter the address, port number, and sometimes a username and password.

What you can do is either ask your SysAdmin for the Proxy Server and Port Number, or just look at the file yourself. On a system that's already on the network, navigate to the address, and see what the file contains. Below is an example for my organization (some data modified):

function FindProxyForURL(url, host)
{
   if (isInNet(host, "192.168.0.1", "255.255.224.0")) {
      return "DIRECT";
   } else {
      if (shExpMatch(url, "http:*")) 
         return "PROXY 192.168.0.1:3128" ;
      if (shExpMatch(url, "https:*"))
         return "PROXY 192.168.0.1:3128" ;
      if (shExpMatch(url, "ftp:*"))
         return "PROXY 192.168.0.1:3128" ;
     return "DIRECT";
   }
}

The important part is what it wants the proxy address to return; in my case, it's 192.168.0.1:3128. I can enter this into my Android, and all my data goes through my proxy. I can check my proxy logs (I use squid), and see the requests for pages going to my phone, without requiring an actual 'proxy.pac' file on my phone.

8

Your http://xxx.com/proxy.pac is not a proxy server, it is the address to a proxy automatic configuration (PAC) file. A PAC file contains a Javascript function that determines which proxy address to use and/or whether you're allowed to go direct when connecting to a particular URL.

ProxyDroid (requires root) claims to support proxy configuration using PAC file (I had never personally used it though).

1
  • Ah, thank you, this is very interesting. Now I start to understand a little more. As with many things, knowing what to search for is half the problem! I will investigate further.
    – Jamie
    Commented Nov 19, 2014 at 9:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .