Netatalk

出自 ArchWiki

Netatalk 是 Apple Filing Protocol (AFP) 的自由开源实现。它允许类 Unix 操作系统充当 Macintosh 电脑的文件服务器。

安装

安装 netatalkAUR 软件包。

配置

启动/启用 netatalk.service 服务。

除了已安装(并在升级期间检查)的配置文件外,netatalk 可能会生成两个文件 /etc/netatalk/afp_signature.conf/var/lib/netatalk/afp_signature.conf,其中保存系统 UUID;以及 /etc/netatalk/afp_voluuid.conf/var/lib/netatalk/afp_voluuid.conf,其中保存 TimeMachine 的卷 UUID。这些文件在软件包移除后可能会保留,在大多数情况下应保留,以消除通过本地网络广播的服务的歧义。

Netatalk 3.x 使用单个配置文件 /etc/afp.conf。请参阅 afp.conf(5) 和以下示例(确保进程具有对 afpd.log 的写入权限)

/etc/afp.conf
[Global]
 mimic model = TimeCapsule6,106
 log level = default:warn
 log file = /var/log/afpd.log
 hosts allow = 192.168.1.0/16

[Homes]
 basedir regex = /home

[TimeMachine]
 path = /mnt/timemachine
 valid users = tmuser
 time machine = yes

[Shared Media]
 path = /srv/share/media
 valid users = joe sam
警告: 避免在 afp.conf 中使用符号链接。

访客访问

为了允许访客对您的共享文件夹进行只读访问,请将以下行添加到 [Global] 部分

/etc/afp.conf
[Global]
uam list = uams_guest.so

要允许访客进行读/写访问,首先,如上例所示允许只读访问,然后将以下行添加到特定的共享部分

/etc/afp.conf
[Your Share]
path = /mnt/public/share
rwlist = nobody

iptables

如果您使用 iptables 软件包进行防火墙服务,请考虑添加以下内容(根据需要将 -I 替换为 -A

Bonjour/Zeroconf
iptables -I INPUT -p udp --dport mdns -d 224.0.0.251 -j ACCEPT
iptables -I OUTPUT -p udp --dport mdns -d 224.0.0.251 -j ACCEPT
AFP
iptables -I INPUT -p tcp --dport afpovertcp -j ACCEPT
SLP
iptables -I INPUT -p tcp --dport slp -j ACCEPT
iptables -I OUTPUT -p tcp --dport slp -j ACCEPT
iptables -I INPUT -p udp --dport slp -j ACCEPT
iptables -I OUTPUT -p udp --dport slp -j ACCEPT
AppleTalk
iptables -I INPUT -p tcp -m multiport --dport at-rtmp,at-nbp,at-echo,at-zis -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --dport at-rtmp,at-nbp,at-echo,at-zis -j ACCEPT

启用 Bonjour/Zeroconf

Bonjour/Zeroconf 现在是 netatalk 的一项要求,默认情况下编译。无需配置,netatalk 将使用 dbus 链接注册自己的服务。请确保将 -mimicmodel 设置为所需的字符串(有关完整列表,请参阅 Mac 上的 /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist)。

如果 avahi-daemon.service 尚未运行,您可能需要启动启用它。