ฉันมีแอปพลิเคชัน nodejs สองตัว (เซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B) ที่ทำงานบน Ubuntu Server 16.04 และไคลเอนต์สองตัว (ไคลเอนต์ A และไคลเอนต์ B) ที่ส่งคำขอไปยังเซิร์ฟเวอร์นั้น
เซิร์ฟเวอร์ A รับฟังคำขอจากลูกค้า A บนพอร์ต TCP 3000 และทุกอย่างทำงานได้ดี
เซิร์ฟเวอร์ B รับฟังคำขอจากไคลเอนต์ B บนพอร์ต 3001 ในกรณีนี้ ไคลเอ็นต์ B ไม่สามารถเชื่อมต่อได้ (ข้อผิดพลาด: หมดเวลาการเชื่อมต่อ)
ถ้าเซิร์ฟเวอร์ B ได้รับการกำหนดค่าให้ให้บริการบนพอร์ต 3000 ไคลเอนต์ B ทำงานได้ดี แต่ไคลเอนต์ A ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ A บนพอร์ต 3001
ไม่ว่าฉันจะลองใช้พอร์ตใด แอปพลิเคชันจะทำงานบนพอร์ต 3000 เท่านั้น
การทดสอบจาก localhost:
lsof -i -P -n | ฟัง
node\x20/ 1409 รูท 23u IPv6 18686 0t0 TCP *:3001 (LISTEN)
node\x20/ 1764 รูท 23u IPv6 24445 0t0 TCP *:3000 (LISTEN)
root@localhost:~# nmap localhost
บริการของรัฐพอร์ต
22/tcp เปิด ssh
25/tcp เปิด smtp
53/tcp เปิดโดเมน
80/tcp เปิด http
110/tcp เปิด pop3
143/tcp เปิด imap
443/tcp เปิด https
3000/tcp เปิดหน้า
3001/tcp เปิด nessus
3306/tcp เปิด mysql
8080/tcp เปิด http-proxy
การทดสอบจากเครื่องระยะไกล:
nmap -P0 82.223.25.XXX
บริการของรัฐพอร์ต
22/tcp เปิด ssh
80/tcp เปิด http
443/tcp เปิด https
3000/tcp เปิดหน้า
8080/tcp เปิด http-proxy
nmap -p 3001 82.223.25.XXX
บริการของรัฐพอร์ต
เนสซัสที่ผ่านการกรอง 3001/tcp
root@localhost:~# iptables -L
เชนอินพุท (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
ยอมรับ tcp -- ที่ไหนก็ได้ tcp dpt:3001
ส่งต่อไปข้างหน้า (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
Chain OUTPUT (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
root@localhost:~# สถานะ ufw
สถานะ: ไม่ได้ใช้งาน
ฉันพยายามเปิดพอร์ตโดยใช้ ufw ไม่สำเร็จ