ฉันมีเซิร์ฟเวอร์ NAS ซึ่งฉันควรทำการส่งต่อพอร์ตเพื่อให้บริการต่างๆ สามารถเข้าถึงได้จากอินเทอร์เน็ต อย่างไรก็ตาม ISP ของฉันบล็อกพอร์ต ดังนั้นฉันจึงจัดการซื้อ Ubuntu VPS ราคาถูกเพื่อเรียกใช้เซิร์ฟเวอร์ OpenVPN ที่นั่น จากนั้นเปลี่ยนเส้นทางทราฟฟิก NAS ทั้งหมดและพอร์ตที่จำเป็นไปยังที่นั่น การตั้งค่าของฉันมีดังต่อไปนี้: | ราสปี | (192.168.0.101/24)| |(192.168.1.1/24) (192.168.0.1/24) APwlan0 eth0NAS (192.168.1.102/24) | \ / | |iptables และเครื่องมือกำหนดเส้นทาง{tun0} | | 10.8.0.6 | ฉันเดาว่าด้าน VPS ได้รับการกำหนดค่าอย่างถูกต้อง เนื่องจากฉันสามารถ SSH เข้าสู่ Raspberry Pi ของฉันโดยใช้ VPS IP ของฉัน นั่นคือสิ่งที่ฉันทำที่นั่นเพื่อให้มันใช้งานได้: iptables -t nat -A PREROUTING -d A.B.C.D -p tcp --dport 22 -j DNAT --to-dest 10.8.0.6:22 iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 22 - j SNAT --to-source 10.8.0.1 การกำหนดค่าเซิร์ฟเวอร์ OpenVPN ของฉัน: port X proto udp dev tun ca ca.crt cert server.crt คีย์ server.key dh dh2048.pem เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt client-config-dir ccd push "redirect-gateway def1 bypass -dhcp"push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"keepalive 10 120 ผู้ใช้ comp-lzo ไม่มีใครจัดกลุ่ม nogroup สถานะคงอยู่ของคีย์คงอยู่ openvpn-status.log กริยา 3 ฉันยังทำ: sysctl -w net.ipv4.ip_forward=1 และใส่ DEFAULT_FORWARD_POLICY="ยอมรับ"ใน /etc/default/ufw และเพิ่ม # เริ่มกฎ OPENVPN # กฎตาราง NAT *nat :POSTROUTING ACCEPT [0:0] # อนุญาตการรับส่งข้อมูลจากไคลเอนต์ OpenVPN ไปยัง eth0 -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE# สิ้นสุดกฎ OPENVPN ถึง /etc/ufw/before.rules การกำหนดค่าไคลเอนต์ OpenVPN: ไคลเอนต์ dev tun proto udp remote A.B.C.D X resolv-retry ไม่จำกัด nobind user ไม่มีใคร group nogroup คีย์คงอยู่คงอยู่-tun ns-cert-type เซิร์ฟเวอร์ comp-lzo verb 3 XXX YYY ZZZ ฉันจะเปลี่ยนเส้นทางการรับส่งข้อมูล eth0 ไปยัง tun0 และส่งต่อพอร์ต Y และ Z ผ่านอุโมงค์ได้อย่างไร ฉันเพิ่งรู้ว่าสำหรับพอร์ตอื่นๆ ฉันควรกำหนดค่า VPS ใหม่ตามที่ฉันทำกับพอร์ต 22