A lightweight Python-based HTTP/HTTPS proxy server designed to run inside iSH on an iPhone or iPad.
Mainly an experiment set up to see if this was a viable solution to using mobile data on untethered devices without using hotspot data. It works. This allows another device on the same local network (such as a MacBook, Windows laptop, or tablet) to route browser traffic through the iPhone by connecting to a proxy hosted inside iSH.
This project runs a local proxy server inside iSH using Python.
It supports:
- HTTP proxying
- HTTPS tunneling via CONNECT
- Multiple simultaneous clients using threaded handling
- Running entirely on an iPhone/iPad through iSH
- Use from another device over Wi-Fi
Example architecture:
Laptop Browser
↓
Proxy Settings → iPhone IP:8888
↓
Python Proxy in iSH
↓
iPhone Internet Connection
↓
Website
- Learn how HTTP proxies work
- Route browser traffic through an iPhone-hosted proxy
- Network experimentation using only an iPhone
- Lightweight local proxy lab
- Educational socket programming project
- iOS device
- iSH installed
- Same Wi-Fi network as client device
Install Python inside iSH:
apk add python3
Copy the proxy script to iSH as:
text proxyISH.py
Run:
sh python3 proxyISH.py
Expected output:
Proxy listening on 0.0.0.0:8888 On iPhone:
text Settings → Wi-Fi → tap connected network
Example:
192.168.1.80
Use:
Server: 192.168.1.80
Port: 8888
text System Settings → Wi-Fi → Details → Proxies
Enable:
- Web Proxy (HTTP)
- Secure Web Proxy (HTTPS)
text Settings → Network Settings → Manual Proxy Configuration
Set:
HTTP Proxy: 192.168.1.80
Port: 8888
Check:
Use this proxy server for all protocols
sh curl -x http://192.168.1.80:8888 http://example.com
sh curl -x http://192.168.1.80:8888 https://example.com
Handles normal browser traffic such as:
GET http://example.com/
Supports browser TLS tunneling using:
CONNECT google.com:443
Client requests appear in terminal:
('192.168.1.150', 50216) "CONNECT one.one.one.one:443 HTTP/1.1" 200 -
This runs inside a user-space Linux environment on iOS.
Because of iOS restrictions:
- Performance is lower than native proxy servers
- Background execution may pause
- Large sustained traffic may be unstable
- Best for experimentation / light use
This project is a proxy server only.
It does not:
- Perform NAT routing
- Replace hotspot mode
- Transparently route all apps automatically
- Handle all UDP traffic
- Bypass hotspot data limitation
This proxy has:
- No authentication
- No encryption between client and proxy
- No access controls
Use only on trusted local networks.
Ensure:
python3 proxyISH.py
is running.
Inside iSH:
sh echo "nameserver 1.1.1.1" > /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Verify both devices are on same Wi-Fi network.
1. Launch iSH
2. Run python3 proxyISH.py
3. Connect MacBook to same Wi-Fi
4. Set proxy to iPhoneIP:8888
5. Browse normally
MIT License
For educational and personal experimentation purposes only.
Use responsibly and only on networks/devices you own or control.