พอร์ตส่งต่อไปยังพอร์ตบนเครื่องเดียวกัน


24

ฉันเคยเรียกใช้บริการบนพอร์ต 25570 ตอนนี้ฉันกำลังเปลี่ยนให้ทำงานบนพอร์ต 25565 แต่ฉันยังต้องการคนที่พยายามเข้าถึงบนพอร์ตเก่าเพื่อเข้าถึงบริการ ดังนั้นฉันต้องการส่งต่อพอร์ต 25570 ถึง 25565 บนเครื่องเดียวกัน

ฉันรู้ว่ามีคำถามมากมายที่พูดคุยเกี่ยวกับการส่งต่อไปยังเครื่องอื่น แต่ฉันสงสัยว่าวิธีการนั้นแตกต่างกันเมื่อใช้เครื่องเดียวกันหรือไม่?

คำตอบ:


27
iptables -t nat -A PREROUTING -p tcp --dport 25570 -j REDIRECT --to-port 25565

สิ่งนี้ถือว่าคุณไม่ได้กำหนดเส้นทางการรับส่งข้อมูลสำหรับเครือข่ายทั้งหมดผ่านช่องนี้และหากคุณไม่มีความคาดหวังว่าการรับส่งข้อมูลที่กำหนดไว้สำหรับโฮสต์อื่นจะอยู่ในพอร์ตนั้น


3
สิ่งนี้จะถูกยกเลิกได้อย่างไร
Marco Lavagnino

1
digitalocean.com/community/tutorials/ … - ถามคำถามแยกต่างหาก
RobotHumans

22

เป็นเรื่องน่าสังเกตว่าคำตอบที่ยอมรับนั้นจะใช้กับโฮสต์เครือข่ายอื่นที่เชื่อมต่อกับเครื่องที่ใช้ iptables เท่านั้น ไม่เปลี่ยนเส้นทางพอร์ตสำหรับไคลเอ็นต์ที่ทำงานบนเครื่อง iptables พยายามเชื่อมต่อกับพอร์ต 25570 (ตัวอย่าง)

รายการเหล่านี้จะส่งต่อพอร์ตสำหรับการเชื่อมต่อที่มาจากเครือข่ายหรือจากโฮสต์ท้องถิ่นที่ใช้บริการ

sudo iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 443 -j REDIRECT --to-ports 8443

1
ขอบคุณสำหรับสิ่งนี้! หากไม่มีการเพิ่มนี้ฉันจะไม่สามารถรับกล่อง Vagrant ของฉันเพื่อร้องขอไซต์ที่ให้บริการโดยใช้พอร์ตเดียวกันภายใน (ไปยังเครื่องโฮสต์) เช่น HOST = localhost: 9000 และตอนนี้แขก = localhost: 9000 (ซึ่ง เส้นทางไป: 80)
Pebbl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.