Skip to content

billz/TorProxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tor Proxy Plugin

torproxy

This plugin adds Tor proxy server support to RaspAP.

Contents

Installation

Install the Tor proxy plugin from RaspAP's System > Plugins tab. Choose Details corresponding to the plugin, then Install now from the pop-up dialog.

RaspAP's plugin manager automates installating dependencies, creating a baseline Tor configuration, setting permissions and so on. When these steps are done, the installer will refresh the UI. The Tor Proxy plugin will then appear in the sidebar and be immediately available to configure.

Configuration

Baseline Tor settings that will work for most devices are preconfigured by the plugin. The IPv4 address of your device's default network interface is added to the "Network Interface" field. Likewise, the subnet for this interface is used to define the "Socks Policy".

tor-plugin

If you wish to change these values, ensure that they correspond to the default route configured on your device. You can obtain this from RaspAP's Networking > Summary tab. Use the IP Address value that appears under Internet connection. This indicates the primary source of internet connectivity for your device.

Alternatively, you can determine this by executing ip route:

$ ip route
default via 192.168.1.254 dev eth0 proto dhcp src 192.168.1.49 metric 100

In this example, eth0 is the interface associated with the default route and 192.168.1.49 is the IPv4 address assigned to it by DHCP.

If you have services listening on Tor's default Socks port (9050) or Control port (9051) you may change these values to alternate ports. The "Daemon Mode", "Authentication method" and "Data directory" settings are read-only.

Restarting Tor Proxy

If you've modified any of the default settings, you must choose Restart Tor service for the changes to take effect. Tor usually takes a few seconds to establish a circuit with a relay. Check the Status tab to see its progress. Example output of a working [email protected] is shown below:

[email protected] - Anonymizing overlay network for TCP
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled-runtime; preset: enabled)
     Active: active (running) since Tue 2025-06-03 03:40:32 PDT; 152ms ago
    Process: 80143 ExecStartPre=/usr/bin/install -Z -m 02755 -o debian-tor -g debian-tor -d /run/tor (code=exited, status=0/SUCCESS)
    Process: 80145 ExecStartPre=/usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0 --verify-config (code=exited, status=0/SUCCESS)
   Main PID: 80146 (tor)
      Tasks: 1 (limit: 768)
        CPU: 4.948s
     CGroup: /system.slice/system-tor.slice/[email protected]
             └─80146 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0

Jun 03 03:40:28 rpitest Tor[80146]: Opened Control listener connection (ready) on 127.0.0.1:9051
Jun 03 03:40:28 rpitest Tor[80146]: Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Jun 03 03:40:28 rpitest Tor[80146]: Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Jun 03 03:40:29 rpitest Tor[80146]: Bootstrapped 0% (starting): Starting
Jun 03 03:40:32 rpitest Tor[80146]: Starting with guard context "default"
Jun 03 03:40:32 rpitest Tor[80146]: Signaled readiness to systemd
Jun 03 03:40:32 rpitest systemd[1]: Started [email protected] - Anonymizing overlay network for TCP.
Jun 03 03:40:32 rpitest Tor[80146]: Bootstrapped 5% (conn): Connecting to a relay
Jun 03 03:40:33 rpitest Tor[80146]: Bootstrapped 10% (conn_done): Connected to a relay
Jun 03 03:40:33 rpitest Tor[80146]: Bootstrapped 14% (handshake): Handshaking with a relay
...
Jun 03 03:40:34 rpitest Tor[80146]: Bootstrapped 90% (ap_handshake_done): Handshake finished with a relay to build circuits
Jun 03 03:40:34 rpitest Tor[80146]: Bootstrapped 95% (circuit_create): Establishing a Tor circuit
Jun 03 03:40:35 rpitest Tor[80146]: Bootstrapped 100% (done): Done

If the service is unable to bootstrap the Tor circuit, check your configuration and try again.

Client setup

With the Tor proxy server running, you can configure a browser to use it as a proxy. Firefox has this ability built-in and is generally the easiest to use. However, there are several Chrome plugins that allow you to use a proxy.

Using Firefox, choose Settings > Network Settings and select the Manual proxy configuration option.

firefox

Add your Tor Proxy server's IPv4 address in the "SOCKS Host" field and its corresponding port. Ensure that the "SOCKS v5" option is checked.

Verifying your connection

To verify that your internet traffic is being routed through the Tor network, visit https://check.torproject.org/.

tor-firefox

If instead you see "Sorry. You are not using Tor" check that your browser configuration matches your Tor Proxy server settings.

Monitoring traffic

You can also monitor Tor proxy traffic on your device by executing nyx. The Tor Proxy plugin installs this package for you. First, verify that permissions on the Tor cookie allow Nyx to run without elevated privileges:

sudo chmod 755 /run/tor/control.authcookie

You can then simply execute it with nyx (no sudo):

tor-nyx

Use the arrow keys to toggle through the displays. The m key opens a menu. Press q to quit Nyx.

About

A Tor Proxy plugin for RaspAP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages