การแก้ไข DNS Windows 10 ผ่านการเชื่อมต่อ VPN ไม่ทำงาน


49

ใน Windows 10 เมื่อเชื่อมต่อกับ VPN พร้อมเปิดใช้งานการแยกอุโมงค์ (เกตเวย์ถูกปิดใช้งาน) การแก้ไข DNS จะใช้เซิร์ฟเวอร์ LAN DNS เสมอโดยไม่สนใจเซิร์ฟเวอร์ DNS และ DNS Suffix ที่ตั้งค่าไว้ที่การเชื่อมต่อ VPN

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

สิ่งนี้ทำงานได้อย่างถูกต้องใน Windows รุ่นก่อนหน้า

นี้ถูกกล่าวถึงกันอย่างแพร่หลายในหัวข้อคำตอบนี้ไมโครซอฟท์


คำถามของคุณไม่ชัดเจนว่าเป็นปัญหาของคุณ (คุณต้องการให้ใช้เซิร์ฟเวอร์ DNS ที่ระบุโดย VPN หรือไม่) โปรดแก้ไข
MátéJuhász

แก้ไขตามที่แนะนำ
ECC- Dan

tbh: มีบางอย่างผิดปกติกับเซิร์ฟเวอร์ของคุณ คำขอ DNS แรกควรเข้าสู่เซิร์ฟเวอร์ภายในเสมอ หากโฮสต์ไม่สามารถแก้ไขได้ระบบควรพยายามสอบถาม Remote-DNS ปัญหาของคุณอาจเป็นว่าเครือข่ายท้องถิ่นและระยะไกลกำลังทำงานอยู่บนเครือข่ายย่อยเดียวกันดังนั้นเครือข่ายท้องถิ่นเรียกร้องให้ "สามารถแก้ไขแบบสอบถาม" แต่ส่ง "โฮสต์ไม่พบ"? (หากเซิร์ฟเวอร์ที่กำหนดค่าไปยังเซิร์ฟเวอร์เครือข่ายย่อย abcd ไม่สามารถแก้ไขโฮสต์ได้จะไม่มีการสอบถาม dns-server เพิ่มเติมสำหรับเครือข่ายย่อยนี้เว้นแต่เซิร์ฟเวอร์หลักอยู่ในสถานะออฟไลน์เนื่องจากพวกเขาไม่ควรซิงค์ - ดังนั้นจึงถือว่าโฮสต์ไม่ทราบ)
dognose

คำตอบ:


54

ฉันได้แก้ไขปัญหานี้อย่างถาวรด้วยการตั้งค่าการวัดการเชื่อมต่อ LAN ของฉันด้วยตนเองให้สูงกว่า (15) มากกว่าหนึ่งหน้าต่างที่กำหนดให้กับ VPN ของฉัน (11)

สามารถทำได้สองวิธี:

  • ผ่าน GUI:การเชื่อมต่อเครือข่าย, คุณสมบัติ, คุณสมบัติ TCP / IP v4, ขั้นสูง, ตั้งค่าการวัดเป็น 15;
  • บรรทัดคำสั่ง: netsh int ip set interface interface="LAN CONNECTION NAME" metric=15

ผลคือทันที(อย่างน้อยเมื่อใช้บรรทัดคำสั่ง)และการค้นหา DNS ผ่าน VPN ของฉันตามที่คาดไว้

ใช้งานได้กับ Split Tunneling และเป็นการแก้ไขแบบถาวรตลอดการเชื่อมต่อใหม่และเริ่มใหม่

โปรดทราบว่าคุณสามารถเปลี่ยนการวัดของ VPN แทนการเชื่อมต่อ LAN ได้ แต่สิ่งนี้จะไม่เป็นการถาวรเนื่องจาก Windows จะรีเซ็ตเมตริกเมื่อสร้างการเชื่อมต่อ

คุณอาจมีเมตริกเริ่มต้นแตกต่างกันสำหรับการเชื่อมต่อ LAN และ VPN ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ เพียงปรับให้เหมาะสมเพื่อให้ VPN ของคุณมีเมตริกต่ำกว่าการเชื่อมต่อ LAN ของคุณ

นอกจากนี้หากคุณพบว่าคุณไม่สามารถแก้ไขคุณสมบัติ TCP / IP ของ VPN ของคุณเนื่องจากคุณสมบัติดังกล่าวใช้งานไม่ได้ใน Windows 10คุณสามารถตั้งค่าคุณสมบัติส่วนใหญ่ผ่าน Powershell ได้ :

1. Get-VpnConnection
2. Set-VpnConnection -Name "myVPN" -SplitTunneling $True
3. Set-VpnConnection -Name "myVPN" -DnsSuffix yourdomain.local

