Tôi đã làm theo hướng dẫn để định cấu hình Mosquitto trên CentOS 7, do đại dương số cung cấp. Tôi tin rằng tôi đã thiết lập chính xác hầu hết nội dung, tôi có thể làm theo tất cả các hướng dẫn bằng cách lặn sâu để tìm giải pháp cho một số hướng dẫn không được chấp nhận. Tuy nhiên, tôi có thể đăng ký và xuất bản tin nhắn cho một chủ đề khi tôi đăng nhập vào máy chủ của mình.
Tuy nhiên, tôi muốn truy cập nhà môi giới MQTT của riêng mình từ một ứng dụng khách khác với địa chỉ của máy chủ (duh). Tôi không thể kết nối, bất kể tôi cố gắng thế nào - Tôi cảm thấy nỗ lực kết nối không đến được nhà môi giới của mình (cả hai đều sử dụng trình xem trực tuyến như https://hobbyquaker.github.io/mqtt-admin/ và một cái được cài đặt cục bộ như Trình khám phá MQTT ).
Mosquitto.conf của tôi khá đơn giản và tôi đã đơn giản hóa nó nhiều hơn để cho phép kết nối ẩn danh, nhưng với TLS cho cả hai ổ cắm web qua cổng 8083 và (mặc định?) mqqt qua cổng 8883.
Toàn bộ tệp mosquitto.conf (cập nhật sau phản ứng của Halfgaar):
allow_anonymous đúng
#password_file /etc/mosquitto/passwd (Tôi đã tắt tính năng này để đơn giản hóa nỗ lực kết nối của mình)
tệp log_dest /var/log/mosquitto.log
log_type tất cả
người nghe 1883 máy chủ cục bộ
người nghe 8883 0.0.0.0
giao thức mqtt # mới được thêm vào, nhưng dường như vẫn không làm được gì
certfile /etc/letsencrypt/live/iot.mydomain.com/cert.pem
cafile /etc/letsencrypt/live/iot.mydomain.com/chain.pem
tệp khóa /etc/letsencrypt/live/iot.mydomain.com/privkey.pem
người nghe 8083 0.0.0.0
ổ cắm web giao thức
certfile /etc/letsencrypt/live/iot.mydomain.com/cert.pem
cafile /etc/letsencrypt/live/iot.mydomain.com/chain.pem
tệp khóa /etc/letsencrypt/live/iot.mydomain.com/privkey.pem
Sau đó, tôi nghĩ rằng tệp Mosquitto.conf mặc định chứa nhiều cài đặt hơn và đã sao chép một bản sao mới của cài đặt mặc định vào tệp cấu hình của mình và ở cuối tệp đã thêm cấu hình được đề cập ở trên. Vì vậy, bây giờ tôi có một cấu hình mặc định với các phần ghi đè ở trên. Khởi động lại dịch vụ mosquitto đã thành công.
Sau đó, tôi nghĩ rằng có lẽ nó có liên quan đến tường lửa. Tôi đã kiểm tra xem các cổng 1883, 8883 và 8083 đã được mở chưa tường lửa-cmd --zone=public -- Permanent --list-ports
và thấy rằng một phần của kết quả đó thực sự được báo cáo 8883/tcp 8083/tcp 1883/tcp
.
Tệp nhật ký được chỉ định không chứa bất kỳ thông tin nào cho các kết nối đã thử, vì vậy tôi không biết ở đó.
Ai đó có thể chỉ cho tôi một hướng để tìm thêm manh mối để giải quyết vấn đề này không?
Cập nhật Theo phản ứng của @Halfgaar:
Tôi đã cập nhật cấu hình có liên kết với các địa chỉ công khai (tôi chỉ lặp lại những gì anh ấy nói, tôi không biết), khi tôi chạy netstat -n -l -t -p
đầu ra dưới đây. Mặc dù tôi không thể kết nối với nhà môi giới từ máy tính xách tay của mình (hoặc bất kỳ nơi nào khác).
# netstat -n -l -t -p | grep muỗi
tcp 0 0 0.0.0.0:8883 0.0.0.0:* NGHE 2573/mosquitto
tcp 0 0 127.0.0.1:1883 0.0.0.0:* NGHE 2573/mosquitto
tcp6 0 0 :::8083 :::* NGHE 2573/mosquitto
tcp6 0 0 ::1:1883 :::* NGHE 2573/mosquitto
Cập nhật tôi cũng vậy vấp phải một quy tắc tường lửa điều đó khiến tôi nghĩ liệu mình có thể kết nối với giao thức mqtt hay không, do đó tôi cũng đã thực hiện tường lửa-cmd --zone=public -- Permanent --add-service=mqtt
và tải lại tường lửa.
tiến bộ nhỏ Tôi đã chuyển từ nhận lỗi Ngắt kết nối từ máy chủ
đến kết nối ETIMEDOUT 1.2.3.4:8883
(trong đó 1.2.3.4 là IP của máy chủ của tôi). Không chắc điều này có ý nghĩa gì về mặt tiến độ, nhưng tôi đang ở một nơi khác như nơi tôi đã ở trước đây...
Cập nhật Đầu ra cho iptables -L INPUT -n
là như sau:
# iptables -L INPUT -n
ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
CHẤP NHẬN tất cả -- 0.0.0.0/0 0.0.0.0/0 ctstate LIÊN QUAN, ĐÃ THÀNH LẬP
CHẤP NHẬN tất cả -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct tất cả -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE tất cả -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES tất cả -- 0.0.0.0/0 0.0.0.0/0
DROP tất cả -- 0.0.0.0/0 0.0.0.0/0 ctstate KHÔNG HỢP LỆ
TỪ CHỐI tất cả -- 0.0.0.0/0 0.0.0.0/0 từ chối với icmp-host-bị cấm
giải quyết
Có vẻ như tôi cũng có một tường lửa (phần mềm) khác trên VPS của mình mà tôi cũng phải định cấu hình. Khi tôi mở các cổng trong tường lửa đó, tôi đã có thể đăng nhập.