How To Self-Host Your TOR Socks5 Proxy Locally and Access Flux-Hosted SimpleX Servers
If you care about privacy and understand how TOR works, you already know the rule: **always access TOR locally**—not remotely. *(Unless you have no other choice and trust the remote endpoint, and even then you must wrap the connection in TLS or another strong encryption method.)* This guide will show you how to self-host your own **TOR Socks5 proxy locally** using Docker, and then configure it to access **Flux-hosted SimpleX SMP and xFTP servers** for maximum privacy and decentralization.

Why Local TOR Access Matters
Using remote proxies for TOR breaks the point of the network: you’re pushing traffic through a third-party hop that can log or alter data. By running your own TOR proxy on your device or LAN, you keep the trust boundary in your control.
Part 1: Self-Hosting TOR Socks5 Proxy With Docker
We’ll use the regularly updated repository from PeterDaveHello.
Prerequisites:
- Docker installed (Linux, Mac, or Windows)
- Git installed
Step 1: Clone the repository
git clone https://github.com/PeterDaveHello/tor-socks-proxy
cd tor-socks-proxy
Step 2: Build the Docker image
docker build -t torproxy:latest -f Dockerfile .
Step 3: Run the container
docker run -d --restart=always --name tor-socks-proxy \
-p 127.0.0.1:9050:9150/tcp torproxy:latest
- 127.0.0.1:9050 is your local Socks5 endpoint.
- All applications that need TOR access will point to this address.
Alternatives:
- Debian systems: follow the official Debian Tor Guide
- OpenWRT router: use the OpenWRT Tor guide
Part 2: Accessing Flux-Hosted SimpleX Servers
Now that your device can access the TOR network, you can set up SimpleX to communicate with Flux-hosted SMP and xFTP servers.
Step 1: Install the SimpleX Chat Client
Download SimpleX for your platform from simplex.chat.
- On iOS, you’ll use Orbot as your TOR bridge.
- On Desktop/Android, you’ll configure the Socks5 proxy manually.
Step 2: Configure TOR in SimpleX
- Open SimpleX
- Tap the profile icon (top-left)
- Tap Network & servers
- Tap Socks Proxy Setting
- Enter:
Host: 127.0.0.1
Port: 9050
- Toggle proxy ON, then Save & Update
Note: If using iOS, Orbot will handle the proxy connection.
Part 3: Add Flux SMP & xFTP Servers
Flux SMP Servers (TOR)
smp://LnyXWtMzjt2ge2tLX5nCmWxFEOydqyTy-mi1NtS6FDU=:TestPasss@fluxosm7ngawn5pzoxnmk53akmelhvmpxprpkstgsnqrdz2h4vuzhbqd.onion
smp://JO7_2iSNIgAxkiQC8JNIqujmf2_oXywUUoP5jRycp6k=:TestPass@fluxosb2lcn3hh27iglkv35ptjhhnurwyvmxncamv2h2yf2c6hdydjid.onion
Flux xFTP Servers (TOR)
xftp://qAl3ycourWN63i2UNFouakWD3W8IlHgsuxyj155wjoY=@znm3fhfqjkdpesfazmc6kmjamykc5ree3jrqflzhx6wvd4iub3pfgeyd.onion
Steps to Add Servers
- In SimpleX, go to Profile > Network & servers
- Tap SMP Servers > Add Server…
- Paste one of the SMP server URLs above
- Tap Test Server (✓)
- Tap back arrow, then Save Servers
- Repeat for each server you want to add
Do the same flow for xFTP Servers.
Notes on Clearnet Access
Currently, Flux endpoints are TOR-only. Clearnet hosting support will be added soon.
If you need to use your own domain:
- Point the server IP to your domain via your DNS server
- Be prepared to update DNS when IPs change
Next Steps
If you want to self-host your own SimpleX servers on Flux, watch for the upcoming guide: "How To Host Your Own SimpleX Servers on Flux"
If you just need a temporary TOR proxy, you can test against the Flux Run TOR proxy endpoint (but remember, it’s unencrypted and not recommended for regular use).
If you care about privacy and understand how TOR works, you already know the rule: always access TOR locally—not through someone else’s proxy.
(Unless you have no other choice, trust the remote endpoint, and add another encryption layer like TLS.)
You’ll learn how to self-host a TOR Socks5 proxy using Docker, and then use it to access Flux-hosted SimpleX SMP and xFTP servers for secure, anonymous communications.
Why You Must Use Local TOR Access
When you connect through a remote TOR proxy, you shift the trust boundary. That external server can log requests, inject code, or silently deanonymize your traffic. Running your own proxy guarantees full control.
Diagram: Local vs Remote TOR Proxy
Part 1: Host a TOR Socks5 Proxy With Docker
We’ll use the PeterDaveHello tor-socks-proxy repo, which is actively maintained.
Prerequisites
- Docker installed (Linux, macOS, or Windows)
- Git installed
Step 1: Clone the repository
git clone https://github.com/PeterDaveHello/tor-socks-proxy
cd tor-socks-proxy
Step 2: Build the Docker image
docker build -t torproxy:latest -f Dockerfile .
Step 3: Run the container
docker run -d --restart=always --name tor-socks-proxy \
-p 127.0.0.1:9050:9150/tcp torproxy:latest
- Your TOR Socks5 endpoint will be 127.0.0.1:9050
- Any local app can now connect to the TOR network by pointing to this proxy
Alternatives:
- Debian: use the official Debian TOR guide
- OpenWRT: use the OpenWRT TOR guide
Part 2: Access Flux-Hosted SimpleX Servers
Now that your system has direct TOR access, you can set up SimpleX Chat to connect through the proxy and add Flux SMP/xFTP servers.
Step 1: Install SimpleX
Download for your platform from simplex.chat.
- iOS: Use Orbot to handle TOR
- Desktop/Android: Configure Socks5 manually
Step 2: Configure TOR Proxy in SimpleX
- Open SimpleX
- Tap the profile icon (top-left)
- Tap Network & servers
- Tap Socks Proxy Setting
- Enter:
Host: 127.0.0.1
Port: 9050
- Toggle proxy ON, then Save & Update
Note: iOS devices only need Orbot installed—SimpleX will route through it.
Part 3: Add Flux SMP & xFTP Servers
Flux SMP Servers (TOR)
smp://LnyXWtMzjt2ge2tLX5nCmWxFEOydqyTy-mi1NtS6FDU=:TestPasss@fluxosm7ngawn5pzoxnmk53akmelhvmpxprpkstgsnqrdz2h4vuzhbqd.onion
smp://JO7_2iSNIgAxkiQC8JNIqujmf2_oXywUUoP5jRycp6k=:TestPass@fluxosb2lcn3hh27iglkv35ptjhhnurwyvmxncamv2h2yf2c6hdydjid.onion
Flux xFTP Servers (TOR)
xftp://qAl3ycourWN63i2UNFouakWD3W8IlHgsuxyj155wjoY=@znm3fhfqjkdpesfazmc6kmjamykc5ree3jrqflzhx6wvd4iub3pfgeyd.onion
Steps to Add Servers
- Go to Profile > Network & servers
- Tap SMP Servers > Add Server…
- Paste a server URL from above
- Tap Test Server (✓)
- Back out and Save Servers
- Repeat for all servers
Do the same for xFTP Servers.
Diagram: Dockerized TOR + SimpleX Traffic Flow
What About Clearnet Access?
Currently, all Flux endpoints are TOR-only. If you plan to use your own domain:
- Set your DNS to point to your server’s IP
- You’ll need to update DNS records when IPs change
Stay tuned for the next guide: "How To Host Your Own SimpleX Servers on Flux (Clearnet + TOR)"
Why This Setup Matters
This Dockerized TOR proxy ensures you:
- Keep your TOR traffic under your control
- Can resolve .onion addresses from any app (SimpleX, browsers, APIs)
- Avoid relying on third-party proxies
When paired with Flux-hosted SimpleX servers, you get private, decentralized messaging with zero metadata leakage.
- Full Guide Available At - https://help.runonflux.io/docs/how-to-self-host-your-tor-socks-5-proxy-locally-and-accessing-flux-hosted-simplex-servers/