2
สำหรับฉันมันไม่ทำงาน ... ฉันมีสองเครื่องที่มี windows 10 เครื่องหนึ่งทำงานได้ดีทั้งหมดเป็นปัญหากับ VPN ฉันสามารถแก้ไขเกตเวย์เริ่มต้นที่เปิดใช้งาน SplitTunneling ได้ แต่ DNS ของ VPN ยังคงไม่รู้จักเมื่อฉันเปลี่ยนเมตริก ...
ceinmart

3
ปัญหานี้ได้รับการแก้ไขสำหรับเรา (และเราได้ต่อสู้กันมาระยะหนึ่งแล้ว) พร้อมกับขั้นตอนสำคัญอีกขั้นหนึ่ง - ปิดการใช้งาน IPv6 VPN ของเราไม่ได้ทำ IPv6 แต่ความเข้าใจของฉันคือตัวแก้ไข IPv6 ใด ๆ ที่จะมาก่อนมากกว่า IPv4 เมื่อเราปิดการใช้งาน IPv6 ในอะแดปเตอร์แล้วปรับการวัด DNS split-tunnel อีกครั้งกลับมาทำงานต่อ หาก VPN ของคุณรองรับ IPv6 อาจไม่จำเป็นและหากการปรับค่าเมตริกด้วยตัวเองจะแก้ไข DNS เพื่อให้คุณเปิดใช้งาน IPv6 ในอะแดปเตอร์ของคุณ
Adam Strohl

เรื่องสนุก: สำหรับฉันปัญหาคือ "กลับกัน" - เมื่อเชื่อมต่อกับ VPN Windows ไม่สามารถแก้ไข FQDNs ในพื้นที่ได้ ... มันเป็นการตั้งค่า Metric เริ่มต้นสำหรับ "การเชื่อมต่อ VPN" ถึง 1 - ดังนั้นฉันจึงให้ท้องถิ่น การเชื่อมต่อจำนวนที่ต่ำกว่าซึ่งแก้ไขปัญหาของฉัน (เซิร์ฟเวอร์ในท้องถิ่นของฉันมีการกำหนดค่าได้อย่างถูกต้องดังนั้นชื่อไม่สามารถแก้ไขใด ๆ ที่จะได้รับการสอบถามเกี่ยวกับการเชื่อมต่อของ "การตั้งค่าที่สอง" - ซึ่งทำให้ตอนนี้ทั้งสอง:. DNS ท้องถิ่นและระยะไกลในการทำงานตามที่คาดไว้ในขณะที่มีการจัดตั้ง VPN)
dognose

ความคิดใดที่ว่าเหตุใดการแก้ไขนี้จึงจำเป็นสำหรับฉันเมื่อเชื่อมต่อผ่าน ISP หนึ่ง แต่ไม่เชื่อมต่ออื่น ๆ (ทั้งคู่เชื่อมต่อด้วยสายเคเบิล)?
Gaia

ยังไงก็เถอะฉันได้รับปัญหาย้อนกลับในสถานที่แรก: แล็ปท็อป Win10 ในพื้นที่ของฉันใช้เฉพาะ DNS ใน VPN (ส่วนใหญ่) โดยอัตโนมัติและเนื่องจาก DNS ใน VPN ภายในนั้นไม่ได้กำหนดค่าเพื่อให้บริการ DNS ฉันจึงสามารถ ไม่เรียกดูเว็บไซต์อินเทอร์เน็ตใด ๆ ในช่วงเปิดใช้งาน VPN ของฉัน ดังนั้นฉันจึงใช้วิธีนี้ในทางกลับกันนั่นคือการตั้งค่าการเชื่อมต่อ LAN ในพื้นที่ของฉันให้มีขนาดเล็กเท่า1ที่ดูเหมือนจะสามารถแก้ปัญหาได้ในตอนนี้ FWIW ฉันไม่ทราบค่าตัวชี้วัดสำหรับการเชื่อมต่อ VPN ของฉันเนื่องจากไม่มีปุ่ม "ขั้นสูง" ในหน้าต่างป๊อปอัปคุณสมบัติการเชื่อมต่อ VPN
RayLuo

11

ฉันปั่นการติดตั้ง Windows 10 ใหม่ใน VM เพื่อทดสอบหลังจากพบปัญหานี้ในเครื่อง Win10 ทางกายภาพทุกเครื่องที่ฉันมี ฉันทดสอบคำตอบทั้งหมดในชุดข้อความนี้และไม่มีคำตอบเลย ฉันค้นพบว่าวิธีแก้ปัญหาคือการรวมคำตอบที่โพสต์ไว้ที่นี่โดย "คีแนนส์" และ "ECC- แดน":

