Use TYO Reach from the terminal
With the proxy switched on, Reach listens on 127.0.0.1:8082 (HTTP/HTTPS) and
127.0.0.1:1080 (SOCKS5). Any command-line tool with proxy support can use them — no
extra software. Everything below assumes Reach is on; when it's off these commands fail
to connect rather than falling back to your real IP.
Check it works
curl -x http://127.0.0.1:8082 https://myip.tyo.com.au
You should see the gateway's IP and region rather than your own. Compare with a plain
curl https://myip.tyo.com.au.
curl
# one-off
curl -x http://127.0.0.1:8082 https://example.com
curl --socks5-hostname 127.0.0.1:1080 https://example.com
# every curl in this shell
export HTTPS_PROXY=http://127.0.0.1:8082 HTTP_PROXY=http://127.0.0.1:8082
--socks5-hostname (or socks5h://) resolves names through Reach; plain --socks5
resolves locally first.
wget
https_proxy=http://127.0.0.1:8082 http_proxy=http://127.0.0.1:8082 wget https://example.com/file.tar.gz
wget has no SOCKS support; use the HTTP address. To make it permanent add
use_proxy = on, http_proxy and https_proxy lines to ~/.wgetrc.
git
# all HTTPS remotes
git config --global http.proxy http://127.0.0.1:8082
# just one host
git config --global http.https://github.com.proxy http://127.0.0.1:8082
# undo
git config --global --unset http.proxy
This covers https:// remotes. SSH remotes ([email protected]:…) go through ssh — see below.
ssh
OpenSSH can't use an HTTP proxy directly but can tunnel through SOCKS with a
ProxyCommand. Add to ~/.ssh/config:
Host github.com
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
nc here is OpenBSD netcat (default on macOS and most Linux distros; on Debian/Ubuntu
install netcat-openbsd). If you only have the HTTP proxy available, -X connect -x 127.0.0.1:8082 uses HTTP CONNECT instead — note most HTTP proxies only permit CONNECT to
port 443, so prefer SOCKS for ssh.
For access to a specific machine behind a firewall you don't need this at all — Share this PC and Remote Targets give you RDP/SSH by identity.
npm / yarn / pnpm
npm config set proxy http://127.0.0.1:8082
npm config set https-proxy http://127.0.0.1:8082
# undo
npm config delete proxy && npm config delete https-proxy
yarn and pnpm read the same .npmrc keys, and all three honour HTTPS_PROXY from the
environment.
pip / Python
pip install --proxy http://127.0.0.1:8082 requests
# or, in ~/.pip/pip.conf (Linux/macOS) / %APPDATA%\pip\pip.ini (Windows):
# [global]
# proxy = http://127.0.0.1:8082
requests and urllib pick up HTTPS_PROXY automatically.
Other tools
| Tool | Setting |
|---|---|
apt | Acquire::http::Proxy "http://127.0.0.1:8082/"; in /etc/apt/apt.conf.d/proxy.conf |
dnf | proxy=http://127.0.0.1:8082 in /etc/dnf/dnf.conf |
brew | honours HTTPS_PROXY |
gh (GitHub CLI) | honours HTTPS_PROXY |
docker | needs its own config — see Use Reach with Docker |
Common questions
Why does curl say "Failed to connect to 127.0.0.1 port 8082"?
Reach's proxy is off, or the tray isn't running. Switch it on and retry. If the tray shows different port numbers, use those.
Can I choose the exit region per command?
Not per command — the region is chosen in the tray (or by your org policy) and applies to all routed traffic. Switch regions in the tray and re-run.
Do the routing rules apply to terminal traffic?
Yes. Domain rules with the Direct action send matching hosts out on your normal connection even when the tool is configured to use the proxy; the proxy makes that decision, not the tool. See proxy modes.