Ubuntu 18.04 không có độ phân giải DNS khi được kết nối với openvpn


40

Khi tôi kết nối với mạng VPN thông qua trình quản lý mạng Gnome, tôi bị mất độ phân giải DNS và trong thực tế, tôi không thể truy cập tài nguyên bên trong mạng VPN hoặc bên ngoài.

Khi tôi đang sử dụng Ubuntu 16.04 và tôi đang sử dụng VPN, /etc/resolv.conf/tệp "" sẽ chứa các máy chủ DNS của mạng (VPN) mà tôi đã kết nối. Bây giờ nó luôn chứa các mục sau:

nameserver 127.0.0.53
search myprovider.com

Từ những gì tôi đã hiểu 127.0.0.53là địa chỉ của cuống DNS được sử dụng bởi system-resolved.

Tôi nghi ngờ rằng đây là một lỗi vì VPN đã hoạt động tốt với Ubuntu 16.04. Có cách nào để tôi có thể đặt máy chủ DNS trong mạng của mình khi tôi đang sử dụng dịch vụ VPN không?

Cập nhật:

Tôi đã thử kết nối với mạng OpenVPN với tệp cấu hình được đính kèm ở cuối bài, nhưng tôi gặp lỗi sau:

 Authenticate/Decrypt packet error: cipher final failed

Tôi đã xác minh rằng máy chủ sử dụng nén lzo và tôi cũng đã kích hoạt nó. Kết nối vẫn hoạt động nhưng tôi không thể điều hướng đến bất kỳ trang nào trong hoặc ngoài VPN.

Trong tập tin cấu hình được liệt kê dưới đây, tôi đã bao gồm các giải pháp được đăng trong phần trả lời

 client
 dev tun
 proto udp
 remote openvpn.bibsys.no 1194
 remote my-server-2 1194
 resolv-retry infinite
 nobind
 user myuser
 group myuser
 persist-key
 persist-tun
 ca ca-cert.pem
 cert openvpn.crt
 key openvpn.key
 cipher AES-256-CBC
 comp-lzo yes
 script-security 2
 up /etc/openvpn/scripts/update-systemd-resolved
 down /etc/openvpn/scripts/update-systemd-resolved
 down-pre

1
Khi gỡ lỗi một vấn đề tương tự như vấn đề không thể giải quyết chính xác như vậy, tôi đã sử dụng resolvectl statusresolvectl helptìm ra giải pháp cụ thể của mình.
notbad.jpeg

Câu trả lời:


27

Tôi tìm thấy một giải pháp trên bài đăng blog này . Mặc dù có hai giải pháp được đề cập, tôi thích sử dụng giải pháp thứ hai vì điều đó có nghĩa là DNS của tôi được đặt bởi máy chủ OpenVPN (giải pháp đầu tiên có nghĩa là tôi sử dụng cùng một máy chủ DNS cho dù tôi có kết nối với máy chủ OpenVPN hay không).

Nói ngắn gọn:

  • sudo mkdir -p /etc/openvpn/scripts
  • sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
  • sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved

Sau đó chỉnh sửa tệp khách hàng OpenVPN của bạn (ví dụ: client.ovpn) bằng cách thay đổi tập lệnh lên / xuống thành:

script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved

(Tôi đã nhận xét các cài đặt lên / xuống ban đầu).


Nếu một người đang sử dụng tiện ích openvpn gnome thì tệp config.ovpn nên được lưu trữ ở đâu?
orestis

1
config.ovpnkhông "tìm thấy" - đó là tệp cấu hình máy khách được sử dụng để kết nối. Bạn có thể tạo nó hoặc được nhà cung cấp OpenVPN cấp cho bạn (và nó có thể không được gọi config.ovpn- nó có thể được gọi là bất cứ thứ gì, như client.ovpn).
Andy Turfer

Điều này hoạt động hoàn hảo.
Ahsanul Haque

