Using Proxies

New in version 0.12.0.

Syncthing can run behind a SOCKS5 proxy. This enables use behind some corporate firewalls, tunneling via SSH, and over Tor. The Syncthing instance that is behind the proxy is limited to outbound connections - it can not listen for incoming connections via the proxy. It is however possible to receive incoming connections via Relaying.

There is no graphical configuration to enable proxy usage in Syncthing. Instead, an environment variable all_proxy must be set that points to the proxy. The value of this variable is the proxy URL. For example, on a Linux-like system:

  1. $ export all_proxy=socks5://10.20.30.40:5060
  2. $ syncthing
  3. [monitor] 11:25:39 INFO: Starting syncthing
  4. ...
  5. [monitor] 11:25:40 INFO: Proxy settings detected

Note that this environment variable is not named with capital letters - it must be exactly all_proxy. The “Proxy settings detected” log message indicates that Syncthing is using the proxy configuration.

Disabling Fallback

New in version 0.13.0.

By default, Syncthing will attempt a direct connection if a connection via the proxy fails. This is desirable when moving frequently between a proxied and non-proxied environment. However it may be undesirable if the intention is to force all connections through a Tor proxy or similar. In that case, setting the environment variable ALL_PROXY_NO_FALLBACK (with capital letters) will prevent the fallback behavior. For example:

  1. $ export all_proxy=socks5://10.20.30.40:5060
  2. $ export ALL_PROXY_NO_FALLBACK=1
  3. $ syncthing
  4. [monitor] 11:33:13 INFO: Starting syncthing
  5. ...
  6. [monitor] 11:33:13 INFO: Proxy settings detected
  7. [monitor] 11:33:13 INFO: Proxy fallback disabled

Caveats

Syncthing will use the http_proxy / https_proxy settings in combination with all_proxy. Proxies specified with http_ variants will be used behind the socks proxy.

If this is not desired, make sure to undefine the http_proxy / https_proxy variables for syncthing.