Netatalk —— 老Mac伴侣,组建AppleTalk网络

iBook G3连接局域网中的两台AppleTalk服务器,一台使用Netatalk,另一台使用Windows Server 2003

Netatalk是开源的AFP和AppleTalk文件共享服务器软件,可以在Unix和类Unix系统中运行。OpenWrt路由器甚至都可以部署Netatalk。

Netatalk有v2和v3两个大版本,对AFP支持的协议也不同。v2支持AppleTalk(包括时间服务器和打印服务器),AFP协议从1.1版支持到3.3版,可以支持Apple II、Mac System 6到Mac OS 9,也支持Mac OS X。 v3 不支持AppleTalk,但支持AFP 3.4协议,支持Spotlight索引,客户端至少需要System 7.5。Netatalk如果在Mac OS X中运行,那将不支持AppleTalk网络的搭建。

因此要搭建AppleTalk网络,还需要选择Netatalk v2版本,主要用于文件和打印机共享。服务器硬件是OrangePi 4,RK3399开发板,运行Armbian(Jammy Jellyfish版)。Netatalk v2版本选用2.3.1版本,非git版本。 Debian和Ubuntu源里的Netatalk已经是v3版本了,因此需要手动编译安装v2版本。编译安装教程可以参考Netatalk wiki:

Installing Netatalk 2 on Debian​netatalk.io/docs/Installing-Netatalk-2-on-Debian

安装

这里简要说一下步骤:

先安装编译工具和基本依赖:

sudo apt install build-essential libssl-dev libdb-dev autotools-dev automake libtool libtool-bin pkg-config libcups2-dev cups libavahi-client-dev libgcrypt20-dev tcpd libcrack2-dev libacl1-dev libldap2-dev quota libtirpc-dev

下载v2.3.1版本,解压

tar xf netatalk-2.3.1.tar.xz
cd netatalk-2.3.1

编译,安装需要root权限

./configure --enable-systemd --sysconfdir=/etc --with-uams-path=/usr/lib/netatalk
make
sudo make install

配置

这里简单介绍一下配置一个单区域(zone)的AppleTalk网络,设置文件共享和CUPS打印机共享。Netatalk的配置文件存放在/etc/netatalk目录中。默认的区域(zone)名称是当前的主机名。

默认AFP共享的文件夹是每位用户的Home目录,如果需要建立共享文件夹,需要单独建立。

共享文件夹

新建共享文件夹,如~/afpshare,并设置权限

mkdir ~/afpshare
chmod 2775 ~/afpshare

编辑AppleVolumes.default,设置共享文件夹

sudo nano /etc/netatalk/AppleVolumes.default

在文件末尾插入一行(将USER替换成自己的用户名),引号内的File Server为共享名,可以更改。

/home/USER/afpshare "File Server"

用户鉴定方式及文件编码

设置用户鉴定方式,编辑文件afpd.conf

sudo nano /etc/netatalk/afpd.conf

在文件末尾插入

- -transall -uamlist uams_guest.so,uams_clrtxt.so,uams_dhx2.so -maccodepage MAC_CHINESE_SIMP 

-maccodepage MAC_CHINESE_SIMP 表示Mac客户端使用的Codepage是简体中文,如果客户端使用繁体中文则改成-maccodepage MAC_CHINESE_TRAD。不指定-maccodepage则默认使用Mac_Roman编码,如果客户端存储了中文文件名的资料,则在服务器和现代Mac OS X中会显示乱码文件名。服务器端默认的编码通常是utf8,因此不需要单独指定-unixcodepage utf8,除非服务器上用的编码不是utf8。如果不希望客户端保存用户名和密码,还可以加入-nosavepassword参数。

设置使用网卡

设置AppleTalk使用的网卡,一般为eth0,编辑文件atalkd.conf

sudo nano /etc/netatalk/atalkd.conf

在文件末尾加入一行eth0

设置打印服务器

Netatalk可以自动共享CUPS打印机。在设置完CUPS打印机后,编辑文件papd.conf

sudo nano /etc/netatalk/papd.conf

在末尾加入一行

cupsautoadd:op=root:

启动Netatalk服务

运行命令

sudo systemctl enable atalkd.service afpd.service cnid.service papd.service
sudo systemctl start atalkd.service afpd.service cnid.service papd.service

如果不需要运行打印机共享,可以去掉papd.service。

Netatalk服务启动后,可以先检查AppleTalk内核模块是否加载:

lsmod | grep appletalk

如果appletalk内核模块没有加载,可以尝试重新启动atalkd.service服务。

检查当前网络的AppleTalk设备,运行

nbplkup

如果看到了AFPServer和LaserWriter,说明文件共享和打印机共享设置成功。

nbplkup示例输出:

Canon G3800 OPi4:LaserWriter                 65280.114:130
orangepi4:AFPServer                          65280.114:128

Mac OS客户端连接

AppleTalk不依赖TCP/IP协议,也可以在以太网中使用。Mac OS客户端插入网线后,在同一网络内一般可以直接发现。要访问共享文件,需要AppleShare功能扩展;而打印机共享需要LaserWriter功能扩展,其版本需要是7.x/8.x,建议使用LaserWriter 8版本。

访问文件服务器

在苹果菜单中打开“选配器”,选取AppleShare

选择一个文件服务器,输入用户名密码

选取要访问的项目

早期AppleShare只支持AppleTalk网络,因此如果是Netatalk v3,则无法在列表中找到服务器。System 7.5版本开始,AppleShare支持通过输入IP地址来查找服务器,如果是Netatalk v3则需要System 7.5客户端。

如果使用AirPort网卡上网,也不能通过选配器查找AppleTalk网络,只能用有线网。如果要连接AFP文件服务器,可以指定IP地址访问。(更正:AirPort网卡也支持AppleTalk网络,需要在AppleTalk控制板中设置使用的端口为AirPort而不是以太网。)

Mac OS 9中有一个“网络浏览器”应用程序,也可以浏览AppleTalk网络。但如果遇到用户登录失败的情况,还需要在选配器中使用AppleShare。

连接共享打印机

在“选配器”中选择LaserWriter,在列表中选取共享的打印机,点击设置。在选择PPD文件的对话框中选取“通用”。

在自动配置完成后,桌面上会出现打印机的图标。之后便可以使用这台打印机来打印文档了。至于原理,LaserWriter打印机使用的是PostScript打印语言,而CUPS也支持PostScript语言,因此只需要CUPS能正常打印即可。

服务器管理WebUI

Netatalk开发了Webmin管理模块,用于远程管理。

先安装Webmin

curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh 
sudo sh setup-repos.sh
sudo apt install webmin --install-recommends

安装Netatalk模块的依赖

sudo apt install libcgi-ajax-perl libcgi-application-perl

下载Webmin模块

https://sourceforge.net/projects/netatalk/files/Webmin/netatalk2-wbm-1.2.tgz/download

使用root账户登录管理界面

https://sourceforge.net/projects/netatalk/files/Webmin/netatalk2-wbm-1.2.tgz/download

打开侧边Webmin Configuration,然后找到Webmin Modules,再选择本地的netatalk2-wbm-1.2.tgz进行安装。

安装后,可以在左侧Servers里找到Netatalk Classic Mac File Sharing,便可以管理服务器了。

如果不想用Webmin管理, 也可以参考Netatalk v2的手册,手动编辑配置文件。

Netatalk 2.3 Manual​netatalk.io/2.3/htmldocs/

Related post

  1. NO IMAGE
  2. NO IMAGE
  3. NO IMAGE
  4. NO IMAGE
  5. NO IMAGE
  6. NO IMAGE

There are no comment yet.