Netatalk (简体中文) - ArchWiki

Jump to content
翻译状态：本文是 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 启用或启动该服务。

Category:

- Networking (简体中文)