ฉันได้ตั้งค่าเซิร์ฟเวอร์เสมือนต่อไปนี้ใน NGINX conf ของฉัน:
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name ip.myserver.com;
ที่ตั้ง / {
default_type ข้อความ/ธรรมดา;
ส่งคืน 200 "$remote_addr\n";
}
}
แนวคิดคือฉันมีเซิร์ฟเวอร์เสมือนอื่น ๆ ที่ฉันต้องการเข้าถึงโดยใช้การเชื่อมต่อ OpenVPN ซึ่งอยู่ในเครื่องเดียวกันเท่านั้น เมื่อใช้ไซต์ทดสอบนี้ ควรแสดงที่อยู่ IP ส่วนตัว (หรือสาธารณะหากไม่ได้เชื่อมต่อกับ VPN)
โทรศัพท์ Android ของฉันทำงานได้อย่างสมบูรณ์:
ขณะเชื่อมต่อกับไซต์โดยไม่มีการเชื่อมต่อ VPN จะแสดงสิ่งต่อไปนี้: 192.0.2.222
. (มีที่อยู่อื่นในความเป็นจริงแน่นอน)
เมื่อเชื่อมต่อกับไซต์โดยใช้การเชื่อมต่อ VPN ข้อมูลต่อไปนี้จะปรากฏขึ้น 10.8.0.3
นี่เป็นผลลัพธ์ที่ถูกต้องเนื่องจากแสดงว่าอุปกรณ์กำลังใช้การเชื่อมต่อ VPN และเนื่องจากบริการ VPN และเซิร์ฟเวอร์ Nginx อยู่ในเครื่องเดียวกัน Nginx จึงเห็น IP ส่วนตัวของ VPN
เมื่อทำสิ่งนี้บนเครื่อง Linux ของฉัน ระบบจะแสดงที่อยู่ IP สาธารณะของเครื่อง Linux เมื่อเชื่อมต่อกับเซิร์ฟเวอร์โดยไม่มีการเชื่อมต่อ VPN และเมื่อเชื่อมต่อด้วยการเชื่อมต่อ VPN ระบบจะแสดงที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ ซึ่งไม่ใช่สิ่งที่ฉันคาดไว้
ฉันสงสัยว่ามีบางอย่างผิดปกติกับวิธีการกำหนดค่า OpenVPN บนแล็ปท็อป Linux ของฉัน เนื่องจากโทรศัพท์ Android ทำงานได้ดี
การกำหนดค่าเซิร์ฟเวอร์ OpenVPN:
พอร์ต 1194
โปรโตคอล udp6
ทุนพัฒนา
ผู้ใช้ไม่มีใคร
กลุ่มโนกรุ๊ป
คีย์คงอยู่
คงอยู่-tun
รักษาชีวิต 10 120
ซับเน็ตโทโพโลยี
เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
กด "dhcp-option DNS 94.140.14.14"
กด "dhcp-option DNS 94.140.15.15"
กด "เปลี่ยนเส้นทางเกตเวย์ def1 บายพาส-dhcp"
เซิร์ฟเวอร์-ipv6 fd42:42:42:42::/112
tun-ipv6
กด tun-ipv6
กด "เส้นทาง-ipv6 2000::/3"
กด "เปลี่ยนเส้นทางเกตเวย์ ipv6"
ไม่มีเลย
ecdh-curve prime256v1
tls-crypt /etc/openvpn/tls-crypt.key
crl-ยืนยัน /etc/openvpn/crl.pem
ca /etc/openvpn/ca.crt
ใบรับรอง /etc/openvpn/server_key.crt
คีย์ /etc/openvpn/server_key.key
รับรองความถูกต้อง SHA256
รหัส AES-128-GCM
ncp-ciphers AES-128-GCM
เซิร์ฟเวอร์ tls
tls-เวอร์ชั่น-นาที 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/openvpn/ccd
สถานะ /var/log/openvpn/status.log
กริยา 4
ไฟล์ไคลเอนต์ OpenVPN (ไม่มีคีย์):
ลูกค้า
โปรโตคอล udp
แจ้งออกอย่างชัดเจน
ระยะไกล 192.0.2.222 1194 # เปลี่ยนสิ่งนี้สำหรับการแสดงผล
ทุนพัฒนา
resolv-retry ไม่มีที่สิ้นสุด
ไม่ผูกมัด
คีย์คงอยู่
คงอยู่-tun
เซิร์ฟเวอร์ระยะไกล cert-tls
Verify-x509-name server_key name # เปลี่ยนเนื่องจากไม่แน่ใจว่าเป็นข้อมูลส่วนตัวหรือไม่
รับรองความถูกต้อง SHA256
รับรองความถูกต้อง nocache
รหัส AES-128-GCM
tls-ไคลเอนต์
tls-เวอร์ชั่น-นาที 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ละเว้นไม่รู้จักตัวเลือกบล็อกภายนอก DNS
setenv opt block-outside-dns # ป้องกันการรั่วไหลของ Windows 10 DNS
กริยา 3