I am using Private Internet Access (PIA) for my VPN. I’ve used PIA’s DNS without any issues with Fedora 41 and 42. Since upgrading to Fedora 43, I get an error from PIA saying that the DNS couldn’t be configured (see attachment). If I choose ‘Use Existing DNS’, I’m able to connect to the PIA VPN server.
FYI, I’ve sent a request to PIA for help with this issue. But, I’m hoping that I could get some insights from a Fedora specific perspective.
How would one be able to help you solve the problem without even knowing what step is failing. Apparently, there is button that shows you a log file. You should take a look and/or post the logs.
The link/button to display the PIA log file is unresponsive, because PIA is looking for /opt/piavpn/var/daemon.log which doesn’t exist. Since PIA runs as systemd service, I ran journalctl -f to try to see what is happening. There is a non-stop sequence of messages related to iptables (NETFILTER_CFG, ….. com=iptables). Please see the attachment. I’m not familiar with iptables, but plan to dig deeper.
I was able to figure out how to enable logging from PIA. The following is the message that occurs non-stop, when the error for selecting PIA DNS occurs:
I was able to fix this problem by installing the most recent version of PIA despite being labelled for Ubuntu 18.04+, Mint 19+, Arch, Debian (there was No version that was designated for RedHat/Fedodra).
Glad you got it sorted! The underlying cause is the iptables/nftables transition that completed in Fedora 43. The newer PIA installer you used (the Ubuntu 18.04+ package) ships a more recent version of the daemon that handles the nftables compatibility layer properly – or has been updated to use nftables-native commands. The older Fedora-specific installer was likely built against an older iptables API that doesn’t translate cleanly through iptables-nft on F43, which is what causes that NETFILTER_CFG loop in journalctl. For anyone else finding this via search – if updating PIA is not an option, you can also switch to iptables-legacy mode as an alternative. Install with sudo dnf install iptables-legacy, then run sudo alternatives --set iptables /usr/sbin/iptables-legacy and sudo alternatives --set ip6tables /usr/sbin/ip6tables-legacy, then sudo systemctl restart piavpn. That bypasses the nftables translation layer entirely and lets older VPN clients use the traditional kernel iptables backend without any code changes on PIA’s side.