모스 킷을 MQTT 브로커로 사용했는데, 연결 번호가 1000 이상이면 다음과 같은 로그가 출력됩니다. 아무도 이것에 대해 뭔가를 알고 있습니까?mosquitto가 tcpd에 의한 액세스를 거부했습니다.
1470896904: Client connection from 111.7.170.177 denied access by tcpd.
모스 킷을 MQTT 브로커로 사용했는데, 연결 번호가 1000 이상이면 다음과 같은 로그가 출력됩니다. 아무도 이것에 대해 뭔가를 알고 있습니까?mosquitto가 tcpd에 의한 액세스를 거부했습니다.
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* on 우분투).
이 오류 메시지가 나타나는 다른 이유가있을 수 있습니다. 클라이언트가 연결을 시도하고 액세스가 TCPD에 의해 거부 된 경우 동일한 메시지가 로그에 표시됩니다. 연결하려면 hosts.allow (내 경우에는 localhost 127.0.0.1)를 조정해야합니다.
이것은 정말로 논평입니다. 답이 아니라 전혀 문제가되지 않을 수도 있습니다. 조금 더 많은 담당자와 함께 [주석을 게시 할 수 있습니다] (// stackoverflow.com/privileges/comment). – Marc
최대 열린 파일 수는 1000000으로 연결 번호보다 훨씬 큽니다. –
@FengChris 모스키토가 실행되는 사용자 계정을 확인하십시오. 사용자 또는 사용자가 mosquitto.conf에 로그인되어 있습니까? 그런 다음 해당 사용자의 한계를 확인하십시오. – Kiran
필자는 수퍼바이저를 사용하여 모스키토를 시작했으며 수퍼바이저가 기본값으로 1024 개로 제한된 최대 열린 파일을 사용했습니다. '/ etc/supervisor/supervisord.conf '에'minfds = 1000000'을 추가하면이 문제를 해결할 수 있습니다. –