I'm currently running a Tor bridge on port 80 (for personal purposes, luckily no real needs). From what I can see in the obfs debug there's no connection other than mine, probably because the bridge is not (correctly) advertised on the Tor network (I guess).

I'm running it with a hack, because I couldn't find a better way to o so. Time ago I found an answer on SO which explained how to run a bridge on port 80 via iptables rules, and that's what I do and works fine. But since the Bridge is online it's a shame others cannot benefit from it.

This is my configuration:

RelayBandwidthRate 900 KB
RelayBandwidthBurst 1 MB
ExitPolicy reject *:* # no exits allowed
DisableDebuggerAttachment 0
SocksPort 0
ORPort 2000
ExtORPort auto
BridgeRelay 1
ServerTransportListenAddr obfs3
ServerTransportPlugin obfs3 proxy public_ip:80

When started Tor reports the ORPort as reachable, but that's not the obfuscated port. I guess many people can benefit from using a Bridge on port 80.

So two questions:

  1. is there a non hack-ish way to run a bridge on port 80? I did some tests in running Tor as root user, but other than being discouraged it was still not working because the control socket was still created as debian-tor user (on Ubuntu), and I stopped there.
  2. (more important) how can I advertise the bridge on port 80?

2 Answers 2


As per @canonizing comment I installed obfs4 proxy with the following config and it's published:

ExitPolicy reject *:*
#Bridge config
RunAsDaemon 1
ORPort 1234
BridgeRelay 1
ServerTransportPlugin obfs3,obfs4 exec /usr/local/bin/obfs4proxy managed
ServerTransportListenAddr obfs3 [::]:443
ServerTransportListenAddr obfs4 [::]:80
ExtORPort auto

PublishServerDescriptor is by default enabled on bridges.


I used to encounter such an odd behaviour too, try this in your torrc:

ClientOnly 0
PublishServerDescriptor bridge

the description of PublishServerDescriptor states as well:

PublishServerDescriptor 0|1|v3|bridge,…

This option specifies which descriptors Tor will publish when acting as a relay. You can choose multiple arguments, separated by commas. If this option is set to 0, Tor will not publish its descriptors to any directories. (This is useful if you’re testing out your server, or if you’re using a Tor controller that handles directory publishing for you.) Otherwise, Tor will publish its descriptors of all type(s) specified. The default is "1", which means "if running as a server, publish the appropriate descriptors to the authorities".

so this is a bit weird, I know, but it worked for me.

  • I will check. But will this publish the brige on the obfs3 port?
    – Maxxer
    Jan 24, 2017 at 23:21
  • Yes, according to your config directive ServerTransportPlugin obfs3 proxy public_ip:80 - the thing I'm proposing is actually a manual kickass for Tor to publish the descriptor as a bridge explicitly
    – Alexey Vesnin
    Jan 24, 2017 at 23:23
  • Settings ClientOnly 0 does nothing because they've set an ORPort, setting PublishServerDescriptor bridge does nothing because they've already set BridgeRelay 1. Wrong again, Alexey.
    – cacahuatl
    Jan 26, 2017 at 11:21
  • they should be set, you're correct, but in cases of bridge announcement problem the metod I proposed helped twice.
    – Alexey Vesnin
    Jan 26, 2017 at 12:35
  • anyway it didn't work
    – Maxxer
    Feb 8, 2017 at 8:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .