# Netatalk (简体中文)

From ArchWiki
Jump to navigation Jump to search
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 启用或启动该服务。

Category:

- Networking (简体中文)