{"id":15706684,"url":"https://github.com/mclate/iproxy","last_synced_at":"2025-05-12T15:41:48.624Z","repository":{"id":58773260,"uuid":"533664488","full_name":"mclate/iproxy","owner":"mclate","description":"SOCKS/HTTP proxy for iPhone to overcome hotspot tethering limitations","archived":false,"fork":false,"pushed_at":"2022-09-09T18:37:00.000Z","size":5,"stargazers_count":15,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-05T09:15:00.545Z","etag":null,"topics":["hotspot","iphone","proxy","socks5","tethering"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mclate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-07T07:56:26.000Z","updated_at":"2025-05-03T22:24:08.000Z","dependencies_parsed_at":"2023-01-18T02:30:51.930Z","dependency_job_id":null,"html_url":"https://github.com/mclate/iproxy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mclate%2Fiproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mclate%2Fiproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mclate%2Fiproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mclate%2Fiproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mclate","download_url":"https://codeload.github.com/mclate/iproxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253767040,"owners_count":21961038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hotspot","iphone","proxy","socks5","tethering"],"created_at":"2024-10-03T20:26:29.833Z","updated_at":"2025-05-12T15:41:48.577Z","avatar_url":"https://github.com/mclate.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Simple SOCKS5/HTTP proxy to overcome tethering limitations.\n\nThis tool is initially designed and tested on iPhone 13.\nIt probably will work on Android, but it was never tested there.\n\n## Features\n\n* SOCKS5 proxy\n* HTTP proxy\n* Proxy auto discovery\n* Prevents application hibernation by polling device location\n\n## How to use \n\n### On your phone:\n\n1. Install [iSH](https://ish.app/)\n2. Fetch the latest release of iProxy\n3. Run the app\n\nCLI arguments:\n\n* `-a \u003cip\u003e` - use specific ip as an exposed host address for proxy.\n  This should be the ip of your phone within the tethered wifi (for iPhone this most likely will be `172.20.10.1`)\n  This ip will be used to bind proxy to.\n* `-b \u003cip\u003e` - address to bind to. By default, it's `0.0.0.0` meaning that we listen on all interfaces.\n* `-d \u003cport\u003e` - enable Proxy auto configuration. Will serve requests on a given port under `/proxy` endpoint\n* `-s \u003cport\u003e` - enable SOCKS5 on a given port\n* `-p \u003cport\u003e` - enable HTTP proxy ona given port\n* `-l` - enable location tracking. This helps with preventing app from hibernating.\n  This is the only reason why app will ask for location permission.\n  Make sure to select `Always allow`, otherwise it doesn't make sense to use it.\n* `-h` - show help message with command line arguments\n* `-v` - enable verbose output\n\n### On your computer. \n\nThere are two options: \n\n1. (Option 1) Configure Proxy auto discovery\n2. (Option 2) Manually configure proxy for each application.\n\n## Proxy auto discovery\n\nWhen started with `-d \u003cport\u003e` flag, iProxy will allow one to use [Proxy auto config](https://en.wikipedia.org/wiki/Proxy_auto-config)\nprotocol under `/proxy` endpoint. Most applications and even OS itself are capable of using this feature. \n\nIn order to set it up, one has to enable \"Automatic Proxy Configuration\" and provide the url of the phone, i.e.,\n`http://172.20.10.1:\u003cport\u003e/proxy` where `172.20.10.1` is the phone router ip (when tethering) - this is the default\nIP for iPhone, Android will have a different one. `\u003cport\u003e` is the one specified by `-d \u003cport\u003e` parameter.\n\nAutomatic Proxy Discovery will instruct the device to use SOCKS5 proxy first, if it is not available, it will try HTTP\nproxy and in the end fallback to a direct connection. SOCKS and HTTP proxy will only be provided if they were enabled in\nthe iProxy command line parameters.\n\n## Using proxy with different apps\n\nIn most cases, browsers will pull and use proxy configuration from the system.\nSome other application might do it as well, however, in most cases you have to refer to the application documentation in \norder to find out how to configure it.\n\nMost CLI applications will respect `http_proxy` or `all_proxy` environment variables.\n\n## Known issues\n\n### App is being hibernated/stop working\n\nYes, this is a known issue when iOS hibernates (or terminates) an app that is running in the background.\nAllowing location use and running an app with `-l` parameter might help a bit, but in some cases app will be terminated regardless.\n\n### How to make git work with proxy\n\nNotoriously, git, when working through ssh, doesn't respect `all_proxy` env var.\n\nOne can use next env variable to make git work through SOCKS5:\n\n```shell\nexport GIT_SSH_COMMAND='ssh -o ProxyCommand=\"nc -X 5 -x \u003cphone ip\u003e:\u003csocks5 port\u003e %h %p\"'\n```\n\n### Missing proxy authentication\n\nThis is by design. Because the only use case for this app is to be working over tethered wifi, we assume that one only \nallows access to his hotspot to a known devices. Thus, authentication is done by the means of the hotspot.\n\n\n## Contributions\n\nIssues and PRs are welcome\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmclate%2Fiproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmclate%2Fiproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmclate%2Fiproxy/lists"}