skip to Main Content

My setup is:

  • Debian, Docker
  • Host machine running Protonmail Bridge as a service
  • Docker container running Discourse with their default recommended setup

Issue: From the Docker container, I cannot connect to the SMTP server exposed by the Protonmail Bridge on the host machine.

I checked open ports on the host machine, all good:

ss -plnt
State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN   0      4096       127.0.0.1:1025      0.0.0.0:*    users:(("proton-bridge",pid=953,fd=12))

How I test

Host machine:
openssl s_client -connect 127.0.01:1025 -starttls smtp
Works.

Docker container:
openssl s_client -connect 172.17.0.1:1025 -starttls smtp
Connection refused.

I’m wondering if the Protonmail Bridge service that’s listening on 127.0.0.1:1025 is not accepting connections from the Docker container because they are not coming from 127.0.0.1 exactly? If this is the problem, how to validate and fix? If this is not the problem, what am I doing wrong?

Other tests

nmap 127.0.0.1 on the host machine outputs:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
1025/tcp open  NFS-or-IIS
1042/tcp open  afrog

Note that it lists the open port 1025.

nmap 172.17.0.1 in the docker container does not output any 1025 port. I’m not sure if this is the problem either.

Output of route in the Docker container:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.17.0.1      0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

2

Answers


  1. This may be impossible currently, but should be solved by this pull request.

    Login or Signup to reply.
  2. If you’re comfortable compiling the proton-bridge package from source, you only have to change 1 line in the internal/bridge/constants.go file to say

    Host = '127.0.0.1'
    

    To

    Host = '0.0.0.0'
    

    Then recompile with make build-nogui (to build the "headless" version).

    And you should be good to go!

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search