码头工人端口映射不转发流量

时间:2018-10-31 20:06:43

标签: docker asterisk freepbx

我尝试使用此容器:https://hub.docker.com/r/tiredofit/freepbx/

为此,我创建了此撰写文件: https://pastebin.com/CkL1y0jd

我已将端口80代理到我的内部IP 172.20.0.45。这很好。但是无法从外部访问端口5160。

我已经在Docker主机上运行了

ngrep -W byline -d eno1 port 5160

这给了我以下输出:

U 192.168.30.22:54194 -> 192.168.50.20:5160
REGISTER sip:pbx.UsualyMyDomain.ch:5160;transport=UDP SIP/2.0.
Via: SIP/2.0/UDP 212.XX.XX.XXX:54194;branch=z9hG4bK-524287-1---9bb8a42e6116af86;rport.
Max-Forwards: 70.
Contact: <sip:120@212.XXX.XXX.XXX:54194;rinstance=c4ebbf8b0a8fd276;transport=UDP>.
To: "4141XXXXXXX"<sip:120@pbx.UsualyMyDomain.ch:5160;transport=UDP>.
From: "4141XXXXXXX"<sip:120@pbx.UsualyMyDomain.ch:5160;transport=UDP>;tag=b4afdd24.
Call-ID: uXyh0WASXl2Cpp3oD0RYtw...
CSeq: 2 REGISTER.
Expires: 60.
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE.
User-Agent: Zoiper rv2.9.RC37-15-g9fc1f76ee4.
Allow-Events: presence, kpml, talk.
Content-Length: 0.

但是,如果我在容器中运行上述命令,那么我什么也没有得到:

ngrep -W byline -d eno1 port 5160
interface: eno1 (172.20.0.0/255.255.255.0)
filter: (ip or ip6) and ( port 5160 )

那我现在必须在哪里寻找问题?

netstats -tln 

显示:

tcp6       0      0 :::5160                 :::*                    LISTEN      13316/docker-proxy

但没有UDP6或UDP。

可能是问题吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

问题解决了!

对于所有发现类似问题的人。 阅读:http://bhashitparikh.com/2016/02/03/when-port-forwarding-didnt-work-in-docker.html

问题之一是您必须在SIP-CHAN设置下插入Docker IP作为绑定地址。然后还使用static-ip并输入您的docker ip。

最后但并非最不重要的一点,将其添加到撰写文件中:

  • 5160:5160 / udp
  • 5060:5060 / udp

否则,它将仅侦听TCP通信! 现在可以了:)