Running a bridge on a raspberry pi 4

Hello, I bought a raspberry pi 4 8gb with the intention to provide a bridge to the community, that can run 24/7 in my home network and with little power.

cat /etc/os-release
PRETTY_NAME=“Raspbian GNU/Linux 10 (buster)”

I followed the instructions here:
https://community.torproject.org/relay/setup/bridge/debian-ubuntu/

tor --version
Tor version 0.3.5.15 (This is supposed to be higher ?!)

When trying to run
sudo systemctl enable --now tor@default
Ill get:

The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.

Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit’s
.wants/ or .requires/ directory.
• A unit’s purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, …).
• In case of template units, the unit is meant to be enabled with some
instance name specified.

ls /lib/systemd/system | grep tor
alsa-restore.service
tor@default.service
tor.service
tor@.service

I tried the same on my ubuntu desktop VERSION=“18.04.6 LTS (Bionic Beaver)” to compare things. I get the same error and the tor version is even older. I didnt forget to run apt update both times.

Did you follow the instructions here:

https://support.torproject.org/apt/tor-deb-repo/

1 Like

No thank you, would be great to mention this here: Tor Project | Debian / Ubuntu

So as of
dpkg --print-architecture
armhf

Ill have to decide to either build from source or choose a different os.
Ill report back here.

tor@default.service has tor.service as it’s multi-instance-master, tor.service takes care of all the tor instances. You want sudo systemctl enable --now tor

1 Like

Hello guys, do you know if there is some way to run bridges on old phones. I have some and tried using them as http servers with root and they all worked, but I can not get information about running bridges on them. Thanks

1 Like

There is an arm64 version of debian for raspberry pi.
I have it installed on mine and running a bridge successfully without a compile from source.
It’s here - Index of /raspios_arm64/images/raspios_arm64-2020-08-24

1 Like

Sorry, most recent version of buster here
https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/

(there’s a few 64 bit images at that link, I’m sure you will figure it out)

I don’t mean to pick nits, but Raspbian/RaspiOS is not Debian-- just the same that Ubuntu is not Debian. The builds/repos are different and Raspbian has even gotten architecture naming screwed up (see: armhf on Raspbian is not the same thing as armhf on Debian) … this has led to people trying to use Debian packages from Raspbian and finding out they don’t work.

I’m not sure about Raspi’s packaging of tor, but I know that Ubuntu’s repo has not been good about keeping up. In the case of Ubuntu it’s certainly better to use Tor Project’s repo until Ubuntu establishes a better track record of updating tor.

If the only intent for the rpi4 target is to run a bridge, Debian with Tor Project’s repo seems like the best bet. Unless there’s something drastically wrong with Debian on Raspberry Pis that I’m not aware of.

2 Likes

Thank you, yes I wanted to go for the raspberry 64 bit os, but rather bullseye I think.

So, I now use arm64
PRETTY_NAME=“Debian GNU/Linux 11 (bullseye)”
NAME=“Debian GNU/Linux”
VERSION_ID=“11”
VERSION=“11 (bullseye)”

When trying to apt update Im getting:

E: The repository 'https://deb.torproject.org/torproject.org bullseye Release' does not have a Release file.

But its there and the codename is most likely correct. :thinking:

Maybe this https://unix.stackexchange.com/questions/371890/debian-the-repository-does-not-have-a-release-file will help you.

Full disclosure: I do not run any debian/debian-derived systems currently.

1 Like

There is a bullseye: https://deb.torproject.org/torproject.org/dists/bullseye/, there is a Release file in it. What is your apt source for deb.torproject.org?

1 Like

Thank you, but it was much more dumb, I was supposed to replace <DISTRIBUTION> to bullseye, not <bullseye> :see_no_evil: :see_no_evil:

Alright, now I got version 0.4.6.8.

But even before adding the repository manually, I could have installed
tor | 0.4.5.10-1~deb11u1
unlike before when I used the raspios buster armhf release.

1 Like

If docker is an option there is a docker image for arm64:
https://community.torproject.org/relay/setup/bridge/docker/

2 Likes

Just a little bit nit picky, but I feelz ya!
I didn’t really want to get into the distro thing just trying to help out someone do what I just did, but I was running 10 and not 11 as I already had the unit doing other stuff on my LAN.

Nice one, I’ve been looking around the site and based on some of the posts I’ve seen I think I may consider getting BSD running on another Pi4 and patch that to my 2nd WAN link for another bridge. A project for the Christmas break, possibly.

1 Like

Thank you alot !

So far I stuck with

Unable to find IPv4 address for ORPort 443. You might want to specify IPv6Only to it or set an explicit address or set Address.

I used the flag IPv4Only, otherwise I would get the same message but telling me it couldnt find ipv6 address and I might want to specify IPv4Only.

This didnt help me:

I also deactivated ipv6 in my os for that.

I there any common thing I need to set in my router when setting up a relay ?
Ipv6 is deactivated by default in my router, but I dont know what else to consider doing that so I wanted to ignore it first. I dont like activating things I dont actually comprehend.

If your relay is running on a internal net, you need to setup port forwarding. Check this https://portforward.com/ for directions on how to port forward with your NAT/router device.

If you have only a dynamic IP address, maybe you should run a Standalone snowflake proxy: Tor Project | Standalone Snowflake proxy

If your relay is running on a internal net, you need to setup port forwarding. Check this https://portforward.com/ for directions on how to port forward with your NAT/router device.

Thanks I found that in my router but wasnt sure If I actually need to do something there.

If you have only a dynamic IP address, maybe you should run a Standalone snowflake proxy: Tor Project | Standalone Snowflake proxy

Doesnt every common home network user have only a dynamic public ip address ?
I checked my isp, its a thing only available for office contracts.
I havent seen it changes for a couple days now, I dont know the lifecycle but its not like every hour.

Why cant tor check if there is a new public ip and if yes restart all steps and re-release the server automatically on the same identity ?
When bridges are blacklisted for whatever reason, dont they need to restart with a new address anyways ?