การตั้งค่าเซิร์ฟเวอร์ DNS โดยใช้ไฟล์กำหนดค่าไคลเอนต์ OpenVPN


16

ฉันจะตั้งค่าเซิร์ฟเวอร์ DNS บนไคลเอนต์โดยใช้การกำหนดค่าไคลเอนต์เท่านั้น ลูกค้าของฉันเป็นเครื่อง windows และฉันต้องการเปลี่ยนเซิร์ฟเวอร์ DNS เมื่อไคลเอนต์เชื่อมต่อและย้อนกลับไปใช้การกำหนดค่าดั้งเดิมเมื่อฉันตัดการเชื่อมต่อจาก VPN

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

คำตอบ:


3

คุณสามารถใช้ชุดสคริปต์เพื่อทำสิ่งต่อไปนี้ ถือว่าเซิร์ฟเวอร์ DNS ในบ้านของคุณคือ 1.1.1.1 และ 2.2.2.2 และเซิร์ฟเวอร์ VPN DNS ของคุณคือ 8.8.8.8 9.9.9.9:

VPN-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

VPN-disconnect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

ฉันจะรวมไว้ในวิธีสคริปต์เหล่านี้ในการเชื่อมต่อและยกเลิกการเชื่อมต่อ แต่ฉันไม่เห็นตัวเลือกใน OpenVPN เพื่อตัดการเชื่อมต่อผ่านบรรทัดคำสั่ง หากคุณต้องการทำการเชื่อมต่ออัตโนมัติสิ่งนี้ควรใช้งานได้:

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn


15

คุณสามารถเพิ่มสิ่งต่อไปนี้ในไฟล์ปรับแต่งไคลเอ็นต์

dhcp-option DNS <dns_server_ip_address>

ทางฝั่งเซิร์ฟเวอร์จะเป็นดังนี้:

push "dhcp-option DNS <dns_server_ip_address>"

ดูเหมือนว่าจะใช้dhcp-optionทั้งสองด้าน routeคุณสามารถทำเช่นเดียวกันกับ


4
สิ่งนี้ไม่ได้ผลสำหรับฉันแม้ว่ามันจะดูเหมือนว่าควร ตัวเลือกไม่ได้อยู่ใน client.ovpn ที่สร้างขึ้น เมื่อฉันเพิ่มมันมันยังไม่ทำงาน ทำงานจาก Asus RT-N66U พร้อมเฟิร์มแวร์หุ้น 3.0.0.4.376_3861
Shea

2
ฉันเพิ่มไฟล์นี้ลงในไฟล์. ovpn หน้าแท็ก <ca> และมันทำงานได้ดีมาก! ขอขอบคุณ! ฉันทดสอบสิ่งนี้บนเครื่องที่ใช้ Windows ด้วย OpenVPN 2.4.4 รุ่น Windows 6.2
Michael Kargl

6

เห็นได้ชัดว่ามีปัญหากับการผูกคำสั่งที่ผิดพลาดใน Windows อย่างน้อยรวมถึง Windows 2000 / XP / 7 สิ่งนี้จะทำให้ไคลเอนต์ Windows OpenVPN ใช้การตั้งค่า DNS ของอะแดปเตอร์เครือข่ายเริ่มต้นแทนการตั้งค่าของอะแดปเตอร์ VPN

ในการแก้ไขปัญหานี้คุณต้องวางอุปกรณ์ VPN TUN หรือ TAP ไว้เหนืออะแดปเตอร์เครือข่ายท้องถิ่นของคุณตามลำดับการผูก:

  1. ระบุอุปกรณ์ VPN ipconfigของคุณโดยดูที่การส่งออกจาก สำหรับฉันนี่คือ "Local Area Connection 2" จำที่อยู่ IP ของคุณสำหรับอะแดปเตอร์นี้
  2. เปิด regedit.exe และค้นหาคีย์HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesที่ตรงกับที่อยู่ IP ของอะแดปเตอร์ VPN ของคุณ จำ GUID สำหรับอะแดปเตอร์นี้
  3. ไปและดับเบิลคลิกที่HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage Bindนี่จะมีรายการ GUID สำหรับอะแดปเตอร์ ตัดและวางบรรทัดที่สอดคล้องกับ GUID ของอุปกรณ์ VPN ของคุณไปยังด้านบนของรายการและบันทึกรายการ

นี่จะทำให้รายการ DNS สำหรับอุปกรณ์ VPN ของคุณถูกใช้ (และเฉพาะเมื่อการเชื่อมต่อ VPN เปิดใช้งานอยู่) คุณสามารถตั้งค่าได้ตามคำตอบโดย @brunoqc ขณะที่คุณอยู่ที่นี่คุณควรเพิ่มตัวเลือก openvpn block-outside-dnsเพื่อให้แน่ใจว่าการสืบค้น DNS จะไม่รั่วไหล

คำตอบนี้จะขึ้นอยู่กับการโพสต์บล็อกนี้มีประโยชน์มาก


มันใช้ได้ดีทีเดียว! ขอบคุณสำหรับการเขียนคู่มือนี้
SeriousM

3

นอกเหนือจากทั้งสองด้านล่าง:

dhcp-option DNS <dns_server_ip_address>          (add to client config)

หรือ

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

เพิ่มไปยังการกำหนดค่าไคลเอนต์เช่นกันเพื่อบังคับให้ Windows ใช้ DNS ที่กำหนดค่า:

register-dns
block-outside-dns

วันที่ 1 บังคับให้ Windows เลือกเซิร์ฟเวอร์ DNS ที่กำหนดค่าไว้เหนือเซิร์ฟเวอร์อื่นที่อาจได้รับจาก DHCP ตัวที่สองป้องกันการรั่วไหลของ DNS ไปยังเซิร์ฟเวอร์ DNS อื่น ๆ นอกเหนือจากที่กำหนดไว้

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