Dietpi-vpn using custom option through ProtonVPN does not seem to provide name resolution.
I’m connected, but it shows no up or down traffic, and I can only ping ip addresses, not domain names.
Required Information
- DietPi version |
cat /boot/dietpi/.version
G_DIETPI_VERSION_CORE=9
G_DIETPI_VERSION_SUB=19
G_DIETPI_VERSION_RC=2
G_GITBRANCH=‘master’
G_GITOWNER=‘MichaIng’ - Distro version |
echo $G_DISTRO_NAME $G_RASPBIAN
trixie 0 - Kernel version |
uname --all
Linux PiZero2W 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1 (2025-09-16) aarch64 GNU/Linux - Architecture |
dpkg --print-architecture
arm64 - SBC model |
echo $G_HW_MODEL_NAMEor (EG: RPi3)
RPi Zero 2 W (aarch64) - Power supply used | (EG: 5V 1A RAVpower)
5V 1A - SD card used | (EG: SanDisk ultra)
Samsung
Steps to reproduce
-
SSH into the PI as root, and Launch dietpi-vpn
-
Select ‘ProtonVPN : Connect to ProtonVPN’
-
Error log message: ‘curl: (22) The requested URL returned error: 400’
My understanding is that the API is no longer available / login credentials method has changed? -
OK. Forget that then, and exit. I’ll try the custom option instead…
-
Login to ProtonVPN account via a the web browser on the PC
-
Go to ‘Downloads’ and scroll down to ‘OpenVPN configuration files‘
-
Select platform as ‘GNU/Linux‘, Protocol as ‘UDP‘, and select config file to download as ‘Standard server configs‘
-
Back on the Pi:
-
Launch dietpi-vpn again, and select ‘Custom : Use your own .ovpn file‘
-
Don’t know how to get the file when asked to browse for it, so exit.
-
Open a blank text file with
nano temp.ovpn -
On the PC, open and copy the downloaded ovpn file.
-
Paste into nano in the terminal window (Ctrl+Shift+V)
-
Ctrl X. Y, Enter - to exit and save
-
Run dietpi-vpn again again
-
Select ‘Custom : Use your own .ovpn file‘
-
Browse to /root directory and select the temp.ovpn file
-
Enter the Username and Password found in the ProtonVPN account (Account > OpenVPN / IKEv2 username)
-
Select ‘Apply : Save settings and restart VPN connection‘ (leaving all the other settings alone)
-
Get shown the message ‘Note that IPv6 will be disabled when VPN is connected, to prevent IPv6 leakage.‘ Hit OK
-
Some stuff then runs in the terminal to install/configure the things it needs
-
Then shown the same dietpi-vpn page again
-
WAN IP : curl: (28) Resolving timed out after 3000 milliseconds │
│ State : Connected │
│ Traffic : Sent = 0 MiB | Received = 0 MiB -
Exit, and the last few lines in the terminal are:
[ OK ] DietPi-VPN | APT install openvpn
[ OK ] DietPi-VPN | systemctl restart dietpi-vpn
[ OK ] DietPi-VPN | Connection established: XXX.XX.XXX.X←I’ve X’d out the IP -
ping -c 3 dietpi.comresponds with:
ping: dietpi.com: Temporary failure in name resolution -
Ping dietpi.com from another machine to get the IP address, and try again on the Pi:
root@PiZero2W:~# ping -c 3 104.26.8.98 PING 104.26.8.98 (104.26.8.98) 56(84) bytes of data. 64 bytes from 104.26.8.98: icmp_seq=1 ttl=57 time=22.8 ms 64 bytes from 104.26.8.98: icmp_seq=2 ttl=57 time=23.4 ms 64 bytes from 104.26.8.98: icmp_seq=3 ttl=57 time=22.9 ms — 104.26.8.98 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 22.845/23.044/23.399/0.251 ms -
So I can get out via the VPN, but there’s no name resolution. DNS issue?
-
OK, so I compare the original ovpn file with the one dietpi-vpn created and see that the lines in the original file download:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-confvs. the ones in /etc/openvpn/client.ovpn
script-security 2
up /var/lib/dietpi/dietpi-vpn/static_up.sh
down /var/lib/dietpi/dietpi-vpn/static_down.sh -
So look at
/etc/openvpn/update-resolv-confand see a whole load of stuff I don’t understand, but it says it parses DHCP from openvpn to resolv.conf -
Is a package called resolv installed?
root@PiZero2W:/etc/openvpn# resolv --help
-bash: resolv: command not foundupdate-resolv-conf looks like it points to the /sbin directory, but I don’t see it there, so try a few more guesses:
root@PiZero2W:/sbin# resolvconf --help
-bash: resolvconf: command not found
root@PiZero2W:/sbin# resolv-conf --help
-bash: resolv-conf: command not found -
OK, it’s probably not installed. So does
up /var/lib/dietpi/dietpi-vpn/static_up.shdo something different instead? -
nano /var/lib/dietpi/dietpi-vpn/static_up.shand it looks like it doesn’t touch DHCP - just deals with disabling IPv6 and iptables if the killswitch is turned on -
And this is where I’m at… Should I copy update-resolv-conf into static_up.sh? Presumably I’d need resolv?…
Extra details
-
systemctl status dietpi-vpn shows:
● dietpi-vpn.service - VPN Client (DietPi) Loaded: loaded (/etc/systemd/system/dietpi-vpn.service; disabled; preset: enabled) Active: active (running) since Mon 2025-12-01 19:46:52 EST; 59min ago Invocation: 34b2c5c9ab504bc19430e9b829a5c255 Main PID: 1936 (openvpn) Status: “Initialization Sequence Completed” Tasks: 1 (limit: 477) CPU: 351ms CGroup: /system.slice/dietpi-vpn.service └─1936 /usr/sbin/openvpn --suppress-timestamps --nobind --config /etc/openvpn/client.ovpn Dec 01 19:46:54 PiZero2W openvpn[1936]: WARNING: OpenVPN was configured to add an IPv6 route. However, no IPv6 has been configured for tun0, therefore the route installation may fail or may not work as expected. Dec 01 19:46:54 PiZero2W openvpn[1936]: sitnl_send: rtnl: generic error (-13): Permission denied Dec 01 19:46:54 PiZero2W openvpn[1936]: ERROR: Linux route add command failed Dec 01 19:46:54 PiZero2W openvpn[1936]: sitnl_send: rtnl: generic error (-13): Permission denied Dec 01 19:46:54 PiZero2W openvpn[1936]: ERROR: Linux route add command failed Dec 01 19:46:54 PiZero2W openvpn[1936]: sitnl_send: rtnl: generic error (-13): Permission denied Dec 01 19:46:54 PiZero2W openvpn[1936]: ERROR: Linux route add command failed Dec 01 19:46:54 PiZero2W openvpn[1936]: sitnl_send: rtnl: generic error (-13): Permission denied Dec 01 19:46:54 PiZero2W openvpn[1936]: ERROR: Linux route add command failed Dec 01 19:46:54 PiZero2W openvpn[1936]: Initialization Sequence Completed -
apt install dnsutils
dig google.com
;; communications error to 209.197.128.2#53: timed out
;; communications error to 209.197.128.2#53: timed out
;; communications error to 209.197.128.2#53: timed out -
I’ve tried this on 2 different PI Zero 2W’s with fresh installs of Dietpi. No other software installed.
-
My ProtonVPN account works fine on Ubuntu desktop, using their client (and with a paid account)