Ngăn VPN thay đổi DNS trên bản xem trước dành cho nhà phát triển Windows 7/8


10

Tôi có một khách hàng sử dụng kết nối VPN, tuy nhiên, nó tự động định cấu hình cài đặt DNS của tôi thành máy chủ DNS không tồn tại, nghĩa là mọi độ phân giải DNS đều hết cho đến khi thử thay thế, điều này thực sự làm chậm tất cả lưu lượng truy cập Internet.

Có cách nào để tôi có thể ngăn ứng dụng ghi đè cài đặt DNS của mình (mà không bật UAC) không?

Ngoài ra, có cách nào để tôi có thể thiết lập một số loại định tuyến cục bộ có nội dung 'khi yêu cầu DNS cho địa chỉ IP A đến, thực sự sử dụng địa chỉ IP B'?

Tôi đang sử dụng bản xem trước dành cho nhà phát triển Windows 8 (nhưng tôi nghi ngờ nó sẽ hoạt động giống như Windows 7).

Cảm ơn

Câu trả lời:


18

Tôi không tin có một cách để ngăn chặn điều đó xảy ra, ngoài việc gán tĩnh các máy chủ DNS trên kết nối VPN.

Để thay đổi thứ tự các máy chủ DNS được truy vấn, người ta phải có khả năng thay đổi thứ tự ràng buộc giao diện theo /superuser//a/314379/120267 , nhưng dường như điều đó không ảnh hưởng đến các kết nối VPN trong thử nghiệm cá nhân của tôi trên Windows 7; Tôi đã xác nhận rằng kết nối VPN của tôi luôn được thêm vào đầu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Binddanh sách, bất kể cài đặt thứ tự ràng buộc giao diện.

Tuy nhiên, bạn có thể đặt lại các thay đổi DNS sau khi kết nối VPN được thiết lập.

Thu thập thông tin

Mở một dấu nhắc lệnh ( Start-> Run...-> cmd) rồi chạy netsh interface ipv4 show dnsservers. Bạn sẽ thấy đầu ra tương tự như sau:

Configuration for interface "My VPN"
    Statically Configured DNS Servers:    11.22.33.44
                                          55.66.77.88
   ...

Configuration for interface "Local Network Connection"
    DNS servers configured through DHCP:  192.168.0.1
                                          192.168.0.2
    ...

Bạn cần tên giao diện cho VPN và tùy chọn máy chủ DNS đầu tiên không kết nối VPN của bạn . Trong ví dụ này, chúng là My VPN192.168.0.1 , tương ứng.


Thiết lập tất cả

Tùy chọn 1: Vô hiệu hóa VPN DNS

Giả sử bạn hoàn toàn không cần máy chủ DNS của VPN, bạn chỉ cần chạy phần sau trong dấu nhắc lệnh:

netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no

Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no

Nếu bạn chạy netsh interface ipv4 show dnsserverslại, bạn sẽ thấy các máy chủ DNS được liên kết với VPN đã bị xóa; Máy chủ DNS của kết nối không phải VPN của bạn sẽ được sử dụng để phân giải tên máy chủ.


Tùy chọn 2: Bổ sung DNS DNS

Nếu bạn cần máy chủ DNS của VPN để phân giải tên máy chủ mạng nội bộ, bạn có thể chạy như sau trong dấu nhắc lệnh:

netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no

Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no

Trong trường hợp này, netsh interface ipv4 show dnsserverssẽ cho thấy rằng máy chủ DNS đầu tiên không kết nối VPN của bạn đã được thêm vào đầu danh sách các máy chủ DNS của VPN của bạn. Nó sẽ được sử dụng để phân giải tên máy chủ trước tiên và nếu không thành công, hãy quay lại sử dụng các máy chủ DNS thông thường của VPN.


Bạn là một anh hùng, cảm ơn vì câu trả lời sâu rộng, nó dường như hoạt động tốt! Tôi đã cố gắng
loay hoay

1

Tôi đã có một vấn đề tương tự; kết nối với máy chủ VPN sẽ ghi đè DNS (máy khách VPN từ xa) của máy trạm của tôi để DNS LAN cục bộ bị che khuất. Tôi đã mô tả vấn đề chi tiết hơn về phía Stackoverflow trước khi tôi được chỉ ra rằng tôi nên đăng nó ở đây để thay thế.

Đã đọc qua luồng này, rõ ràng không thể ngăn chặn việc ghi đè bằng cách sử dụng cấu hình máy khách OpenVPN. Giải pháp của tôi là thêm một tệp bó trong thư mục cấu hình OpenVPN thực thi khi kết nối OpenVPN được hình thành. Nếu tệp OVPN được gọi là company.ovpn, tệp được chạy trên kết nối cần được đặt tên là company_up.bat.

Tôi đã tăng cường một số tệp kể từ phiên bản tôi đã đăng lên câu hỏi của mình trong StackOverflow vào tối nay. Bây giờ nó trông như thế này:

1: ping 127.0.0.1 -n 2 > nul
2: netsh interface ip set dns "Local Area Connection 4" static 127.0.0.1
3: route delete 0.0.0.0
4: route add -p 0.0.0.0/0 172.20.20.1 metric 1000
5: exit 0

1: Một hack để chờ vài giây trước khi tiếp tục. Phiên bản mới nhất (2.3) của ứng dụng khách OpenVPN sẽ bỏ qua DNS và thay đổi tuyến nếu được thực hiện mà không bị trì hoãn.