http://answers.microsoft.com/en-us/windows/forum/windows_10-networking/win-10-dns-resolution-of-remote-network-via-vpn/513bdeea-0d18-462e-9ec3-a41129eec736? หน้า = 1

แผงควบคุม> ศูนย์เครือข่ายและการใช้ร่วมกัน> เปลี่ยนการตั้งค่าอะแดปเตอร์> คลิกขวาที่อแด็ปเตอร์ Ethernet หรือ Wifi> คุณสมบัติ> ดับเบิลคลิก IPv4> ขั้นสูง> ยกเลิกการเลือกตัวชี้วัดอัตโนมัติ> ป้อน 15 สำหรับตัวชี้วัดอินเตอร์เฟส> ตกลง> ตกลง

ในหน้าคุณสมบัติเดียวกันนั้นให้ดับเบิลคลิก IPv6> ขั้นสูง> ยกเลิกการเลือกการวัดอัตโนมัติ> ป้อน 15 สำหรับการวัดอินเทอร์เฟซ> ตกลง> ตกลง

หลังจากแก้ไขการตั้งค่าทั้งสองอย่างแล้วปัญหาจะได้รับการแก้ไข ฉันทดสอบการเปลี่ยนอันใดอันหนึ่งกลับและมันก็หยุดอีกครั้ง หลังจากเปลี่ยนทั้งฉันก็รัน nslookup จากบรรทัดคำสั่งและมันคืนเซิร์ฟเวอร์ DNS ในเครือข่ายระยะไกลที่ VPN เชื่อมต่ออยู่ที่ไหนมิฉะนั้นมันจะส่งคืนเซิร์ฟเวอร์ DNS ในเครื่อง จากนั้นฉันใช้การจับภาพ Wireshark บนอินเทอร์เฟซ Ethernet ทำการส่ง Ping ไปยังเว็บไซต์สุ่มและตรวจสอบว่าไม่มีการจับแพ็กเก็ต DNS นี่เป็นการพิสูจน์ว่าหลังจากทำการเปลี่ยนแปลงแล้วแบบสอบถาม DNS จะถูกส่งผ่านการเชื่อมต่อ VPN เท่านั้นและไม่พร้อมกันในการเชื่อมต่อทั้งหมด (ซึ่งรู้จักกันในชื่อ Win10 DNS รั่วไหล) ดังนั้นนี่เป็นส่วนหนึ่งของโซลูชันสำหรับการรั่วไหลของ Win10 DNS:

https://medium.com/@ValdikSS/beware-of-windows-10-dns-resolver-and-dns-leaks-5bc5bfb4e3f1#.7ppsn1nda

โปรดทราบว่าแก้ไขการรั่วไหลของ DNS คุณต้องทำตามขั้นตอนด้านบนก่อน จากนั้นคุณต้องตั้งค่ารีจิสทรีสองค่า บทความที่เชื่อมโยงแสดงรายการเดียวเท่านั้นซึ่งไม่ได้แก้ไขปัญหาในบิลด์ Win10 รุ่นใหม่ ตั้งค่ารีจิสทรีเหล่านี้:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
Value:  DisableSmartNameResolution
Data:  1

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Value: DisableParallelAandAAAA
Data:  1

หลังจากดำเนินการทั้งหมดแล้วพฤติกรรมไคลเอนต์ DNS ของคุณจะกลับมาเหมือนเดิมใน Win7 คุณต้องสงสัยว่าเรื่องนี้ผ่าน QA ที่ Microsoft ได้อย่างไร


1

มันไม่ทำงานแม้ว่าฉันจะเปลี่ยนการวัดทั้ง IPv4 และ IPv6 และใช้รีจีสทรี DisableSmartNameResolution และ DisableParallelAandAAAA กับวินโดวส์ 10 Edu ปัจจุบัน (ณ เดือนธันวาคม 2018) เมื่อไคลเอ็นต์เชื่อมต่อด้วยสายเคเบิล UTP และโปรโตคอล IPv6 บนเครือข่ายท้องถิ่น (เช่น ลูกค้ามีที่อยู่ IPv6 สาธารณะ / ทั่วโลก)

มันเพียงพอที่จะปิดการใช้งานโปรโตคอล IPv6 บนอินเทอร์เฟซ UTP / LAN ที่ใช้สำหรับ VPN เพื่อให้ทำงานได้ (เพื่อลบ / not_use ที่อยู่ IPv6 ทั่วโลกบนไคลเอนต์)

มันทำงานได้โดยไม่มีปัญหาเมื่อไคลเอนต์เชื่อมต่อกับอินเทอร์เน็ตโดย Wi-Fi และ IPv6 สามารถใช้ได้ (ไคลเอนต์มีที่อยู่ IPv6 ทั่วโลกและไม่มีการเชื่อมต่อ UTP / LAN)

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