I have created an SOCKS proxy server application to run on Windows Mobile phones. A SOCKS proxy is a proxy server that is capable of forwarding nearly all types of network traffic, similar to a NAT router. It is very simple to use. Simply type in the port you would like the proxy server to listen on (defaults is 1080), then click the large "Start Proxy" button.
In order to run this application you will need the .NET Compact Framework 3.5 installed on your device.
Some applications are SOCKS-ready and others are not. You can use FreeCap (freeware) to SOCKS enable any Windows application. ** FreeCap seems to have problems connecting to SocksProxy. Let me know if it works or doesn't work for you. **
I am *NOT* responsible for any fees charged to anyone for the use of this software. There is no warranty and no guarantee.
[UPDATE 2/25/2009]
I've completed the new version of SocksProxy. It implements socks version 4a. There is no security, so it will allow anyone to connect with any user id.
Please let me know of any issues you find.
[UPDATE 2/24/2009]
SocksProxy v1.0 Reboot
--------------------------------------------------------------------------------
I've completed the new proxy server. It looks pretty much like the old one, but I've anchored the controls to the edges so it should scale properly with VGA devices.
I've written a new Socks 4a proxy from scratch and completed ditched all the old code. It seems to be working pretty well, though a bit slow. I think I need to increase the size of my read buffers. I will have to write a smarter heuristic for determining the size of the buffer per connection though. I have them at 128 Kb now. I need to grow each buffer dynamically according to how it's being used, that way I don't create large buffers for connections that are only transfering small amounts before closing (downloading a small gif or javascript file, for example).
I'll probably release it tomorrow after some more testing.
BTW: I'm posting this through the proxy right now!
[UPDATE 2/24/2009]
I've decided not to move forward with the J2ME version of SocksProxy. I will however be writing a new .NET CF version. The current version's proxy is based on code I ported from a proxy targeted to the standard .NET framework. Some features in the standard framework are absent in the compact framework. When porting the proxy I pretty much just did it as quick and dirty as I could because I really wanted something that just got the job done. I didn't care how stable or 'good' it was because I hadn't even intended on releasing it to anyone. Since it looks like there's still a lot of interest I will be writing a new one from scratch. Don't expect too much; It'll be the simplest thing that possibly works, but it'll be stable and reliable.
I'll be naming this version SocksProxy 1.0 Reboot. I'm not upping the version number because I'm really not going to be adding any new features.
[UPDATE 11/4/2008]
I am working on a J2ME version of this application. I will no longer be maintaining the .NET version of the application. The SVN repository for the .NET version will continue to be available. I have no plans on taking it down.
I have decided to switch to J2ME because I will be able to reuse source code in a future Android release -- that is, if Google or someone adds the ability for Android to have more than one IP address.
[UPDATE 10/27/2008]
There is a usage issue with the application with certain configurations of Windows Mobile and Activesync. It seems that when the Activesync host (your PC) has a connection to the internet the handheld device will prefer to connect to the internet via the PC's connection rather than its cellular connection. This completely eliminates any benefit to using the proxy. Does anyone know how to prevent the handheld from routing its internet traffic back through Activesync? Note that this is NOT solved by setting the "Allow data connections" setting in Activesync.
[UPDATE 10/27/2008]
I have updated the SVN respository (https://pchasco.homedns.org/svn/SocksProxy/trunk). Here are the changes:
* Changed "Listening on" box to list all IPs on the handheld
* Added an IP box. Enter an IP to listen on that IP or leave blank to listen on all.
* Rearranged form
* Added "Use selected IP" button to insert into the IP box the IP selected in the list of available IP addresses.
You can enter any IP address in the IP box, but the proxy will fail to start if the IP is not valid for your device.
Hi pchasco,
Could you explain a bit more what this does (and how it works)?
The reason I ask is that I'm looking for an application for the PPC which allows me to share its internet connection by pointing the Desktop browser' proxy to the PPC.
This allows me to be connected to the wired network and using this proxied browser to browse even the blocked sites ...
Can your application be used for this?
If so could you also explain how it works..
I've ran the App on my PPC, and clicked start, this gave me an IP address
next i hooked it up to USB and pointed IE's proxy to that address...didn't work
I also tried to activate the 3G first and/or with ICS activated
but both times I didn't see a IP address...
I'm probably doing something wrong..
Thanks
This is a SOCKS proxy, so it does not work in quite the same way that a normal HTTP proxy does. For internet explorer you'll have to open the advanced proxy options and fill in the information for the SOCKS hostort entry.
Can someone please explain a sample usage of this software on Windows Mobile?
pchasco said:
This is a SOCKS proxy, so it does not work in quite the same way that a normal HTTP proxy does. For internet explorer you'll have to open the advanced proxy options and fill in the information for the SOCKS hostort entry.
Click to expand...
Click to collapse
Have you used this with ICS? In other words, share your internet connection with a computer and then have the computer connect via your sock proxy to the internet?
abdulzis said:
Can someone please explain a sample usage of this software on Windows Mobile?
Click to expand...
Click to collapse
I'm not sure what you mean. An example of how to use it or an example describing why someone would want to use it?
hoopsbwc34 said:
Have you used this with ICS? In other words, share your internet connection with a computer and then have the computer connect via your sock proxy to the internet?
Click to expand...
Click to collapse
I am not sure why you would need to use both SOCKS proxy and ICS at the same time. They are both means to provide internet connectivity through your phone to another device. If ICS were an option on my phone, I would use it over SOCKS unless the client device did not support it.
pchasco said:
I am not sure why you would need to use both SOCKS proxy and ICS at the same time. They are both means to provide internet connectivity through your phone to another device. If ICS were an option on my phone, I would use it over SOCKS unless the client device did not support it.
Click to expand...
Click to collapse
Basically, I'm trying to allow access to two networks at the same time. So I want to adjust my settings in firefox to point to my WM phone and your socks proxy. Then my other applications and IE can use my LAN. Otherwise, to get my WM ICS to work I have to disable my LAN connection which I need for certain apps.
edit... I'm good with using it without ICS, but that doesn't seem to work either. No matter when I click start proxy, I get an IP of 0.0.0.0 and if I connect my computer via USB I can't ping that address.
hoopsbwc34 said:
Basically, I'm trying to allow access to two networks at the same time. So I want to adjust my settings in firefox to point to my WM phone and your socks proxy. Then my other applications and IE can use my LAN. Otherwise, to get my WM ICS to work I have to disable my LAN connection which I need for certain apps.
Click to expand...
Click to collapse
Then setting the SOCKS proxy setting without setting any other proxy settings should work in Internet Explorer. I've been trying to test it, but my phone refuses to access the internet through the cellular connection right now; it's always going through my PC while activesync is connected. I can't get it to stop! The funny thing is IE on my PC is making its HTTP requests through my phone, then my phone is going right back through my PC to the internet!
pchasco said:
Then setting the SOCKS proxy setting without setting any other proxy settings should work in Internet Explorer. I've been trying to test it, but my phone refuses to access the internet through the cellular connection right now; it's always going through my PC while activesync is connected. I can't get it to stop! The funny thing is IE on my PC is making its HTTP requests through my phone, then my phone is going right back through my PC to the internet!
Click to expand...
Click to collapse
That's what I tried... but the IP address I get is 0.0.0.0 from your app. What IP do you usually get back when you run it? Do you just connect via USB? If ActiveSync is running is that an issue?
pchasco said:
Then setting the SOCKS proxy setting without setting any other proxy settings should work in Internet Explorer. I've been trying to test it, but my phone refuses to access the internet through the cellular connection right now; it's always going through my PC while activesync is connected. I can't get it to stop! The funny thing is IE on my PC is making its HTTP requests through my phone, then my phone is going right back through my PC to the internet!
Click to expand...
Click to collapse
I think there is a setting in ActiveSync that says "allow wireless connections when connected" sounds like that might be your problem.
Mr_Gee said:
Hi pchasco,
Could you explain a bit more what this does (and how it works)?
The reason I ask is that I'm looking for an application for the PPC which allows me to share its internet connection by pointing the Desktop browser' proxy to the PPC.
This allows me to be connected to the wired network and using this proxied browser to browse even the blocked sites ...
Can your application be used for this?
If so could you also explain how it works..
I've ran the App on my PPC, and clicked start, this gave me an IP address
next i hooked it up to USB and pointed IE's proxy to that address...didn't work
I also tried to activate the 3G first and/or with ICS activated
but both times I didn't see a IP address...
I'm probably doing something wrong..
Thanks
Click to expand...
Click to collapse
Sounds like the same thing that is happening to me. I finally got it to give me an IP address, but only if my data connection is inactive. As soon as the data connection is active it becomes a 0.0.0.0 IP address. Bug?
I tried to establish the IP, then activate the data connection... still doesn't work when I enter the IPort into my proxy list for firefox.
hoopsbwc34 said:
That's what I tried... but the IP address I get is 0.0.0.0 from your app. What IP do you usually get back when you run it? Do you just connect via USB? If ActiveSync is running is that an issue?
Click to expand...
Click to collapse
I am not sure why you are receiving 0 as your IP address. Check in Settings->Connections->USB to PC that "Enable advanced network functionality" is selected.
Gave it another try
Connected to ActiveSync (AS) loaded the application
removed the AS connection, started the application
It showed me the IP address op 127.0.0.1 (localhost)
Stopped the App, initiated the gprs and started the App again.
now i'm getting an IP of 0.0.0.0, I restarted the App a couple of times but no dice
I also checked if the advanced network functionality was enabled and it was..
Mr_Gee said:
Gave it another try
Connected to ActiveSync (AS) loaded the application
removed the AS connection, started the application
It showed me the IP address op 127.0.0.1 (localhost)
Stopped the App, initiated the gprs and started the App again.
now i'm getting an IP of 0.0.0.0, I restarted the App a couple of times but no dice
I also checked if the advanced network functionality was enabled and it was..
Click to expand...
Click to collapse
Hmm... I'm not sure what's going on here. 127.0.0.1 is the loopback interface-- It is only valid for your phone to connect to itself. If your computer attempted to connect to 127.0.0.1 it would connect to itself, not your phone.
pchasco said:
Hmm... I'm not sure what's going on here. 127.0.0.1 is the loopback interface-- It is only valid for your phone to connect to itself. If your computer attempted to connect to 127.0.0.1 it would connect to itself, not your phone.
Click to expand...
Click to collapse
Yes I know... :-/
Well, if I have time in the next few days I will take a look and see whether there is anything I can do. Maybe there is another IP address available on your device but for whatever reason I'm displaying the loopback instead of the external interface.
What happens when you set your proxy client up to go to 169.254.2.1:1080?
Mr_Gee said:
Gave it another try
Connected to ActiveSync (AS) loaded the application
removed the AS connection, started the application
It showed me the IP address op 127.0.0.1 (localhost)
Stopped the App, initiated the gprs and started the App again.
now i'm getting an IP of 0.0.0.0, I restarted the App a couple of times but no dice
I also checked if the advanced network functionality was enabled and it was..
Click to expand...
Click to collapse
Sounds like the same bug I am getting.
An example describing why someone would want to use it?
abdulzis said:
An example describing why someone would want to use it?
Click to expand...
Click to collapse
If you can't use ICS and want to connect to the internet from your desktop, you can connect your phone using USB and start this proxy, then you can setup your desktop connection to use the proxy to get internet access.
To access the Internet using Wifi I need to go through the proxy server of our organization. Usually in a Windows Desktop we configure to get the DNS server automatically and use a proxy.pac (some thing like: http: //SSS.SSS.SS.SSS/proxy.pac).
I have rooted my Xperia X10 mini and tried anProxy and TransProxy, but failed to go through the proxy server.
Is there any way out or work around to access the Internet through our proxy server?
Thanks in advance!
I know this is old, but this is an ongoing problem and I figured out how to use a .pac proxy file! After reading about proxy's and what .pac files are, I stumbled upon a little hint and after a little tinkering I was able to use my work's wifi that uses an auto-config .pac file and my phone and tablet has full internet access with browser, apps etc including Netflix for example.
Here are the steps you need:
1) Your phone has to be rooted to take advantage of the proxy apps on the market, I personally use ProxyDroid, which is free and has a feature to bind certain proxy profiles to automatically turn on when a certain wifi network is connected.
2) Usually there is an option that gives you an http proxy pac file to manually input to your browsers or what not, so whatever the link is, put it an active internet browser to download the pac file (an example of the url with the pac file would be something like http://internet.xxxxx.com/proxy.pac)
3) Where ever you download the pac file, open it with notepad or wordpad and this will reveal all the proxy info you need in order to access the proxy enable wifi. What the ProxyDroid app needs from the PAC file is the Host url and Port number. When you open a PAC file in notepad, you'll see something like this near the top along with a bunch of other things under it:
"Cisco Remote Envelope Service
if (dstHost=="internet.e-mail") {
return "PROXY internet-x-x.xxxxxx.com:9090""
- So in "Host" under Proxy Settings in the ProxyDroid app you would input: internet-x-x.xxxx.com
- For the "Port" you would put input: 9090
4) After inputting those 2 pieces of info into the ProxyDroid app, turn the wifi on for your Android Device then enable to ProxyDroid app, you should able to connect to the proxy enabled wifi!
*Some notes for the ProxyDroid app.
- It allows for Authentication, but since my work wifi does not use that, I'm not sure how it would work
- For Proxy type, I set it as an HTTP
- I binded the specific proxy profile to my work wifi so it would ProxyDroid would automatically enable when work wifi was detected
Hope this bit of info helps other that have Android devices and were unable to use a proxy enable wifi to finally access them. Hopefully in the future, Android will make using proxy and pac files a lot easier like how it's done on the ipad where they allow you to manually set up proxy settings by having the device download the PAC file.
This works on both a rooted AT&T HTC Inspire and a HP Touchpad running CM7 Alpha
This looks like a resolved issue, but if anyone else is reading this, there is an easier way. Check out Autoproxy on the market. You can add a new proxy, put in the address to the proxy.pac file, and it will connect to the current proxy.
That's also good if you're on a network where they keep changing the proxy (like the place I work).
I have recently purchased an LG Vortex (from what I read is Verizon Wireless's Optimus One) that comes with the Android 2.2 operating system installed. I have looked into rooting my phone with z4root and have successfully temporarily rooted my phone. I would rather keep my phone unrooted, but if it is absolutely necessary I will root it permanently with z4root.
My question is this: How can I connect to my company wifi and use apps that require wifi?
I can successfully connect to my corporate wifi through the 802.1x EAP protocol. The problem comes when trying to access any of the apps that require internet (I am forcing Verizon's data plan not to be used--using wifi only due to 150MB limit on my data to save $$ per month). None of my apps seem to work--internet browser, Market, Gmail, Google Calendar, etc...
On my company pc I know that within internet explorer the box is checked that says "Use automatic configuration script" and gives an "Address" that is in the format of "..../proxy.pac" It looks like my work uses a proxy for things to connect to the internet. I have no such place to put this information in my LG Vortex. I downloaded an app that seemed promising called "Proxy Settings" which will allow me to enter in the following Hostname and Port. When I tried to enter the "..../proxy.pac" as the hostname it gave me an error stating "The hostname you typed is not valid."
Is there an app or something that will allow me to use my apps when connecting to my corporate wifi? Is it a proxy setting thing or a VPN thing? I am not sure. I am open to any and every idea so that I can use my phone's online features while connected to my company's wifi.
FYI - I have friends that have iPod touches and they are able to connect to the internet with some apps internet browsing and downloading apps, but they have a similar issue of not being able to use all of their apps as well. I believe they were able to put the "..../proxy.pac" address in their devices somewhere.
Thanks!
I am a new member on this forum but I decided to reply because I have a question and a possible solution for you:
-solution:try to download the *.pac file.You will see that it is probably a script that defines your actual proxy's ip.So you could try and figure out which is your actual proxy's ip.Then use this ip for the proxy-app. (However I am afraid that only browser will connect properly,not every app)
-and now the question:how did you manage to connect to the network?I have trouble connecting because the wifi settings menu doesn't seem to help.
I try to connect to a 802.1x EAP network and I have installed the required certificates but I don't know what to fill to username,password fiels.
--
lampros
I've been banging my head trying to get this working this week. Ultimately, I got my HTC Evo View to connect to my Sprint Epic. Thought I would share the method. Tested in 3G and with Wifi.
Here's the lowdown:
Devices
Sprint Epic
SPD-D700
Android 2.3.7
CyanogenMod-7-01242012-NIGHTLY-Epic
Build GWK74
HTC Evo Flyer
Hardware Version 0001
Android 3.2.1
Rooted
Needed Software
PDANet Tablet 1.06 on both devices
Auto Proxy (ROOT) Auto Proxy on Tablet
https://market.android.com/details?...EsImdwYy5teXdlYi5oaW5ldC5uZXQuQXV0b1Byb3h5Il0.
Steps
1. I started by installing PDANet on both devices.
2. Turn on Airplane mode and then turn on bluetooth on the tablet. Turn on bluetooth on the phone. Pair both devices. (Don't know if this step is necessary but this is what I did first).
3. In Auto Proxy, I set Proxy Host to 127.0.0.1 and Proxy Port to 1234. I did this because the proxy settings click through button in PDANet was not giving my proxy settings on the Tablet. After doing this, I was able to click on the "Proxy Settings" button inside PDANet on the tablet and it took me to the proxy settings, which I again set to to 127.0.0.1 and 1234.
4. On the Epic (phone) I enabled PDANet as server. Do the next steps before your phone is no longer bluetooth discoverable.
5. On the tablet, I enabled PDANet as client. Then pushed the proxy settings button, set the proxy settings, as described in step 3. You may have to click the proxy settings button a couple times in PDANet before it goes to the right place.
6. Click the connect link inside of PDANet on the View. Make sure you do this within the allotted time that your phone is still discoverable through Bluetooth.
7. Test your connection. For me it worked like a charm.
Cheers,
javahead76
I just wanted to mention. If you want to access the internet through other means again (revert), you will need to clear proxy settings and save in both apps. Then you probably won't need to mess with anymore.
Also, PDANet Tablet Beta was hard to find on the internet, but I did eventually find it.
Can you please upload the Pdanet 1.06 somewhere? It's not available in the market anymore.
Hi All,
I think I have finally cracked it. I have had this issue since getting my SG2 out of the box and i have read every forum possible for a solution. I mean i have tried everything until this:
Fix: This is for those people using their phone as a wifi hotspot that get a successful connection to their laptop or Tablet etc but cannot use the internet because of DNS issues. I.e, when connected to your laptop you establish a connection but get a limited connectivity warning.
Steps:
1. ensure you are on ICS
2. I want you to re download a fresh set of your APN's from telstra - http://configure.telstra.com.au/telstra/index.jsp (Follow your nose with this bit, you want the one that downloads all of them)
Now the fix!!
3. Go to Settings> more>mobile networks>access point names
4. Click on Telstra internet (telstra.iph)
5. Scroll down to APN Type
6. Type: default,supl,internet,dun
7. press menu then save
Your Done.
Your data notification will switch off and then back on in about 15 secs and away you go.
I really hope this helps those that have had this issue for ages.
Mewsik.
Hi,
I would be interested to see your feedback if this fix worked for you. I have had 2 work friends have the same issue and the above post fixed their wifi hotspot issue.
Cheers.
sorry to resurrect a super old thread, but i just want to say that this worked for me and thank you.
i am using openvpn and for some reason my "push dns" server rule was not applying to my phone. the computer kept pointing to my phone's ip as the dns resolver, but my phone was not resolving anything (most likely it was trying to resolve from localhost) but after i applied the above, openvpn push rules correctly applied and my computer now accepts the dns from my server automatically.
my setup:
openvpn server -> openvpn on phone -> usb tether -> computer
this way my computer's traffic is routed through openvpn on my phone so dont have to install it on my computer basically a portable vpn 'server'. this works for wifi as well so any clients that connect will also route through vpn.
Do you even have an I9100 ?
I can't believe they let this drag on this long without a fix. Upgrading to Kitkat was the worst mistake ever.
My VPN was flawless on 4.3 .... Someone please figure out how to downgrade back to 4.3.
Thanks OP for the info.
Total_Lag said:
sorry to resurrect a super old thread, but i just want to say that this worked for me and thank you.
i am using openvpn and for some reason my "push dns" server rule was not applying to my phone. the computer kept pointing to my phone's ip as the dns resolver, but my phone was not resolving anything (most likely it was trying to resolve from localhost) but after i applied the above, openvpn push rules correctly applied and my computer now accepts the dns from my server automatically.
my setup:
openvpn server -> openvpn on phone -> usb tether -> computer
this way my computer's traffic is routed through openvpn on my phone so dont have to install it on my computer basically a portable vpn 'server'. this works for wifi as well so any clients that connect will also route through vpn.
Click to expand...
Click to collapse
great, it also worked for me (Samsung S7, Proximus operator in Belgium), thanks!!!