On Thu, Mar 28, 2024 at 03:50:57PM +0100, Buck Horn via Dnsmasq-discuss wrote:
> On 28.03.24 14:28, Chris Green wrote:
> > ... and another system, also running dnsmasq version 2.90:-
> >
> >      chris@t470$ nmap 192.168.1.128 | grep 53
> >      53/tcp    open  domain
> >      chris@t470
> >
> >
> > So why are they acting differently and, possibly more to the point,
> > how do I make dnsmasq listen only on the loopback address?
> 
> 
> Hi Chris,
> 
> you are just probing for port 53, without information about the process
> handling that port, so it could be another resolver on the same machine
> (e.g. systemd-resolved, or a dnsmasq instance controlled by
> NetworkManager) that hogs port 53.
> 
> 
> You may want to consider using something like sudo ss -tulpn sport = 53
> to see what is actually listening.
> 
I did try stopping dnsmasq and then nothing was listening on port 53.
However, just to prove it:-
root@backup:~# ss -tulpn sport = 53

    Netid State  Recv-Q Send-Q Local Address:Port  Peer Address:Port Process    
                        
    udp   UNCONN 0      0            0.0.0.0:53         0.0.0.0:*     
users:(("dnsmasq",pid=1826,fd=4)) 
    udp   UNCONN 0      0               [::]:53            [::]:*     
users:(("dnsmasq",pid=1826,fd=6)) 
    tcp   LISTEN 0      32           0.0.0.0:53         0.0.0.0:*     
users:(("dnsmasq",pid=1826,fd=5)) 
    tcp   LISTEN 0      32              [::]:53            [::]:*     
users:(("dnsmasq",pid=1826,fd=7))
> 
> For listening on 127.0.0.1 only, you probably should consider to
> explicitly state that as listen-address:
> (quoting https://dnsmasq.org/docs/dnsmasq-man.html)
> 
> -a, --listen-address=<ipaddr>
> 
> Listen on the given IP address(es). Both --interface and
> --listen-address options may be given, in which case the set of both
> interfaces and addresses is used. Note that if no --interface option is
> given, but --listen-address is, dnsmasq will not automatically listen on
> the loopback interface. To achieve this, its IP address, 127.0.0.1, must
> be explicitly given as a --listen-address option.
> 
That doesn't work!  /etc/dnsmasq.conf is now:-

    #
    #
    # Default dnsmasq configuration file, with this configuration file dnsmasq
    # provides only local DNS caching and no DHCP.  This file is used on nearly
    # all my systems which are ever on the home LAN.
    #
    #
    # Set to listen only on the loopback address.
    #
    listen-address=127.0.0.1
    #
    #
    # This sets the upstream server[s] to the one[s] set by Network Manager,
    # usually automatically using DHCP from the ISP's (or my) DHCP/DNS server.
    # If we're on the home LAN the resolv-file will set the nameserver to
    # 192.168.1.1, if away from home it will be the ISP's nameserver[s].
    # 
    resolv-file=/run/NetworkManager/no-stub-resolv.conf

... and, after restarting dnsmasq:-

    chris$ nmap 192.168.1.4 | grep 53
    53/tcp  open  domain
    chris$ 

Plus, why does it work (as the dnsmasq man page entry for listen says it should)
on one system but not on another almost identical system?

-- 
Chris Green

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to