How do I use WebTunnel with little-t tor on Debian?

Hello,

I have installed Tor on Debian 12 and now I want to use WebTunnel to connect to the Tor network. Unfortunately I could not find a detailed and correct tutorial. Please guide me.

Thank you.

Hello,

does this guide help? Tor Project | WebTunnel Bridge

1 Like

Hello,

Do I need to reserve a domain name? If yes, then I also need to have a DNS server. Something like a web server.

Do you want to provide a webtunnel bridge or do you want to use tor as a client and connect to tor using a webtunnel bridge?

1 Like

The Tor client requires you to set a few lines in the torrc to be able to use bridges.

For security you can make sure to have your Tor version at the latest one. For that it’s best to add the Tor Project repo to your apt.

Then go to Tor Project | Download Tor and download the Stable version of the “Tor Expert Bundle” for your dist/architecture. Unpack the downloaded file and and in the pluggable_transports folder find lyrebird. Lyrebird is the bridge plugin for Tor. Save the path of the lyrebird executable or move it where you want. pwd(to find out the current dir) Then in your Tor torrc settings, add these lines:

UseBridges 1

ClientTransportPlugin webtunnel exec /path/to/lyrebird

Bridge webtunnel… (the rest of the bridge line, before the webtunnel bridge line include “Bridge”, as shown.)

But if you download lyrebird that way, then you’d have to occasionally update it by following the same download process for lyrebird. (for new features, bug fixes, etc…)

1 Like

Hello,

I just want to use it as a client.

Hello,

I installed the Tor via apt install tor. Can I install the lyrebird via apt command also?

No, most linux dist packages don’t have lyrebird, you either have to install it by following my previously mentioned method, or compile it yourself: The Tor Project / Anti-censorship / Pluggable Transports / lyrebird · GitLab

1 Like

Hello,

Is lyrebird built for Windows OS also?

Hello,
I extracted the lyrebird file from the Tor Expert Bundle and copied it to /usr/bin/:

# ls -l /usr/bin/lyrebird

-rwx------ 1 root root 17502500 Feb  9 09:56 /usr/bin/lyrebird

Then I changed the torrc file as follows:

UseBridges 1
ClientTransportPlugin webtunnel exec /usr/bin/lyrebird
‌Bridge webtunnel…

Then, I reloaded tor:

# systemctl reload tor

