WebTether
WebTether assists tethering with mobile devices that do not yet support tethering but do have a functional web browser.
Requirements to use WebTether:
- A computer with always-on internet access (such as a home computer on a cable modem or wifi network). Computer must have a recent python distribution (tested on OS X 10.6).
- A mobile device with a web browser that supports WiFi
- A portable computer that you want to tether to the internet through the mobile device. Portable computer must have a recent python distribution (tested on OS X 10.6) and WiFi.
Instructions for setting up WebTether:
On your always-on home computer
- Download the latest serverside component from https://sourceforge.net/projects/webtether/files/
- Run the socks_over_http_backend.py script from within the serverside directory. You do this in Terminal as such:
$ cd ~/Downloads/serverside
$ python socks_over_http_backend.py
- Set up port forwarding on your router to forward port 8080 to the internet
- Determine your computer's external IP address by clicking here: What is my IP
On mobile device
- Visit http://<IP address from above>:8080. You should see a screen that says "Connecting". Bookmark this page.
(If you don't see that page or can't connect, your ISP is blocking inbound connections your or you didn't set up port forwarding properly)
On portable computer
- Download the latest clientside component from https://sourceforge.net/projects/webtether/files/
You are now fully set up and ready to tether through your mobile device.
Instructions for tethering with WebTether when you're out and about:
On portable computer
- Create an ad-hoc wireless network
- Set the static IP address 169.254.0.1 on your wireless interface. You may alternatively run the included prepare_interface.py script (with sudo) to do so.
- Set a SOCKS proxy on your wireless interface to 127.0.0.1, port 1080
On mobile device
- Join the portable's ad-hoc wireless network
- Visit the previously-set up bookmark. The screen should show "Connected", if all is set up properly.
You may now use the internet from your tethered portable.
How it works:
WebTether splits a SOCKS5 proxy implementation into a frontend that accepts SOCKS5 connections, and a backend that handles those connections. It runs the frontend on your portable, and the backend on your home computer. The mobile device bridges those two parts on a website running on the backend that embeds an iframe to the frontend. Communication between the frontend and the backend is serialized and sent using cross-domain iframe communication with postMessage.