Let’s briefly run to a full sequence of commands, all executed as user root
. The output is often truncated.
# netstat -nplu | grep 53
udp 0 0 127.0.0.1:53 0.0.0.0:* 1234/connmand
i.e. connman is listening on the DNS port.
# zypper in dnsmasq
# systemctl restart dnsmasq
# systemctl status dnsmasq
...
dnsmasq[32559]: failed to create listening socket for port 53: Address already in use
...
dnsmasq didn’t start since connmand already claimed port 53.
# echo "SYSCONF_ARGS=-r" > /var/lib/environment/connman/no_dns_proxy.conf
# systemctl restart connman
# netstat -nplu | grep 53
No listening server any more on port 53 …
# systemctl restart dnsmasq
# systemctl status dnsmasq
...
Active: active (running)
...
Now dnsmasq
is up and running.
To revert the whole transaction, stop and disable dnsmasq, remove /var/lib/environment/connman/no_dns_proxy.conf
, and restart connman
.
That’s hard to answer from here. DNS and VPN is always a pain. If everything is routed through the VPN and the parent DNS is reachable, you should be fine. For cases with multiple company networks with their own DNS servers responsible for different domains and connected via different VPNs I’ve even extended my dnsmock.
With developer mode enabled the changes are easily rolled back though.