The Tor logs are as follows:

Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:24.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:25.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:26.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:28.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:29.000 [notice] Received reload signal (hup). Reloading config and resetting internal state.
Feb 09 10:10:29.000 [notice] Read configuration file “/usr/share/tor/tor-service-defaults-torrc”.
Feb 09 10:10:29.000 [notice] Read configuration file “/etc/tor/torrc”.
Feb 09 10:10:29.000 [notice] Tor 0.4.8.16 opening log file.
Feb 09 10:10:29.000 [warn] Managed proxy “N/A” process terminated with status code 256
Feb 09 10:10:29.000 [warn] Managed proxy “/usr/bin/lyrebird” process terminated with status code 256
Feb 09 10:10:29.000 [err] tor_assertion_failed_(): Bug: ../src/feature/client/transports.c:520: proxy_prepare_for_restart: Assertion mp->conf_state == PT_PROTO_COMPLETED failed; aborting. (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: Tor 0.4.8.16: Assertion mp->conf_state == PT_PROTO_COMPLETED failed in proxy_prepare_for_restart at ../src/feature/client/transports.c:520: . Stack trace: (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(log_backtrace_impl+0x5d) [0x5604b548d7bd] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(tor_assertion_failed_+0x14b) [0x5604b5498a8b] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(+0xc9532) [0x5604b5469532] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(+0xcb2ab) [0x5604b546b2ab] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(process_notify_event_exit+0x4d) [0x5604b54a36cd] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(notify_pending_waitpid_callbacks+0xff) [0x5604b54a51df] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /lib/x86_64-linux-gnu/libevent-2.1.so.7(+0x219de) [0x7f679eaf19de] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /lib/x86_64-linux-gnu/libevent-2.1.so.7(event_base_loop+0x49f) [0x7f679eaf213f] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(do_main_loop+0xf5) [0x5604b5411995] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(tor_run_main+0x1e5) [0x5604b540d235] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(tor_main+0x5b) [0x5604b540956b] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(main+0x1d) [0x5604b54090fd] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /lib/x86_64-linux-gnu/libc.so.6(+0x29ca8) [0x7f679df6aca8] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7f679df6ad65] (on Tor 0.4.8.16 )
Feb 09 10:10:29.000 [err] Bug: /usr/bin/tor(_start+0x21) [0x5604b5409151] (on Tor 0.4.8.16 )
Feb 09 10:10:30.000 [notice] Tor 0.4.8.16 opening log file.
Feb 09 10:10:30.392 [warn] OpenSSL version from headers does not match the version we’re running with. If you get weird crashes, that might be why. (Compiled with 30400010: OpenSSL 3.4.1 11 Feb 2025; running with 30500040: 3.5.4).
Feb 09 10:10:30.397 [notice] Tor 0.4.8.16 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.5.4, Zlib 1.3.1, Liblzma 5.8.1, Libzstd 1.5.7 and Glibc 2.41 as libc.
Feb 09 10:10:30.397 [notice] Tor can’t help you if you use it wrong! Learn how to be safe at Tor Browser best practices - Security - Tor Browser — Tor
Feb 09 10:10:30.397 [notice] Read configuration file “/usr/share/tor/tor-service-defaults-torrc”.
Feb 09 10:10:30.397 [notice] Read configuration file “/etc/tor/torrc”.
Feb 09 10:10:30.402 [notice] You configured a non-loopback address ‘172.20.2.54:9050’ for SocksPort. This allows everybody on your local network to use your machine as a proxy. Make sure this is what you wanted.
Feb 09 10:10:30.402 [notice] Opening Socks listener on 172.20.2.54:9050
Feb 09 10:10:30.402 [notice] Opened Socks listener connection (ready) on 172.20.2.54:9050
Feb 09 10:10:30.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Feb 09 10:10:30.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Feb 09 10:10:31.000 [notice] Bootstrapped 0% (starting): Starting
Feb 09 10:10:31.000 [notice] Starting with guard context “bridges”
Feb 09 10:10:31.000 [notice] Delaying directory fetches: No running bridges
Feb 09 10:10:31.000 [notice] Signaled readiness to systemd
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.
Feb 09 10:10:31.000 [notice] Application request when we haven’t used client functionality lately. Optimistically trying known bridges again.

Where is the problem?

Thank you.

1 Like

Sorry, it seems like I left it out in my previous post. Try adding managed to the end of your ClientTransportPlugin line. It seems to be important for systemd.

ClientTransportPlugin webtunnel exec /usr/bin/lyrebird managed

It also looks like you have an outdated version of Tor (most likely because of your apt repo), there you can install/update Tor from the official package repo. That doesn’t affect the WebTunnel, but it affects your security and privacy. Keep in mind that you might have to use proxychains or torsocks to install/update Tor via the official repo, since it might be blocked for you.

Hello,

Thanks again. The Tor version is:

# tor --version

Tor version 0.4.8.16.
This build of Tor is covered by the GNU General Public License (
)
Tor is running on Linux with Libevent 2.1.12-stable, OpenSSL 3.5.4, Zlib 1.3.1, Liblzma 5.8.1, Libzstd 1.5.7 and Glibc 2.41 as libc.
Tor compiled with GCC version 14.2.0

I updated the line as follows:

ClientTransportPlugin webtunnel exec /usr/bin/lyrebird managed

But, I got the same error!!!

1 Like

Find out more about setting permissions here. At least make it so the Tor-daemon user was able to execute lyrebird.

Don’t forget to update your Tor version!

Yes, you might have figured that out.

Make sure lyrebird is executable.

It’s just as if lyrebird isn’t even getting started…

Oh wait, you have lyrebird executable only by root, as you mentioned before, that’s bad. That means that Tor can’t execute it. You have to modify the file permissions to fix that.