Back to list
Mar 21 2026

Guide: Skywire SOCKS5 Proxy — Route Traffic Over the Skywire Network

Skywire SOCKS5 Proxy

Skywire includes a SOCKS5 proxy (Skysocks) that routes application traffic over the Skywire network. Unlike the Skywire VPN which tunnels all system traffic, the SOCKS5 proxy is per-application — you configure individual applications (browser, curl, etc.) to use the proxy, and only their traffic is routed through Skywire.

This makes it lighter than a full VPN and useful when you want to route specific applications through Skywire while leaving the rest of your traffic on your normal connection.


Prerequisites

Both the proxy server and client require a running Skywire visor.


Running a SOCKS5 Proxy Server

The proxy server (Skysocks) starts automatically by default when running a visor. No additional configuration is needed.

Start/Stop at Runtime

You can start, stop, and check the proxy server while the visor is running:

skywire cli proxy server start
skywire cli proxy server stop
skywire cli proxy server status

To restrict access to specific public keys:

skywire cli proxy server start \
  --whitelist <allowed-pk-1>,<allowed-pk-2>

Connecting as a Proxy Client

Find Available Proxy Servers

List proxy servers registered in the service discovery:

skywire cli proxy list

Filter by country:

skywire cli proxy list -c US

Show only the count:

skywire cli proxy list --stats

Test proxy servers for connectivity:

skywire cli proxy test

Connect to a Proxy Server

skywire cli proxy start -k <server-public-key>

This starts a local SOCKS5 proxy on 127.0.0.1:1080 (default). All traffic sent through this proxy is routed over Skywire to the remote visor, which forwards it to the internet.

To use a different local port:

skywire cli proxy start -k <server-public-key> -a :9050

Configure Your Applications

Once the proxy client is running, configure applications to use it:

Browser (Firefox): Settings > Network Settings > Manual proxy configuration > SOCKS Host: 127.0.0.1, Port: 1080, SOCKS v5. Check “Proxy DNS when using SOCKS v5” to route DNS queries through the proxy as well.

curl:

curl --socks5-hostname 127.0.0.1:1080 http://ip.skycoin.com

This should return the remote visor’s IP address, not yours. The --socks5-hostname flag (instead of --socks5) sends DNS resolution through the proxy too, preventing DNS leaks. With plain --socks5, DNS queries go through your normal resolver and reveal which sites you’re visiting.

Environment variable (for CLI tools):

export ALL_PROXY=socks5h://127.0.0.1:1080

The socks5h:// scheme (note the h) tells applications to resolve DNS through the proxy. Plain socks5:// only proxies the connection, not DNS.

HTTP Proxy Mode

The proxy client can also run in HTTP proxy mode alongside SOCKS5:

skywire cli proxy start -k <server-public-key> --http :8080

This starts both a SOCKS5 proxy on :1080 and an HTTP proxy on :8080.

Check Status

skywire cli proxy status

Disconnect

skywire cli proxy stop

Client Flags

$ skywire cli proxy start --help
start the proxy client

Flags:
  -a, --addr string   address of proxy for use (default ":1080")
      --http string   address for http proxy
  -k, --pk string     server public key
  -t, --timeout int   timeout for starting proxy

VPN vs. SOCKS5 Proxy

VPNSOCKS5 Proxy
ScopeAll system trafficPer-application
SetupCreates TUN interface (requires root)Userspace, no special permissions
Server platformLinux onlyAny platform
Use caseFull anonymity for all trafficRoute specific apps through Skywire
Local portN/A (system-wide)127.0.0.1:1080 (configurable)
CLIskywire cli vpnskywire cli proxy

Use the VPN when you want all traffic to go through Skywire. Use the SOCKS5 proxy when you want selective routing or when running on a platform where the VPN server isn’t supported.


How It Works

  1. The client establishes a Skywire route to the server visor
  2. The client starts a local SOCKS5 server on 127.0.0.1:1080
  3. Applications connect to the local SOCKS5 proxy
  4. The client forwards SOCKS5 requests over the encrypted Skywire route to the server
  5. The server performs the actual network request and returns the response through the same route

All traffic between client and server is encrypted by the Skywire transport layer.


$ skywire cli proxy --help
Skysocks client

Available Commands:
  start     start the proxy client
  stop      stop the proxy client
  status    proxy client status
  list      List servers
  test      Test proxy servers from service discovery
  server    Skysocks server (SOCKS5 proxy server)

See also: Skywire VPN | DmsgWeb: Anonymous Websites Over DMSG | Skynet Port Forwarding | Skywire: One Binary, Everything You Need