โดยพื้นฐานแล้วสิ่งที่ฉันต้องการทำคือทำให้โฮมเซิร์ฟเวอร์ในเครื่องสามารถเข้าถึงได้แบบสาธารณะในอินเทอร์เน็ต น่าเสียดายที่ ISP ของฉันใช้ CGNAT และเพื่อรับ IP สาธารณะ ฉันต้องจ่ายเพิ่ม (ประมาณ $50) ฉันคิดว่ามันถูกกว่าที่จะใช้ VPS แทน
ดังนั้นฉันจึงได้ติดตั้ง Wireguard Server ใน Google Cloud ผ่าน Compute Engine VM ที่ใช้ Ubuntu 20.04 ฉันยังตั้งค่าไคลเอ็นต์ Wireguard สำหรับเซิร์ฟเวอร์ภายในที่บ้านและเชื่อมต่อกับเซิร์ฟเวอร์ Wirequard ใน Google Cloud สุดท้าย ฉันตั้งค่าไคลเอ็นต์ Wireguard อีกเครื่องบนโทรศัพท์ Android ของฉัน เชื่อมต่อกับเซิร์ฟเวอร์และทุกอย่างทำงานได้ดีเมื่อฉันใช้ wireguard บนโทรศัพท์ Android ฉันสามารถดูเซิร์ฟเวอร์ภายในของฉันจากภายนอก (ใช้ข้อมูลมือถือเพื่อการทดสอบ)
ตอนนี้ฉันต้องการทำให้เซิร์ฟเวอร์ท้องถิ่นที่บ้านพร้อมใช้งานสำหรับสาธารณะ ฉันมีโดเมนและตั้งค่าระเบียนที่จำเป็น เมื่อฉัน ping มันส่งคืน ip สาธารณะของ GCE VM ซึ่งฉันเชื่อว่ามันทำงานได้ดี ต่อไป ฉันติดตั้ง Nginx ใน GCE VM ของฉัน ทำงานได้ดี ฉันสามารถเข้าถึงหน้าเริ่มต้นของ Nginx ผ่านโดเมนและที่อยู่ IP สาธารณะได้ ฉันแก้ไขการกำหนดค่าเริ่มต้นโดยใช้สิ่งต่อไปนี้และรีสตาร์ท Nginx หลังจากนั้น
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name sub.domain.org; #ตัวอย่างเท่านั้น
ที่ตั้ง / {
proxy_redirect http://10.200.200.2 http://sub.domain.org;
}
}
Wireguard ของฉันอยู่ในช่วง ip 10.200.200.x (ไม่แน่ใจว่าเป็นคำที่ถูกต้องหรือไม่) และ 10.200.200.2 คือที่อยู่ IP ของ wireguard ของเซิร์ฟเวอร์ภายในบ้านของฉัน
ฉันอาจไม่เข้าใจวิธีการทำงานของ Nginx แต่ฉันคาดหวังว่าผ่าน Nginx ฉันจะสามารถเข้าถึงเซิร์ฟเวอร์ภายในบ้านของฉันแบบสาธารณะได้โดยการเรียกดู http://sub.domain.org. น่าเสียดายที่ฉันไม่สามารถเข้าถึงแบบสาธารณะได้ สามารถเข้าถึงได้เมื่อฉันเชื่อมต่อกับ wireguard เท่านั้น
มีอะไรอีกบ้างที่ฉันต้องทำ?
ขอขอบคุณข้อเสนอแนะใด ๆ