Netatalk (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Netatalk翻译。上次翻译日期:2020-04-23。如果英文版本有所更改,则您可以帮助同步翻译。

Netatalk 是一个 Apple Filing Protocol (AFP) 的开源实现。它为 Unix 风格系统提供了与 Macintosh 文件共享的功能。

安装

安装 netatalkAUR 包。

配置

使用 systemd 来启用或启动 netatalk.service

除了一并安装的配置文件(升级的时候会检查这些文件),另外 Netatalk 可能会生成 /etc/netatalk/afp_signature.conf/var/state/netatalk/afp_signature.conf,来保存系统的 UUID;/etc/netatalk/afp_voluuid.conf/var/state/netatalk/afp_voluuid.conf 来保存 Time Machine 的 UUID。为了消除本地网络的服务广播的歧义,移除包的时候可能并不会删除这些文件。

Netatalk 3.x 只使用一个配置文件 /etc/afp.conf。 查看 man afp.conf 来配置该文件(需要进程拥有 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 里面使用符号链接(symbolic link)

来客访问

如果要让来客 只读 地访问你的共享文件夹,在 [Global] 这一行的下面加入以下片段:

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

要让来客拥有 读/写 权限,首先要像上面一样建立只读权限,再添加下面这一行到指定的分享片段:

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

IP Tables

如果你使用 iptables 包来做防火墙,可能需要加入下面几行:(如果需要的话,可以用用 -A 来 替换掉 -I)

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 没有运行的话,可能需要 使用 systemd 启用或启动该服务。