> It's reasonable if you don't use distributed Erlang.

Not sure I understand. When I ran "apt install ejabberd", it
auto-installed Erlang via apt.


> I can reproduce this, as far as I investigated, it is caused by the option
> BindIPv6Only=both
> in the socket file. When systemd binds to IPv6 address, it also listens to 
> IPv4
> packets, which makes address already in use.

I was finally able to listen on "127.0.0.1" only, because opening 4369
publicly is asking for trouble[1].

# ss -tulpn|grep epmd
tcp   LISTEN 0      4096       127.0.0.1:4369       0.0.0.0:*   
users:(("epmd",pid=2370007,fd=3),("systemd",pid=1,fd=199))

To do this, I had to:

1. Run: systemctl edit epmd.socket
2. Add 2 lines line this:

### Editing /etc/systemd/system/epmd.socket.d/override.conf
### Anything between here and the comment below will become the contents
of the drop-in file

[Socket]
ListenStream=
ListenStream=127.0.0.1:4369

### Edits below this comment will be discarded

3. Run: systemctl restart epmd epmd.socket


> Anyway, I don't think that's a bug in epmd.socket. It works as intended.

I think there is a bug because when I edit like below, epmd failed to
restart.

[Socket]
ListenStream=127.0.0.1:4369

I need to add "ListenStream=" - unsure if this is a correct fix but some
people mentioned this on other forums.




[1] website "4369 Pentesting Erlang Port Mapper Daemon (epmd)"

Reply via email to