Làm cách nào để xác định máy chủ DNS trong openvpn?


17

Tôi thiết lập máy chủ openvpn bằng khóa tĩnh (chế độ chứng chỉ không sử dụng được do DPI tại cổng quốc gia), nhưng tôi không thể tự động thay đổi thành công DNS sau khi kết nối. Tôi đã tìm kiếm trên Internet và SE, và mọi người đều gợi ý sử dụng dhcp-option.

Tôi đã cố gắng thêm dòng này vào client.ovpn

dhcp-option DNS 8.8.8.8

Không có tác dụng. Tôi đã cố gắng thêm dòng này trong máy chủ conf

push "dhcp-option DNS 8.8.8.8"

Không có tác dụng.

Trong thực tế, theo hướng dẫn,

--dhcp-tùy chọn loại [parm]

Đặt các thuộc tính TCP / IP TAP-Win32 mở rộng, phải được sử dụng với thích ứng --ip-win32 động hoặc --ip-win32.

Nhưng khách hàng của tôi là một máy Mac, máy chủ Linux. Bất kỳ giải pháp cho vấn đề?


1
Bạn nên đề cập đến ứng dụng khách nào bạn đang sử dụng trên máy OSX.
FloHimelf

2
@FloHimelf: Tiện ích dòng lệnh tiêu chuẩn openvpn.
Siyuan Ren

Câu trả lời:


7

Trên hệ thống Linux, bạn cần chạy một tập lệnh bên ngoài .

Đây là tài liệu: https://wiki.archlinux.org/index.php/OpenVPN#DNS

Các tập lệnh được tìm thấy ở đây hoặc phiên bản Linux mới hơn ở đây và bạn có thể gọi chúng bằng cách thêm phần này vào cấu hình máy khách openvpn:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

1
Nếu hương vị Linux của bạn sử dụng NetworkManager, hãy xem các thay đổi để làm việcnmcli .
palswim

5

Tôi không phải là chuyên gia, nhưng từ việc đọc mantrang bên dưới trích dẫn của bạn:

--dhcp-tùy chọn loại [parm]

...

Lưu ý rằng nếu tùy chọn --dhcp được đẩy qua --push đến máy khách không có cửa sổ , tùy chọn sẽ được lưu trong môi trường của máy khách trước khi tập lệnh lên được gọi, dưới tên "Foreign_option_ {n}".

và theo Foreign_option_ {n} :

nước ngoài_option_ {n}

Một tùy chọn được đẩy qua --push đến một máy khách không hỗ trợ nó, chẳng hạn như --dhcp-tùy chọn trên hệ thống không phải Windows , sẽ được ghi vào chuỗi biến môi trường này trước khi thực thi tập lệnh --up .

Vì vậy, openvpnmáy khách dòng lệnh không tự động sửa đổi thiết lập DNS trên máy OSX của bạn sau khi thiết lập kết nối. Nhưng vì các tùy chọn DNS được lưu vào môi trường của máy khách, bạn có thể chỉ định tập lệnh để nối các máy chủ được đẩy vào cấu hình DNS hiện tại của hệ thống với --uptùy chọn:

- lên cmd

Chạy lệnh cmd sau khi mở thiết bị TUN / TAP thành công (thay đổi UID người dùng trước).

cmd bao gồm một đường dẫn đến tập lệnh (hoặc chương trình thực thi), theo sau là các đối số. Đường dẫn và đối số có thể được trích dẫn một hoặc hai lần và / hoặc thoát bằng dấu gạch chéo ngược và phải được phân tách bằng một hoặc nhiều khoảng trắng.

Ví dụ, Tunnelblick cũng thực hiện điều này bằng cách sử dụng tập lệnh này .

Một giải pháp khác có thể là một tập lệnh đã được đăng lên danh sách gửi thư openvpn tại DNS cho các máy khách OS X - Hướng dẫn dứt khoát .


IPhone thì sao? Không cần bẻ khóa, tôi tưởng tượng không có bash hay bất kỳ lệnh nào để tự động thay đổi DNS.
Siyuan Ren

@SiyuanRen Nếu không bẻ khóa, có lẽ bạn không sử dụng dòng lệnh openvpn client trên iPhone ...
FloHimelf

Ứng dụng openvpn chính thức chỉ cần tải một tệp cấu hình văn bản và chạy nó. Không có thêm chức năng.
Siyuan Ren

@SiyuanRen Vâng, ứng dụng openvpn chính thức không phải là ứng dụng dòng lệnh được thảo luận ở đây.
FloHimelf

Cảm giác này giống như một bản hack. Khi tôi kết nối với PPTP hoặc L2TP, có một giao diện chuyên dụng có sẵn trong các tùy chọn Mạng, với IP và DNS duy nhất của họ. OpenVPN yêu cầu tôi thay đổi cài đặt DNS của các giao diện khác ?
Siyuan Ren

4

Tôi gặp vấn đề tương tự với cả HĐH Linux (máy chủ và máy khách) và tôi đã giải quyết vấn đề cài đặt dnsmasq trên máy chủ bị thiếu

vì vậy các bước của tôi:

apt-get install dnsmasq

trong server.conf

push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"

Và tôi có thể kết nối và duyệt tên miền thông qua IP máy chủ, kết nối với NetWorkManager với các bộ DNS thành tự động


-1

Thêm lệnh này vào tập tin conf phía khách hàng của bạn ..

# put actual dns name here
dhcp-option DNS 10.11.12.13 

Nó chắc chắn sẽ hoạt động ..

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.