2
Tôi nhận đượcWARNING: Failed running command (--up/--down): external program fork failed
blockhead

Thật không may, điều này không hoạt động đối với một vpn đang sử dụng tcp, các trang web bên ngoài vpn không được giải quyết, do đó tôi bắt đầu sử dụng client.pritunl.com/#install thấy hữu ích
Saisurya Kattamuri

48

Vấn đề

Tập tin /etc/resolv.confkhông được cập nhật bởi /etc/openvpn/update-resolv-conftập lệnh vì resolvconfkhông được cài đặt theo mặc định trên ubfox 18.04.

Trong thực tế, một trong những dòng đầu tiên của tập lệnh đó kiểm tra /sbin/resolvconfthực thi:

[ -x /sbin/resolvconf ] || exit 0

Cài đặt độ phân giải thông qua apt-getkhông phải là một giải pháp vì /etc/openvpn/update-resolv-conftập lệnh cập nhật /etc/resolv.conftệp với mục nhập DNS được đẩy nhưng thiết bị điều chỉnh dường như bỏ qua nó.

Dung dịch

  1. Ubuntu 18.04 sử dụng systemd-resolved, vì vậy tất cả những gì bạn phải làm là cài đặt tập lệnh trợ giúp openvpn cho systemd-resolvedqua

    sudo apt install openvpn-systemd-resolved
    

    hoặc với các hướng dẫn GitHub này

  2. Cập nhật config.ovpntệp của bạn thêm các dòng sau:

    script-security 2
    up /etc/openvpn/update-systemd-resolved
    down /etc/openvpn/update-systemd-resolved
    down-pre
    

    Điều đó thay vì thêm lên và xuống của /etc/openvpn/update-resolv-confconf.

  3. Để ngăn chặn rò rỉ DNS, bạn nên thêm dòng này vào cuối config.ovpntệp (theo nhận xét vấn đề hệ thống này ):

    dhcp-option DOMAIN-ROUTE .
    

1
Cảm ơn rất nhiều, đã làm việc cho tôi trên Ubuntu 18.04. Và tôi muốn chỉ định, tham số đó script-security 2vẫn cần thiết trước khi lên / xuống dòng, nếu không chương trình bị lỗi (OpenVPN 2.4.4)
lucidyan

Rất vui vì nó đã giúp :) Thay đổi câu cuối cùng trong câu trả lời, với trường hợp của tôi script-security 2 là không cần thiết. Điều đó có lẽ bởi vì tôi đang chạy ứng dụng khách openvpn với quyền root (với sudo)
Qlimax

1
@Qlimax Bạn có biết làm thế nào để chúng tôi nhập các cài đặt này vào ứng dụng khách gvome openvpn không?
orestis

2
@orestis bạn phải cài đặt gói này sudo apt-get install network-manager-openvpn-gnome Sau đó, bạn sẽ có thể nhập tệp cấu hình .ovpn vào trình quản lý mạng gnome. Askubfox.com/questions/187511/ UI UI đã thay đổi theo thời gian, bạn sẽ có thể tìm thấy điều đó trong cài
đặt-

1
Điều ngạc nhiên là điều này hiệu quả với rất nhiều bạn: Tôi có một ovpn.config, vâng, nhưng NetworkManager dường như không sử dụng nó. Bạn đã chỉnh sửa tệp và nhập lại tệp, đặc biệt là để thay thế các tập lệnh tăng / giảm. Bởi vì tôi thấy tệp nhị phân mờ / usr / lib / NetworkManager / nm-openvpn-service-openvpn-helper này được sử dụng mà tôi không thể tìm thấy tài liệu. Nếu cần nhập lại ovpn.config, vui lòng sửa đổi câu trả lời.
Harald

4

Trên thực tế, có một giải pháp dễ dàng hơn nhiều cho vấn đề này. Vấn đề là với lưu lượng DNS và cách Ubuntu 18 quản lý điều đó. Theo mặc định, chuyển tiếp IP bị vô hiệu hóa, đó là những gì OpenVPN cần để cung cấp kết nối mạng phù hợp. Tất cả bạn phải làm là chạy lệnh sau:

