기본 프로그램은 mDNS 이름을 확인할 수 있는데 왜 Nix 프로그램은 mDNS 이름을 확인할 수 없나요?

기본 프로그램은 mDNS 이름을 확인할 수 있는데 왜 Nix 프로그램은 mDNS 이름을 확인할 수 없나요?

내 기본 프로그램(Fedora)은 다음과 같이 mDNS / Avahi / zeroconf 이름을 확인할 수 있습니다.

$ ping felonyspork.local -c 1  
PING felonyspork.local (192.168.88.169) 56(84) bytes of data.
64 bytes from 192.168.88.169 (192.168.88.169): icmp_seq=1 ttl=64 time=1.73 ms

--- felonyspork.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.734/1.734/1.734/0.000 ms

$ ssh felonyspork.local        
Last login: Mon Apr 25 16:05:34 2022 from 192.168.88.200

$ exit
Connection to felonyspork.local closed.

그러나 내 Nix 설치 프로그램은 다음과 같습니다.

$ nix-shell -p openssh ssh-tools

[nix-shell:~/src/nixconfig]$ ssh-ping -c 1 felonyspork.local
SSHPING felonyspork.local

--- felonyspork.local ping statistics ---
1 requests transmitted, 0 requests received, 100% request loss

[nix-shell:~/src/nixconfig]$ ssh felonyspork.local
ssh: Could not resolve hostname felonyspork.local: Name or service not known

다음 위치에 mDNS가 구성되어 있습니다 /etc/nsswitch.conf.

hosts:      files myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

그리고 avahi-daemon내 시스템에서 실행 중입니다.

mDNS 이름을 올바르게 확인하도록 Nix 프로그램을 얻으려면 어떻게 해야 합니까? Morph를 사용하여 배포하려면 작동하는 Nix SSH 세션이 필요하기 때문에 이는 특히 중요합니다.

답변1

여기서 누락된 링크는 다음과 같습니다 nscd. 단순히 nscd데몬을 설치하고 시작하면 Nix에 설치된 프로그램이 작동하게 됩니다.

$ sudo dnf install nscd
$ sudo systemctl start nscd.service
$ nix-shell -p ssh-tools

[nix-shell:~]$ ssh-ping felonyspork.local
SSHPING felonyspork.local
Pong from felonyspork.local: ssh_seq=1 time=2191 ms
Pong from felonyspork.local: ssh_seq=2 time=1310 ms
^C
--- felonyspork.local ping statistics ---
2 requests transmitted, 2 requests received, 0% request loss

관련 정보