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.
i know modifying the services.jar is done when rooted but i have been messing with QPST pretty much all day and have found quite a few little tweaks that can be made. anyway, i noticed under multiple tabs there are options for tethering. when i get back, im going to back up all my settings and then change some things to see what i can come up with.
can anyone with and intimate knowledge of QPST and our phones chime in here? is there anyway at least the wired tethering can be modified w/ QPST to be unlocked? just a thought because the market apps have to do something not root related.
I don't know about actual tethering (which gives your PC an IP address), but I've seen a lot of posts on XDA and other forums on how to browse the web using a proxy setup. I've been doing this for the last few days that I've owned the phone.
In essence, it involves:
1. Running a proxy server app on your phone. I use JADS internet sharer, in SOCKS mode. Proxoid is another HTTP proxy server
2. Connecting phone to the computer using USB
3. Putting the phone in HTC Sync mode (I couldn't get adb to work in charge only mode)
4. Doing adb port forwarding on your computer: adb forward tcp:12345 tcp:1080
5. Configuring firefox to use the SOCKS v5 proxy localhost:12345 (or HTTP/HTTPS proxy if you run proxoid)
6. Configuring the network.proxy.socks_remote_dns custom property value to "true" in firefox's advanced configuration (type about:config in the address bar, and type "dns" in the filter textbox)
After this, I can browse the internet all I want. And that's really all I need at this time. I'd like to have the computer route all internet through this proxy server, but I'm going to look into it later.
I suspect the market apps are doing something VERY similar. They all have a client component you have to install on your PC, maybe the client is a "dummy" network interface that routes all traffic through a similar port forwarding setup.
ProcessorHog said:
I don't know about actual tethering (which gives your PC an IP address), but I've seen a lot of posts on XDA and other forums on how to browse the web using a proxy setup. I've been doing this for the last few days that I've owned the phone.
In essence, it involves:
1. Running a proxy server app on your phone. I use JADS internet sharer, in SOCKS mode. Proxoid is another HTTP proxy server
2. Connecting phone to the computer using USB
3. Putting the phone in HTC Sync mode (I couldn't get adb to work in charge only mode)
4. Doing adb port forwarding on your computer: adb forward tcp:12345 tcp:1080
5. Configuring firefox to use the SOCKS v5 proxy localhost:12345 (or HTTP/HTTPS proxy if you run proxoid)
6. Configuring the network.proxy.socks_remote_dns custom property value to "true" in firefox's advanced configuration (type about:config in the address bar, and type "dns" in the filter textbox)
After this, I can browse the internet all I want. And that's really all I need at this time. I'd like to have the computer route all internet through this proxy server, but I'm going to look into it later.
I suspect the market apps are doing something VERY similar. They all have a client component you have to install on your PC, maybe the client is a "dummy" network interface that routes all traffic through a similar port forwarding setup.
Click to expand...
Click to collapse
does easytether have a pc client? never tried it so i really dont know but i think your right because in the free version of easytether its web ports only and the paid version, all ports are working (gaming, messaging, etc....).
I've tried the Easytether paid version and it works great.
ydoucare said:
I've tried the Easytether paid version and it works great.
Click to expand...
Click to collapse
i've used this before.. good stuff
ydoucare said:
I've tried the Easytether paid version and it works great.
Click to expand...
Click to collapse
never said it didnt work. that's not the point of this thread.
ydoucare said:
I've tried the Easytether paid version and it works great.
Click to expand...
Click to collapse
Over wifi? Also, will this work for computers that can only join a secure network? (not adhoc) [if wifi is avail]
I only need to tether when on a job and there network is down or something and I may need to get on my laptop for a brief amount of time would this easytether work for me.
this should be in Q&A or general. you are not developing anything with your op so it does not belong here please pm a mod to move
Or merge with thread WIP DEV hotspot unlock?
BANG! from my shooter...
hi.
so i have a HTC Desire HD, on orange UK.
im running a webserver from my laptop for development purposes...
i was wondering how i can access it from another internet connection while im tethering?
(assuming my router has port 80 forwarded to the laptop) i am easily able to gain access to the web server simply by navigating to http://<my.ip.add.ress>/ from another internet connection....
how would i go about doing this while tethered to my phone? i assume it is possible, as a torrent client seems to be able to upload and download while tethered... i assume it would be something to forward internal port 80 access through to my laptop? :S
when tethered, both my laptop and phone have the same external ip address, so im assuming it would all be done through the hotspot stock app on my phone...
any useful information would be great, thanks..
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!!!
I have a grandfathered Unlimited Verizon Data Plan that my company is paying me to have. I do not like Verizon, and am out of contract, so I recently purchased a Nexus 5 and plan on paying monthly with Ting. I have to maintain a "company phone" but using Google Voice, and importing all my accounts, it is really trivial that I would be using the Nexus 5 on a different carrier, since they only subsidize their employees, the device does not actually belong to them.
Instead of leaving my GS3 in a shoe box somewhere or selling it, I wanted to try using it as a dedicated hotspot for my apartment since I live in an area that has capped data from ISP's and no real solution (read FIOS) yet.
I purchased a Netgear Wireless Bridge Adapter WNCE2001 and set it up to connect to the phone's wifi hotspot and plugged that into the WAN "internet" port of my router running Tomato 1.28 firmware.
All seemed ok as far as ability to surf the web, use netflix from my TV, etc however there was a huge problem with some of the things I host from my internal network, such as media servers Subsonic, and Plex.
I am not able to access anything hosted on my internal network from any external network, even though I have not touched or altered my configurations - just replaced the WAN / "internet" port of my router with the tethered data connection.
After days of research and reading I have attempted a few fixes, although none have truly worked so far:
1) I tried connecting the phone to an open VPN server and then routing that traffic through the built in wifi tethering . This indeed worked - I followed some threads linked below, and was able to verify that now everything on my network was using the Open VPN connection - however I could not figure out a way to forward the ports appropriately and access Subsonic or Plex from the outside world.
http://forum.xda-developers.com/showthread.php?t=1993689
http://forum.xda-developers.com/showthread.php?t=2317841
2) I attempted using SSH tunnel from a remote Linux Server and although I could verify tha the tunnel was getting data piped through, I could not actually access Subsonic or PLex from the outside world. I tried to use tsocks to force all traffic for each service to use an established SSH tunnel but did not have much success.
It is important to note that these methods were tested on a shared server of a friend of mines, as far as I know they do not have root access and can not alter the open VPN or Open SSH configs or manually open ports on the server side. I wanted to just test it out to verify that it could work because I do not have a dedi or vps at the moment, I would consider getting something small from digital ocean or Amazon EC2 if this could actually work.
3) Lastly, I tried to use this port forwarding app, which as far as I can tell did absolutely nothing
Any help or direction is much appreciated, at this point I am more frustrated because after hours of reading and trying things out I feel as though I am now even more confused as to why this isn't / can't / could be working?!?!
Another thread I found here that seems like maybe it could be similar is the ability of getting NAT free with XBL using tethered data. I dont play video games, but I am wondering if something similar could be done using a crossover cable to allow for opening up ports through the wireless ISP as well? The older computer I use to host my media stuff from is running Ubuntu, and I have a Macbook Laptop, I only run Win7/8 in VM's on occasion - ideally though I want to find a solution that only uses the Linux Laptop, the phone, and the router - I can't leave my laptop home.
TLDR;
Halp! :silly:
[old desktop]- - - - ->{ROUTER]- - - - - >[WIFI ADAPTER]- - - ->[TETHERED GS3]- - - >[VZW]- - -> INTERNETS :good:
How to I send media servers from one side to the other and avoid all the NATing and dynamic IP's ? :victory:
I use versavpn with verizon and connect with openvpn. They give 3 ports to forword and dedicated ip. You chose the ports u want to forward on there web site. I have plex and remote desktop and a ftp server running on my unlimited data Verizon plan 300 gigs used a month for 3 years now. This has worked OK for me. I also ditched the tethered phone and went for a 4glte router instead much less hassle.
Sent from my LG-VS980 using XDA-Developers mobile app