Score:0

Nginx เห็นไคลเอนต์ OpenVPN linux ด้วยที่อยู่ IP สาธารณะในขณะที่ไคลเอ็นต์ android เห็นด้วยที่อยู่ IP VPN ส่วนตัว

ธง tr

ฉันได้ตั้งค่าเซิร์ฟเวอร์เสมือนต่อไปนี้ใน 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
Nikita Kipriyanov avatar
za flag
ที่จริงแล้ว เราไม่ต้องการการกำหนดค่า Nginx ของคุณ แต่ต้องใช้ OpenVPN โปรด[แนบ](https://serverfault.com/posts/1102361/edit)กับคำถาม โปรดทราบว่าหากคุณปิดบังที่อยู่ IP สาธารณะ อย่าใช้ที่อยู่แบบสุ่ม แต่ให้เลือกจาก [RFC5737](https://www.rfc-editor.org/rfc/rfc5737.html)
tr flag
ฉันคิดว่าการกำหนดค่า OpenVPN ของฉันน่าจะใช้ได้และข้อผิดพลาดจะอยู่ที่แล็ปท็อป Linux ของฉัน แต่ฉันจะโพสต์ไว้เพื่อความชัดเจน โปรดดูคำอธิบายที่แก้ไข...
Nikita Kipriyanov avatar
za flag
ฉันสงสัยว่าไคลเอ็นต์ต่างๆ ประมวลผลตัวเลือก *push*-ed dual `redirect-gateway` แตกต่างกัน ตัวอย่างเช่น ตัวเลือกที่สองอาจแทนที่ตัวเลือกแรกหรือไม่ก็ได้ คุณจะไม่ลองรวมมันเป็นตัวเลือกเดียวหรือ นอกจากนี้ ถ้าเป็นไปได้ ให้แนบ `ip route` จากไคลเอนต์ Linux ที่เชื่อมต่อหลังจากเชื่อมต่อ VPN แล้ว
tr flag
ฉันจะต้องแก้ไขอย่างไรเพื่อรวมทุกอย่างไว้ในคำสั่งพุชเดียว ฉันขอโทษสำหรับการขาดความรู้ของฉันในเรื่องนี้
Nikita Kipriyanov avatar
za flag
ฉันหมายถึง แทนที่จะใช้ `push "redirect-gateway ..." 2 อัน ให้ใช้ `push "redirect-gateway def1 bypass-dhcp ipv6" เพียงครั้งเดียว
tr flag
นี่คือสิ่งที่ IP ROUTE แสดง: `0.0.0.0/1 ผ่าน 10.8.0.1 dev tun0 ค่าเริ่มต้นผ่าน 198.51.100.1 dev wlo1 โปรโต dhcp src 10.51.205.131 เมตริก 600 10.8.0.0/24 dev tun0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.8.0.2 10.51.192.0/20 dev wlo1 โปรโตเคอร์เนลขอบเขตลิงก์ src 10.51.205.131 เมตริก 600 128.0.0.0/1 ผ่าน 10.8.0.1 dev tun0 198.51.100.0/24 dev virbr0 ขอบเขตเคอร์เนลโปรโต ลิงก์ src 198.51.100.122 ลิงก์ดาวน์ 198.51.100.32 ผ่าน 198.51.100.1dev wlo1 ` ฉันเปลี่ยนที่อยู่ IP เพื่อความเป็นส่วนตัว :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา