Netatalk
Netatalk 是一個 Apple Filing Protocol (AFP) 的開源實現。它為 Unix 風格系統提供了與 Macintosh 文件共享的功能。
安裝[編輯 | 編輯原始碼]
配置[編輯 | 編輯原始碼]
使用 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 啟用或啟動該服務。