sudo nano /etc/sysctl.conf

Khi bạn đã mở tệp này, hãy tìm dòng chứa net.ipv4.ip_forward. Nếu dòng này được nhận xét, hãy xóa dấu # ở phía trước của dòng (nếu nó không được nhận xét thì bạn có vấn đề khác). Lưu tệp và sau đó khởi động lại phiên bản máy chủ OpenVPN của bạn.

Khắc phục sự cố này không yêu cầu bất kỳ sửa đổi nào đối với máy khách hoặc mã OpenVPN sau khi nâng cấp lên Ubuntu 18. Đã kiểm tra và xác nhận hoạt động.

Tuy nhiên, điều này rõ ràng đòi hỏi bạn có thể quản trị máy chủ. Và thật không may, lỗi tồn tại đối với nhiều người chỉ kết nối với 18.04 với máy chủ OpenVPN do người khác quản lý ...


không làm việc cho tôi. Làm thế nào bạn xác định rằng đây là vấn đề, trong trường hợp của bạn?
hwjp

CẢNH BÁO: bạn không cần bật ip_forward trên máy khách openvpn , KHÔNG BAO GIỜ! đó là một rủi ro bảo mật. Trên máy chủ openvpn , bạn có thể cần nó, tùy thuộc vào cấu hình được sử dụng và đây có thể là lý do tại sao bình luận này hiển thị.
higuita

2

Đã thử nghiệm trên Ubuntu 18.04 vào ngày 13 tháng 9 năm 2018

Có một lệnh hữu ích khác để thiết lập những gì bạn cần thông qua dòng lệnh. Nhưng trong trường hợp của tôi, bạn có thể kiểm soát kết nối VPN của mình bằng cả dòng lệnh và GUI.

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- là yêu cầu theo mặc định, nhưng không ảnh hưởng đến bất cứ điều gì

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default không nên sử dụng cổng từ xa làm tuyến mặc định

Và nhiều cảm giác quan tâm cuối cùng:

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

Sau đó, bạn có thể điều khiển vpn bằng GUI hoặc sử dụng các lệnh sau:

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com


0

Tôi cũng bị ảnh hưởng. Trong trường hợp của tôi, tôi đang sử dụng OpenVPN với một máy chủ tên nội bộ (nằm trong VPN). Điều đó đã hoạt động cho đến Ubuntu 17.10 (với "hosts: files dns" trong /etc/nsswitch.conf).

/etc/resolv.conf đã được cập nhật chính xác bởi các tập lệnh openvpn (thông qua các cuộc gọi đến / etc / openvpn / update-decv-conf trong tệp cấu hình máy khách openvpn).

Tuy nhiên, độ phân giải tên cho các máy chủ bên trong VPN không còn hoạt động nữa (hoặc ít nhất là thỉnh thoảng ... Tôi đoán bộ đệm DNS cục bộ đã chọn tên, nhưng sau một thời gian khá dài).

Điều có vẻ hữu ích, hoặc thậm chí giải quyết vấn đề (mặc dù còn quá sớm để nói) là cài đặt gói dưới đây:

sudo apt cài đặt openvpn-systemd-giải quyết

Trong vài ngày, tôi sẽ có thêm kinh nghiệm cho dù điều này có khắc phục được sự cố của tôi hay không.

Nếu bạn cũng bị ảnh hưởng, hãy thử điều này và gửi bình luận!

Chúc mừng

Michael.


Cuối cùng, nó dường như không phải là một giải pháp. Tôi có vấn đề một lần nữa. Tôi đoán một cái gì đó khác đã làm cho nó hoạt động ...
Michael Opdenacker

1
Có lẽ sau đó bạn xóa câu trả lời của bạn? Có vẻ như quyết định đã được tìm thấy dưới đây
lucidyan
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.