ฉันมี glassfish 6 ที่ทำงานบน VPS (เครื่องเดียว) และฟังพอร์ต http:8080 และ https:8081 การรวมพอร์ตถูกเปิดใช้งานเพื่อให้ 8080 ถูกส่งไปยัง 8081
บน VPS ของฉัน ฉันใช้ ufw และได้กำหนดค่าการส่งต่อ/เปลี่ยนเส้นทางพอร์ตจาก 80 -> 8080 และ 443 -> 8081:
#การส่งต่อพอร์ต
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8081
-A PREROUTING -p udp -m udp --dport 443 -j REDIRECT --to-ports 8081
ใช้งานได้เฉพาะเมื่อฉันเปิดพอร์ต 8080 และ 8081 บน ufw เช่นกัน
เป็นไปได้หรือไม่ที่จะส่งต่อในเครื่อง (ของแพ็คเกจระยะไกล) ไปยังพอร์ต 8080/8081 ของฉันโดยไม่ต้องเปิดพอร์ตเหล่านี้ใน ufw ด้วย จากภายนอกควรมองเห็น/เปิดเพียง 80 และ 443 เท่านั้น
ฉันลองใช้กฎนี้เช่นกัน:
-A PREROUTING -i venet0:0 -p tcp --dport 443 -j DNAT --to-ปลายทาง 127.0.0.1:8081
ด้วยการส่งต่อด้านบนก็ใช้งานได้เช่นกัน แต่พอร์ต 8081 จะต้องเปิดอยู่บน ufw
ฉันพบสิ่งนี้เพื่ออนุญาตให้ส่งแพ็คเกจระยะไกลไปยังอินเทอร์เฟซในเครื่องด้วย:
sysctl -w net.ipv4.conf.venet0.route_localnet=1
สิ่งนี้ใช้ไม่ได้เช่นกันเมื่อ 8080 และ 8081 ปิดบน ufw