Mosquitto MQTT – 无法从外部客户端连接

好的,在过去的几天里,这已经让我陷入了一个循环。

信息

我有Mosquitto MQTT 1.4.10,启用了WebSocket并在Ubuntu Server 14.4上运行。 我局域网上的任何客户端都可以使用端口1883(mqtt)和9001(websockets)连接到代理,一切工作正常。 现在,我的DD-WRT路由器上还有一个公共IP地址和设置端口转发,以将1883和9001路由到服务器的地址。 我已禁用我的防火墙( sudo ufw禁用 ),并确认它被禁用。

问题

  1. 我把我的手机连接到运行到我本地WiFi的OwnTracks。 我input端口1883的MQTT服务器IP,它的工作原理。 我input端口1883的公共IP,它的工作原理。 然后我断开我的本地WiFi,所以我只是使用我的手机networking。 我尝试使用我的公共IP和端口1883再次连接,它不起作用。

检查我看到的日志:

New connection from <<external_ip>> on port 1883 Socket error on client <unknown>, disconnecting 

检查我的configuration文件,并在那里看起来很好:

 pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log log_type all include_dir /etc/mosquitto/conf.d listener 1883 protocol mqtt listener 9001 127.0.0.1 protocol websockets 

检查以确保Ubuntu正在侦听指定的端口:

 tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2216 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN tcp6 0 0 :::1883 :::* LISTEN tcp6 0 0 :::2216 :::* LISTEN 

最后一件让我难过的事情是,我可以使用任何连接到局域网或广域网的客户端的networking套接字连接9001。 我认为绑定到本地环回地址将允许它只接受来自其自身的连接。

关于如何让1883从我的局域网外部接受客户端的任何想法?