刚刚设置了一台运行 Ubuntu Server 19.04 和 Samba 4.10.0 的 Mac Mini。在 macOS Mojave 客户端上,我看到了两次服务器 - 一次是带有正确 Mac Mini 图标的“Mac Mini”(漂亮主机名),一次是带有问号图标的“mac-mini”(静态主机名)。
我在 Avahi 中明确为前者设置了一个服务。似乎有东西在自动注册第二个。
这是我的 /etc/avahi/avahi-daemon.conf(认为 disallow-other-stacks 会阻止 systemd-resolve 执行其操作):
[server]
deny-interfaces=softether
disallow-other-stacks=yes
ratelimit-interval-usec=1000000
ratelimit-burst=1000
/etc/avahi/services/timemachine.service
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="no">Mac Mini</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Macmini</txt-record>
</service>
<service>
<type>_adisk._tcp</type>
<txt-record>sys=waMa=0,adVF=0x100</txt-record>
<txt-record>dk0=adVN=Backup,adVF=0x82</txt-record>
</service>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
<service>
<type>_sftp-ssh._tcp</type>
<port>22</port>
<txt-record>path=/home/someone</txt-record>
<txt-record>u=someone</txt-record>
</service>
</service-group>
/etc/samba/smb.conf 的相关部分(注意:不指定 fruit:model,因为它没有显示正确的图标,而且我希望 Avahi 无论如何都能设置它):
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
server role = standalone server
fruit:time machine = yes
ea support = yes
disable netbios = yes
disable spoolss = yes
allow trusted domains = no
load printers = no
mdns name = mdns
以下是 avahi-browse 看到的我不想要的内容:
# avahi-browse -a | grep mac-mini
+ lan IPv6 mac-mini Apple TimeMachine local
+ lan IPv4 mac-mini Apple TimeMachine local
+ lan IPv6 mac-mini Microsoft Windows Network local
+ lan IPv4 mac-mini Microsoft Windows Network local
+ lan IPv6 mac-mini _device-info._tcp local
+ lan IPv4 mac-mini _device-info._tcp local
+ lo IPv4 mac-mini Microsoft Windows Network local
+ lo IPv4 mac-mini _device-info._tcp local
+ lo IPv4 mac-mini Apple TimeMachine local
以下是我想要的显示方式:
# avahi-browse -a | grep "Mac Mini"
+ lan IPv6 Mac Mini SSH Remote Terminal local
+ lan IPv4 Mac Mini SSH Remote Terminal local
+ lo IPv4 Mac Mini SSH Remote Terminal local
+ lan IPv6 Mac Mini Apple TimeMachine local
+ lan IPv4 Mac Mini Apple TimeMachine local
+ lo IPv4 Mac Mini Apple TimeMachine local
+ lan IPv6 Mac Mini _device-info._tcp local
+ lan IPv4 Mac Mini _device-info._tcp local
+ lo IPv4 Mac Mini _device-info._tcp local
+ lan IPv6 Mac Mini SFTP File Transfer local
+ lan IPv4 Mac Mini SFTP File Transfer local
+ lo IPv4 Mac Mini SFTP File Transfer local
+ lan IPv6 Mac Mini Apple File Sharing local
+ lan IPv4 Mac Mini Apple File Sharing local
+ lo IPv4 Mac Mini Apple File Sharing local
+ lan IPv6 Mac Mini Microsoft Windows Network local
+ lan IPv4 Mac Mini Microsoft Windows Network local
+ lo IPv4 Mac Mini Microsoft Windows Network local
对于动态注册 mac-mini 的服务以及我使用 Avahi 服务定义明确注册的服务,您有什么想法吗?
答案1
从 Ubuntu 17.10 开始,现有 samba 版本将使用 mDNS 自动将其服务器的存在“注册”到网络的其余部分。无需在 /etc/avahi/services/xxx.service 文件中执行此操作。
由于您出于特殊原因这样做,我建议在 samba 中禁用该功能:
编辑 /etc/samba/smb.conf 并在该行下方workgroup = WORKGROUP
添加以下内容:
multicast dns register = No
您可以尝试重新启动 smbd(sudo service smbd restart),但我认为您必须重新启动系统。