Device guide · Linux · headless peer 1.6.1
Run a bandwidth-sharing peer on a Linux server
The PROXIES.SX headless peer is one binary for Linux x86-64 with an optional systemd installer. You download it, check its SHA-256, run sudo bash install.sh and paste your SDK / device key; the service then runs unprivileged and only makes outbound connections.
Registration does not guarantee traffic or earnings. Earnings depend on eligible traffic your devices actually serve and on your active partner terms.
Checked on against our published supplier terms
Requirements
- Architecture
- Linux x86-64 for the published package (no ARM package; the Go source can be built for arm64)
- Service installer
- systemd 235 or later, running, plus sudo
- Network
- Outbound DNS, HTTPS, WebSocket and target TCP access; an OS CA certificate store
- Connection type
- Residential or mobile IP (datacenter IPs are rejected for listing)
- Account
- A farmer account, signed agreement, supply-source declaration and an SDK / device key (psx_…)
- Not needed
- GUI, Go, Docker, Node.js or a compiler; no inbound port
What we checked on 27 September 2026
| File | Bytes | Purpose |
|---|---|---|
proxies-peer | 7,233,696 | The static peer binary |
install.sh | 2,086 | Checks the platform, verifies checksums, writes the key file and service |
proxies-peer.service | 603 | Hardened systemd unit |
INSTALL.md | 5,512 | English install guide |
INSTALL-zh.md | 5,309 | Chinese install guide |
SHA256SUMS | 400 | Checksums for the files above |
- Archive
- proxies-peer-linux-amd64.tar.gz, 3,055,028 bytes
- SHA-256
- 2c283797c12458ad0d936796153c581f64c9abe41bf4881fbb3cce0e0ed35e91
- Checksum result
- OK for the archive and all five files inside it
$ ./proxies-peer -version
proxies-peer 1.6.1
$ ./proxies-peer -h
Usage of ./proxies-peer:
-api string
Platform API base URL (default "https://api.proxies.sx/v1")
-carrier string
Your ISP / carrier name (informational) (default "unknown")
-connections int
Parallel relay sockets (1-5 by default; hard maximum 6) (default 4)
-country string
Your ISO-2 country hint (server still verifies the real IP) (default "US")
-key string
Your Proxies.sx API key (required)
-method string
Connection-type badge (agent/vps/docker) (default "agent")
-name string
Friendly agent name shown in your dashboard
-relay string
Pin a relay URL (empty = let the server pick the nearest)
-state string
Path to the saved identity file (default "/root/.proxies-peer-state.json")
-verbose
Log every tunnel open/close
-version
Print SDK version and exit without connecting
-wallet string
Payout wallet address (optional)Install on one device
Create your key and declaration first
In the farmer account, sign the agreement, complete the supply-source declaration and create an SDK / device key. Use this only on devices whose owners have given informed consent.Download, verify and install
The installer checks for Linux x86-64, systemd 235+ and a running systemd, verifiesSHA256SUMSagain, then asks privately for your key. It refuses to replace a peer that is already running.Shell curl -fLO https://agents.proxies.sx/peer/releases/1.6.1/proxies-peer-linux-amd64.tar.gz curl -fLO https://agents.proxies.sx/peer/releases/1.6.1/SHA256SUMS sha256sum -c SHA256SUMS tar -xzf proxies-peer-linux-amd64.tar.gz cd proxies-peer-linux-amd64 sudo bash install.shCheck that it registered
Allow up to 30 seconds of start-up jitter. ExpectREGISTERED(orRESUMED), thenCONNECTEDandACK. The installer starts with one relay socket per device.Shell /usr/local/bin/proxies-peer -version sudo systemctl status proxies-peer --no-pager sudo journalctl -u proxies-peer -n 40 --no-pagerWait for verification before adding devices
Auto-approval needs at least one hour online and a quality score of 50 or more; automatically verified devices are re-checked hourly. Online and verified alone does not prove the device is listed or receiving customer sessions.
What the installer sets up
The key is written to /etc/proxies-peer/peer.env with mode 0600 inside a 0700 directory, together with a random device name (linux- plus a UUID), one WebSocket and a 30-second registration jitter. The binary goes to /usr/local/bin/proxies-peer. Identity persists in /var/lib/proxies-peer/state.json; keep both files across restarts and never copy them into a device image.
The service runs as a systemd dynamic user with no capabilities, a read-only system, no access to home directories and only IPv4, IPv6 and Unix sockets. If it exits with an error it restarts after 60 seconds, at most five times in five minutes.
[Service]
Type=simple
DynamicUser=yes
StateDirectory=proxies-peer
EnvironmentFile=/etc/proxies-peer/peer.env
Environment=PEER_STATE_FILE=/var/lib/proxies-peer/state.json
ExecStart=/usr/local/bin/proxies-peer
Restart=on-failure
RestartSec=60
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
CapabilityBoundingSet=Run without systemd
read -r -s -p 'SDK key: ' API_KEY; echo
export API_KEY
export AGENT_NAME='your-stable-unique-device-name'
export PEER_STATE_FILE="$HOME/.local/state/proxies-peer/state.json"
export WS_CONNECTIONS=1 REGISTER_JITTER_MS=30000
./proxies-peerYour supervisor must keep the state file, restart with limits, and stop retrying on persistent 401 or 403 responses until the account is checked.
Troubleshooting
| You see | What it means | What to do |
|---|---|---|
| HTTP 403 on register | The account may be suspended, missing the current agreement, or at a device limit | Check the key and agreement in the farmer dashboard, then ask support with the key name, device name, version and UTC time. Never send the key or state. |
| HTTP 401 | The key or token is not accepted | Check the key; do not loop restarts |
| HTTP 429 | Slow down, a shared limit was hit | Back off with jitter and respect Retry-After; the binary makes up to five registration attempts |
| Close code 4001 | No token was sent on the WebSocket | Report it to support with the version and UTC time |
| Close code 4002 | Token invalid or expired | The client refreshes once for all sockets |
| Close code 4008 | The device already holds 6 sockets | The oldest socket was evicted; lower the socket count |
Do not delete identity state or change names to diagnose an error: that creates new identities. Restarting a whole fleet at once adds registration load.
Stop, update or remove
sudo systemctl disable --now proxies-peerStopping disconnects this device's tunnels. To update, stop the service in a maintenance window and install the new release with the same key, name and state. For permanent removal, stop the process, remove the device from the farmer dashboard, then delete its local secrets and state. You can leave at any time; earnings already recorded stay on your account.
A Chinese version of the install guide is published at linux-zh.md.
Questions
- Is there a Linux version of a bandwidth-sharing app that runs without a desktop?
- Yes. The PROXIES.SX peer 1.6.1 is a single command-line binary for Linux x86-64. It needs no GUI, Go, Docker, Node.js or compiler on the device, and an optional installer sets it up as a systemd service.
- Does it run on a Raspberry Pi or other ARM board?
- Not with this package. The published release is linux-amd64 only, and install.sh refuses to run on anything else. No ARM package is published, but the Go source can be cross-compiled for arm64, as described at agents.proxies.sx/peer/go/.
- Does it need root or an open port?
- The installer needs sudo to write the service and key file. The service itself runs as a systemd dynamic unprivileged user with an empty capability set, and it only makes outbound connections; no inbound port is required.
- Will it earn on a VPS?
- The binary runs on a VPS, but datacenter IPs are rejected for customer listing. The peer network is for residential and mobile connections.
- It says CONNECTED. Why is there no traffic yet?
- A running process is not proof of verified, listed or routable supply. A device needs at least an hour online and a quality score of 50 or more for auto-approval, must meet the 500 KB/s routing floor, and customer sessions follow customer demand. Registration does not guarantee traffic or earnings.
- Can I run it on many machines?
- Yes, but give every real device its own stable AGENT_NAME and state, never clone state into an image, and roll out to one device, then a small cohort, checking each stage before expanding.
Start with one Linux device
Sources
Commands and file contents are from release 1.6.1 as downloaded on 27 September 2026.