mosquitto 被 tcpd 拒绝访问

mosquitto denied access by tcpd

我用mosquitto做MQTT broker,好像连接数超过1000个,打印下面的日志。有人知道这件事吗?

1470896904: Client connection from 111.7.170.177 denied access by tcpd.

我觉得您的进程 (mosquitto) 已达到打开文件描述符的最大数量限制。通过 ulimit -n 检查您的最大打开文件数。然后将限制增加到您期望的最大连接数。例如。对于 10k 连接,它将是 ulimit -n 10000

关于 ulimit(1) 的说明。它仅针对当前终端设置,对于持久更改,您需要根据 Linux 风格编辑配置文件(/etc/security/limits.conf + /etc/pam.d/common-session* 在 Ubuntu ).

此错误消息可能还有其他原因。如果客户端尝试连接但访问被 TCPD 拒绝,则日志中将显示相同的消息。您需要调整 hosts.allow(在我的例子中是本地主机 127.0.0.1)才能连接。

我在使用 Ubuntu 14 和 mosquitto 1.6.3 时遇到了类似的问题,我通过这些更改解决了我的问题:

打开:/etc/init/mosquitto.conf 文件

exec前加上limit nofile 4096 4096

4096 indicate the number of clients

service mosquitto stop service mosquitto start

希望对遇到同样问题的其他人有所帮助。