2: Đặt DNS của kết nối VPN để trỏ đến localhost. Tôi có một trình phân giải (tôi sử dụng SimpleDNS Plus ) đang chạy trên localhost để chuyển các truy vấn đến miền công ty đến máy chủ DNS của công ty qua VPN và mọi thứ khác đến máy chủ DNS LAN cục bộ. Lưu ý rằng tôi không thể sử dụng trình phân giải LAN cục bộ để chuyển tiếp các truy vấn cho miền công ty đến DNS của công ty qua VPN vì điểm cuối VPN nằm trên localhost. Tên kết nối ("Local Area Connection 4") được xác định tại dấu nhắc lệnh thông qua "ipconfig / all".

3: Máy chủ VPN của công ty được định cấu hình để định tuyến tất cả lưu lượng truy cập đi qua VPN đồng thời hạn chế các kết nối SSH ra ngoài (với Internet). Điều này mâu thuẫn với quy trình làm việc của tôi và lần đầu tiên tôi xóa tuyến đường "0.0.0.0 netmask 0.0.0.0" ...

4: .. và sau đó tôi thêm lại tuyến 0.0.0.0/0 để trỏ đến cổng LAN cục bộ và đặt số liệu (trọng lượng) của nó thành 1000 làm tất cả cho tất cả lưu lượng truy cập không được định tuyến theo cách khác.

5: Không có "exit 0" OpenVPN sẽ đưa ra cảnh báo lỗi về tập lệnh không thành công (với trạng thái thoát 1).

Hy vọng rằng điều này hữu ích cho ai đó .. nó hoạt động khá tốt đối với tôi (không cần thực hiện điều chỉnh tuyến đường hoặc DNS theo cách thủ công mỗi khi tôi mở kết nối).


0

Có cách nào để tôi có thể ngăn ứng dụng ghi đè cài đặt DNS của mình (mà không bật UAC) không?

Ít nhất là không có cách dễ dàng để làm điều đó.

Ngoài ra, có cách nào để tôi có thể thiết lập một số loại định tuyến cục bộ có nội dung 'khi yêu cầu DNS cho địa chỉ IP A đến, thực sự sử dụng địa chỉ IP B'?

Bạn có thể thêm các mục vào tệp máy chủ ( C:\Windows\System32\drivers\etc\hosts). Tệp này chứa ánh xạ từ tên máy chủ đến địa chỉ IP và được ưu tiên hơn các yêu cầu DNS.


Tôi biết về tệp máy chủ, nhưng đây là tất cả địa chỉ IP để không hoạt động một cách đáng tiếc ...
Wiebe Tijsma

Oh, ok, bây giờ tôi nhận được câu hỏi của bạn. Và không, bạn không thể chuyển hướng yêu cầu từ IP này sang IP khác.
Michael

0

Bạn có thể kiểm tra trạng thái của hộp kiểm 'Sử dụng cổng mặc định trên mạng từ xa' không. Điều này được tìm thấy bằng cách mở các thuộc tính của kết nối VPN của bạn và chuyển đến tab Mạng và chọn TCP / IP v4 hoặc TCP / IP V6, sau đó chọn thuộc tính và sau đó nâng cao. Điều này có thể được kích hoạt, điều đó có nghĩa là tất cả lưu lượng truy cập internet được định tuyến qua kết nối VPN. Nó không phải lúc nào cũng có thể vô hiệu hóa điều này và vẫn làm những gì bạn muốn với VPN, nhưng nó có thể bị vô hiệu hóa, nó có thể tăng tốc truy cập internet.

Nếu điều đó không có ích, có một tab DNS ở đó và bạn có thể thử thêm các máy chủ DNS của mình ở đó. Tôi đã thử điều này, nhưng tôi hy vọng các cài đặt này sẽ ghi đè cài đặt tự động.


Nó không được kiểm tra, vì vậy nó không định tuyến tất cả lưu lượng truy cập internet qua VPN (khi tên cuối cùng được giải quyết, kết nối đủ nhanh). Tôi đã thử thay đổi cài đặt DNS ở đó, nhưng tiếc là tất cả đã tự động thay đổi thành cài đặt DNS không hợp lệ khi tôi khởi động lại kết nối :(
Wiebe Tijsma

Nếu bạn không thể ngăn DNS bị thay đổi, có thể khiến nó bị lỗi nhanh hơn bằng cách sử dụng tường lửa để chặn các yêu cầu DNS đến địa chỉ này không?
sgmoore

0

Thật không may, Netsh không thể xóa các máy chủ dns được gán bởi dhcp. Nhưng điều này có thể được thực hiện bằng cách xóa tham số DhcpNameServer trong

HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{id}

mã đăng kí.


0

Kể từ năm 2017, điều này là có thể nếu nó dựa trên OpenVPN

Thêm một dòng vào tập tin cấu hình máy khách của bạn

bộ lọc kéo bỏ qua "DNS tùy chọn dhcp"

và nó sẽ bỏ qua tất cả các dòng cấu hình đẩy bắt đầu bằng văn bản được trích dẫn.

Ba từ khóa hành động là accept ignore reject. Tôi đã không phát hiện ra một trường hợp sử dụng để từ chối.


0

Tôi chỉ cần loại bỏ tùy chọn này khỏi cấu hình VPN của máy khách

setenv opt block-bên ngoài-dns

Nó đã giải quyết vấn đề

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.