Set up Clash Client on Your Raspberry Pi 4

Kevin Li
3 min readAug 6, 2021

There are many tutorials out there on how to set up a Raspberry Pi 4 as a Clash server. However, in my case, I’m using the Pi as a desktop replacement. After some research, I noticed that most Clash clients like Clash for Windows and ClashX do not support Raspberry Pi. However, Clash does conveniently provide release binary for Linux systems on armv7, which matches our Pi 4. So let’s get cranking!

What You Need

  • Raspberry Pi 4 Model B
  • Raspberry Pi OS (or any OS based on it, like TwisterOS)
  • Internet connection (through Ethernet or WiFi)

I have tested Clash using the above setup and it worked reliably. Feel free to try it on earlier/later models of Pi or on different operating systems. Clash is versatile enough to support various system configurations. Just keep in mind that you need to look for the appropriate release binary for your system.

Download Clash

Clash is an open-source rule-based tunnel hosted on GitHub. You can download it here: https://github.com/Dreamacro/clash/releases.

Under the latest release’s assets section, click on “clash-linux-armv7-va.b.c.gz” to download the binary, where va.b.c is is the latest version number.

Extract the downloaded binary to a convenient location. For me, it’s my home directory. Rename the binary to be “clash”, so we can refer to it more easily in the terminal.

Configure Clash

Download the Clash configuration file from your VPN service provider. It should be a YAML file with a .yml file extension. Put the YAML file at this location as the default Clash configuration:

$HOME/.config/clash/config.yaml

Configure System Proxy

Please follow this official guide by the Pi Foundation on how to configure your system proxy. I’m going to highlight the important bits here:

  1. Edit environment variables
$ sudo nano /etc/environment

Add the following three lines at the end of the file:

export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export no_proxy="localhost, 127.0.0.1"

2. Enable proxy for sudo operations

$ sudo visudo

Add the following line to the file:

Defaults    env_keep+="http_proxy https_proxy no_proxy"

3. Reboot your Pi to take effect

Run Clash!

In the terminal, navigate to the parent folder of your Clash binary.

  1. Give Clash execution permission
sudo chmod +x clash

2. Run clash

sudo clash

You should see a bunch of information messages printed on the terminal. DO NOT close the terminal because otherwise, Clash will stop running.

Manage Clash

You can manage Clash proxies, rules, logs, and connections on one of the two web dashboards:

I personally prefer the aesthetics of yacd but both work fine.

Run Clash at Startup

Open Startup Applications or similar on your system settings, add the following command to autostart Clash on startup:

sudo ~/clash

The path depends on where you put Clash. Mine is located under the home directory.

Congrats!

Now, you have Clash successfully set up on your Raspberry Pi 4!

--

--

Kevin Li

❤️ Open Source, Web Dev, programming languages, and Hanzi 漢字