Score:0

ไม่สามารถเชื่อมต่อกับโบรกเกอร์ MQTT บนคลาวด์ที่โฮสต์ด้วยตนเองของฉัน

ธง cn

ฉันได้ทำตามคำแนะนำเพื่อกำหนดค่า Mosquitto บน CentOS 7 แล้ว ให้บริการโดยมหาสมุทรดิจิตอล. ฉันเชื่อว่าฉันได้ตั้งค่าส่วนใหญ่อย่างถูกต้องแล้ว ฉันสามารถทำตามคำแนะนำทั้งหมดด้วยการดำน้ำลึกเพื่อค้นหาวิธีแก้ไขสำหรับคำแนะนำบางส่วนที่เลิกใช้แล้ว แต่ฉันสามารถสมัครและเผยแพร่ข้อความในหัวข้อได้เมื่อฉันเข้าสู่ระบบเซิร์ฟเวอร์ของฉัน

อย่างไรก็ตาม ฉันต้องการเข้าถึงโบรกเกอร์ MQTT ของฉันเองจากลูกค้ารายอื่นที่ไม่ใช่ที่อยู่ของเซิร์ฟเวอร์ (duh) ฉันไม่สามารถเชื่อมต่อได้ไม่ว่าจะพยายามอย่างไร - ฉันรู้สึกว่าความพยายามในการเชื่อมต่อไม่ถึงนายหน้าของฉัน (ทั้งที่ใช้โปรแกรมดูออนไลน์เช่น https://hobbyquaker.github.io/mqtt-admin/ และติดตั้งในเครื่องเช่น โปรแกรมสำรวจ MQTT ).

mosquitto.conf ของฉันค่อนข้างเรียบง่าย และฉันทำให้ง่ายขึ้นเพื่อให้เชื่อมต่อแบบไม่ระบุชื่อได้ แต่ด้วย TLS สำหรับทั้งเว็บซ็อกเก็ตบนพอร์ต 8083 และ (ค่าเริ่มต้น?) mqqt บนพอร์ต 8883

กรอกไฟล์ mosquitto.conf (อัปเดตหลังจากปฏิกิริยาของ Halfgaar):

allow_anonymous จริง
#password_file /etc/mosquitto/passwd (ฉันได้ปิดใช้งานสิ่งนี้เพื่อทำให้ความพยายามในการเชื่อมต่อง่ายขึ้น)
ไฟล์ log_dest /var/log/mosquitto.log
log_type ทั้งหมด

ผู้ฟัง 1883 localhost

ผู้ฟัง 8883 0.0.0.0
โปรโตคอล mqtt # ที่เพิ่มเข้ามาใหม่แต่ยังไม่มีทีท่าว่าจะทำอะไร
ใบรับรองไฟล์ /etc/letsencrypt/live/iot.mydomain.com/cert.pem
cafile /etc/letsencrypt/live/iot.mydomain.com/chain.pem
ไฟล์คีย์ /etc/letsencrypt/live/iot.mydomain.com/privkey.pem

ผู้ฟัง 8083 0.0.0.0
เว็บซ็อกเก็ตโปรโตคอล
ใบรับรองไฟล์ /etc/letsencrypt/live/iot.mydomain.com/cert.pem
cafile /etc/letsencrypt/live/iot.mydomain.com/chain.pem
ไฟล์คีย์ /etc/letsencrypt/live/iot.mydomain.com/privkey.pem

ต่อมาฉันคิดว่าไฟล์ Mosquitto.conf เริ่มต้นมีการตั้งค่ามากกว่านี้ และคัดลอกการตั้งค่าเริ่มต้นใหม่ในไฟล์การกำหนดค่าของฉัน และที่ส่วนท้ายของไฟล์ได้เพิ่มการกำหนดค่าที่กล่าวถึงข้างต้น ตอนนี้ฉันมีการกำหนดค่าเริ่มต้นพร้อมการแทนที่ข้างต้น การรีสตาร์ทบริการ mosquitto สำเร็จ

จากนั้นฉันก็คิดว่ามันมีบางอย่างเกี่ยวกับไฟร์วอลล์ ฉันได้ตรวจสอบว่าพอร์ต 1883, 8883 และ 8083 เปิดผ่านหรือไม่ firewall-cmd --zone=public --permanent --list-ports และพบว่าส่วนหนึ่งของผลลัพธ์นั้นรายงานจริง 8883/tcp 8083/tcp 1883/tcp.

ไฟล์บันทึกที่ระบุไม่มีข้อมูลใด ๆ สำหรับการเชื่อมต่อที่พยายาม ดังนั้นฉันจึงมองไม่เห็น ใครช่วยชี้ทางให้ฉันเพื่อหาเบาะแสเพิ่มเติมในการแก้ปัญหานี้ได้ไหม

อัปเดต จากปฏิกิริยาของ @ Halfgaar: ฉันอัปเดตการกำหนดค่าด้วยการเชื่อมโยงกับที่อยู่สาธารณะ (ฉันแค่พูดซ้ำสิ่งที่เขาพูด ฉันไม่มีเงื่อนงำ) เมื่อฉันเรียกใช้ netstat -n -l -t -p ผลลัพธ์อยู่ด้านล่าง แม้ว่าฉันจะไม่สามารถเชื่อมต่อกับนายหน้าจากแล็ปท็อปของฉัน (หรือที่อื่น ๆ )

# netstat -n -l -t -p | grep ยุง
tcp 0 0 0.0.0.0:8883 0.0.0.0:* ฟัง 2573/mosquitto      
tcp 0 0 127.0.0.1:1883 0.0.0.0:* ฟัง 2573/mosquitto      
tcp6 0 0 :::8083 :::* ฟัง 2573/mosquitto      
tcp6 0 0 ::1:1883 :::* ฟัง 2573/mosquitto 

อัปเดต ฉันยัง สะดุดกับกฎไฟร์วอลล์ นั่นทำให้ฉันคิดว่าฉันจะสามารถเชื่อมต่อกับโปรโตคอล mqtt ได้หรือไม่ ดังนั้นฉันจึงดำเนินการด้วย firewall-cmd --zone=public --permanent --add-service=mqtt และโหลดไฟร์วอลล์ใหม่

ความคืบหน้าเล็กน้อย ฉันก้าวไปข้างหน้าจากการได้รับข้อผิดพลาด ตัดการเชื่อมต่อจากเซิร์ฟเวอร์ ถึง เชื่อมต่อ ETIMEDOUT 1.2.3.4:8883 (โดยที่ 1.2.3.4 คือ IP ของเซิร์ฟเวอร์ของฉัน) ไม่แน่ใจว่าหมายถึงอะไรในแง่ของความก้าวหน้า แต่ฉันอยู่ที่อื่นเหมือนที่ฉันเคยอยู่มาก่อน...

อัปเดต ผลลัพธ์สำหรับ iptables -L อินพุต -n มีดังนี้

# iptables -L อินพุต -n
เชนอินพุท (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง         
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ที่เกี่ยวข้อง ก่อตั้ง
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0           
INPUT_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0           
INPUT_ZONES_SOURCE ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0           
INPUT_ZONES ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0           
วางทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ไม่ถูกต้อง
ปฏิเสธทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-host-prohibited

แก้ไข ดูเหมือนว่าฉันยังมีไฟร์วอลล์ (ซอฟต์แวร์) อีกตัวบน VPS ของฉัน ซึ่งฉันต้องกำหนดค่าด้วย เมื่อฉันเปิดพอร์ตในไฟร์วอลล์นั้นด้วย ฉันก็สามารถเข้าสู่ระบบได้

ng flag
คุณสามารถโพสต์ผลลัพธ์ของ `iptabes -L INPUT -n` ได้หรือไม่ BTW: พอร์ตที่ปิดจะเป็นการปฏิเสธทันที โดยทั่วไปแล้วพอร์ตที่มีกำแพงกันไฟจะหมดเวลา
Ben Fransen avatar
cn flag
ขอบคุณสำหรับการตอบกลับของคุณ. ฉันได้อัปเดตโพสต์ของฉันด้วยผลลัพธ์
Score:0
ธง ng

คุณไม่ได้ผูกมัดกับอินเทอร์เฟซเครือข่ายสาธารณะของคุณ ถ้าคุณทำ netstat -n -l -t -p คุณสามารถดูได้ว่ากระบวนการที่อยู่ใดกำลังฟังอยู่

ทำ:

ผู้ฟัง 1883 0.0.0.0

ผู้ฟัง 8883 0.0.0.0
ใบรับรองไฟล์ /etc/letsencrypt/live/iot.mydomain.com/cert.pem
cafile /etc/letsencrypt/live/iot.mydomain.com/chain.pem
ไฟล์คีย์ /etc/letsencrypt/live/iot.mydomain.com/privkey.pem

ผู้ฟัง 8083 0.0.0.0
เว็บซ็อกเก็ตโปรโตคอล
ใบรับรองไฟล์ /etc/letsencrypt/live/iot.mydomain.com/cert.pem
cafile /etc/letsencrypt/live/iot.mydomain.com/chain.pem
ไฟล์คีย์ /etc/letsencrypt/live/iot.mydomain.com/privkey.pem
Ben Fransen avatar
cn flag
ขอบคุณสำหรับการตอบกลับของคุณ. ฉันพยายามทำตามแต่ยังเชื่อมต่อไม่ได้ข้อเสนอแนะใด ๆ ฉันได้อัปเดตคำถามของฉันด้วยผลลัพธ์จากการสืบค้น netstat ของคุณ
Ben Fransen avatar
cn flag
ข้อมูลเพิ่มเติม> ฉันเล่นซอเพื่อดูความแตกต่างทั้งที่มีและไม่มีการเชื่อมโยงกับ 0.0.0.0 แต่ผลลัพธ์ของ netstat ดูเหมือนจะไม่รบกวน - และแม้ว่าจะไม่มีการเชื่อมโยงกับ 0.0.0.0 ฉันเห็นพอร์ตโปรโตคอล websockets แสดงรายการด้วย netstat ด้วยความผูกพันไม่ปรากฏให้เห็น.
ng flag
@BenFransen มีรายการในบันทึก Mosquitto หรือไม่ ฉันแก้ไขคำตอบด้วย ผู้ฟังคนแรกควรเป็นพอร์ต 1883
Ben Fransen avatar
cn flag
ไม่มีบันทึกใด ๆ สำหรับความพยายามในการเชื่อมต่อที่ล้มเหลว รายการเดียวในบันทึกมาจากตอนที่ฉันสมัครและเผยแพร่ผ่าน SSH โดยตรงบนเซิร์ฟเวอร์ (ไม่ใช่จากภายนอกเซิร์ฟเวอร์)
Score:0
ธง cn

ฉันอยากจะขอบคุณ @Halfgaar สำหรับความช่วยเหลือและพยายามช่วยฉันแก้ไข ในขณะเดียวกัน ฉันยังได้ติดต่อฝ่ายสนับสนุนจากผู้ให้บริการโฮสติ้ง VPS ของฉันด้วย ปัญหาเกี่ยวข้องกับไฟร์วอลล์ แม้ว่าจะไม่ใช่ไฟร์วอลล์ที่เรากำลังสำรวจก็ตาม มีซอฟต์แวร์ไฟร์วอลล์อยู่ด้วย และฉันต้องเปิดพอร์ตที่นั่นด้วย (แน่นอน) ฉันไม่ทราบว่าฉันมีไฟร์วอลล์อื่นที่ใช้งานอยู่บน VPS ของฉันด้วย ฉันสามารถเข้าสู่ระบบโบรกเกอร์ของฉันได้แล้ว!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา