Table of Contents
Ubuntu - VPN - OpenVPN - Configure OpenVPN to resolve local DNS & hostnames
To allow accessing local computers on the LAN by their hostnames instead of just by IP Address.
NOTE: By default, the client resolv.conf file does not contain a line to point the client to the VPN DNS server; nor does it contain a line telling the client what the local domain name is.
- Adding these lines (and removing when VPN is down) to resolv.conf automatically is the goal.
Server
Ensure the following lines are in the server config file /etc/openvpn/server.conf.
- /etc/openvpn/server.conf
push "dhcp-option DNS 192.168.1.1" push "dhcp-option DOMAIN localdomain"
NOTE: This tells the client that they should use 192.168.1.1 as the DNS server, and localdomain as a domain.
Client
Install the resolvconf package to give your OpenVPN client the ability to rebuild the resolv.conf file when you start and stop your VPN connection.
This also backups the existing resolv.conf file; and creates a symlink to the resolv.conf file.
sudo apt install resolvconf sudo mv /etc/resolv.conf /etc/resolv.conf.orig sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
Add the following lines to the client .ovpn file.
up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf
NOTE: This will run update-resolv-conf every time the client connects to or disconnects from the VPN server.
Test
Run the openvpn command with --script-security 2 flag to allow update-resolv-conf to be run:
sudo openvpn --script-security 2 --config /path/to/client.ovpn