เซิร์ฟเวอร์ / บริการหลายตัวบนเครือข่ายในบ้านและวิธีการเข้าถึงผ่านชื่อโฮสต์


1

ฉันอยู่ในช่วงเริ่มต้นของการตั้งค่าเครือข่ายในบ้านของฉัน ในที่สุดฉันก็เพิ่งสร้างเครื่องจักรที่ทันสมัย ​​(AMD FX-4100) เพื่อใช้เป็นเซิร์ฟเวอร์ ด้วยเหตุนี้ฉันเริ่มเล่นกับ Virtualization และบริการอื่น ๆ อีกมากมายกว่าที่ฉันเคยมีมา

หนึ่งในเป้าหมายหลักของฉันคือการทำให้ทุกอย่างเป็นเรื่องง่ายและอุปสรรคหนึ่งคือทำให้สิ่งต่าง ๆ สามารถเข้าถึงได้อย่างง่ายดายผ่านเว็บเบราว์เซอร์จากภายใน LAN และผ่านทางอินเทอร์เน็ต

ฉันเรียกใช้บริการต่อไปนี้:

  • เซิร์ฟเวอร์สื่อที่มี subsonic
  • webmin สำหรับการตั้งค่า
  • หน้าการกำหนดค่า mediatomb
  • FTP
  • HTTP

ในอนาคตอาจมีมากขึ้น (เช่น: media.domain.com, ftp.domain.com, config.domain.com และในที่สุดก็สามารถทำสิ่งต่างๆเช่นพูด VNC ไปยังแต่ละเครื่องเช่น vnc.machine1.domain com, vnc.winserver.domain.com เป็นต้น)

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

นอกจากบริการต่าง ๆ เป็นไปได้ว่าฉันจะเรียกใช้บริการบนเครื่องมากกว่าหนึ่งเครื่องโดยเฉพาะอย่างยิ่ง http และ ftp เนื่องจากฉันมี Windows Server ที่ใช้ทดสอบแอปพลิเคชัน ASP.NET ของฉันโดยเฉพาะ

มีวิธีใดที่เป็นไปได้ทางเทคนิคในการทำเช่นนี้โดยไม่ต้องซื้อฮาร์ดแวร์ใหม่หรือเปลี่ยนการเชื่อมต่ออินเทอร์เน็ตของฉันให้มี IP สาธารณะมากกว่า 1 ตัว? ฉันยินดีที่จะเรียกใช้เครื่องแยกเพื่อส่งต่อคำขอ (โดยเฉพาะถ้าฉันสามารถเรียกใช้เป็น VM หรือบน Raspberry Pi ของฉัน)

คำตอบ:


1

การรวมกันของ IP และหมายเลขพอร์ตแต่ละชุดไม่ซ้ำกัน

หากคุณมี IP สาธารณะเท่านั้นและต้องการที่จะทำสิ่งเหล่านี้จากนอก LAN ของคุณคุณต้อง:

  1. กำหนดค่าโปรแกรมทั้งหมดเพื่อให้พอร์ตทั้งหมดไม่ซ้ำกัน (และทำให้ IP: พอร์ตไม่ซ้ำกัน)
  2. หรือตามที่คุณเขียนได้รับ IP สาธารณะเพิ่มเติมจาก ISP ปัจจุบันของคุณ

หากเครือข่ายของคุณเข้าใจIPv6 แสดงว่าคุณมีตัวเลือกเพิ่มเติม

สุดท้ายจะเป็นวิธีที่ฉันชอบ แต่แม้หลังจากใช้งาน IPv6 มานานกว่าทศวรรษแล้วก็ยังมีโปรแกรมที่ไม่สนับสนุนอย่างสง่างาม มันยังหมายความว่าคุณยังมีอีกสิ่งหนึ่งในการเรียนรู้และเพิ่มความซับซ้อน


ฉันคิดว่าสิ่งส่วนใหญ่ของฉันรองรับ IPv6 อย่างน้อยเซิร์ฟเวอร์ก็ทำ ฉันไม่แน่ใจเกี่ยวกับ ISP ของฉันฉันจะต้องตรวจสอบ (Time Warner ใน Akron, Ohio) ฉันกลัวว่าคุณกำลังบอกว่าฉันยังต้องพิมพ์ชื่อโฮสต์: พอร์ต หรือ ipaddr: พอร์ตจากภายนอก LAN ถูกต้อง (เช่น mydomain.com:10000 สำหรับ webmin)
Kyle

คุณอาจไม่ได้พิมพ์ชื่อโฮสต์และพอร์ตเสมอไป แต่นั่นหมายความว่าโปรแกรมส่วนใหญ่ใช้พอร์ตเริ่มต้น ดังนั้นในกรณีส่วนใหญ่Telnet myserver: 23เป็นเช่นเดียวกับเทลเน็ต myserver เช่นเดียวกับ ssh (การตั้งค่าเริ่มต้นที่พอร์ต 22) การท่องเว็บ (ไปยังพอร์ต 80) ฯลฯ หากคุณไม่ต้องการพิมพ์หมายเลขพอร์ตคุณก็ต้องใช้ค่าเริ่มต้น
Hennes

ตกลงถ้าฉันใช้เซิร์ฟเวอร์หลายเครื่องหรือเป็นพอร์ตคี่บอลจากนั้นฉันก็ไม่สามารถทำได้ ฉันกำลังมองหาโซลูชัน "ส่งต่อไปยังพอร์ตตามชื่อ" มากขึ้นและฉันได้อ่านเกี่ยวกับเรื่องนี้แล้วและดูเหมือนจะเป็นไปไม่ได้
Kyle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.