将 Linux 作为 Time Capsule 使用

  2014-03-25 00:00:00 CST

  Jingwen Peng

  Linux Mac

TimeCapsule

Mac OS X 用户一定对 Time Machine 不会陌生 (除非你的 Mac 上运行着 Windows,默认忽略这种半奇葩行为)。Time Machine 提供了一个几乎完美的数据备份方案,可以随时找回删除的文档或者轻而易举的返回到文件的上一版本。

Apple 提供了两种使用 Time Machine 的方法,一是使用外置硬盘,二是使用 Airport Time Capsule。从数据的安全性和备份的效率上考虑,第一种方法当然是最可靠的,但是总是接着一个外置硬盘也不太现实。每天或者每隔一段时间插上硬盘,备份一下,也是一个很好的选择。如果使用 Airport Time Capsule 就能省去接外置硬盘的步骤,直接通过网络备份。不过要使用网络备份,得去购买 Airport Time Capsule,另外 Airport Time Capsule 只有一块硬盘,一旦硬盘损坏,数据当然也就受到威胁了。

由此,更完美的解决方案应该是带有 Raid 冗余阵列的 Airport Time Capsule,这个想想就好了,目前买不到,就算上市了,价格也会相当可怕。

这里给出一个替代方案,使用 Linux 服务器搭建 afp 服务,从而给 OS X 提供 Time Machine Server 服务。 至于你的数据有多安全,有多少容量,有没有冗余,完全就是 Linux 主机要考虑的事情。 这样一来基本上解决了所有矛盾。即可以通过网络随时随地备份,又可以保证数据安全,更重要的是不需要购买 Airport Time Capsule。


下面开始搭建 afp 服务器,afp 是 Apple Filing Protocol,一种客户端和服务器之前用于文件共享和网络服务的协议。

(我使用的 Linux 发行版是 CentOS,若打算尝试,请根据发行版的不同自行调整步骤。)

创建用户

创建一个用于 Time Machine 备份的用户,密码最好设的安全些。

1
2
$ sudo useradd -m TMachine
$ sudo passwd TMachine

安装软件包

首先添加 epel 源,然后安装 netatalk avahi dbus nss-mdns

1
$ yum -y install netatalk avahi  dbus nss-mdns

配置服务

编辑 /etc/netatalk/AppleVolumes.default 更改最后一行,allow 后加允许访问的用户,options:tm 表示允许 Time Machine 备份,务必保证指定的用户可写用于的备份目录 即 /path/to/store/backup/files allow:TMachine options:tm

编辑 /etc/nsswitch.conf 更改 hosts 为 hosts: files mdns4_minimal dns mdns mdns4

创建文件 /etc/avahi/services/afpd.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
	<service-group>
	<name replace-wildcards="yes">%h</name>
	<service>
		<type>_afpovertcp._tcp</type>
		<port>548</port>
	</service>
	<service>
		<type>_device-info._tcp</type>
		<port>0</port>
		<txt-record>model=TimeCapsule</txt-record>
	</service>
</service-group>

禁用 avahi 的 ssh 服务

1
$ sudo mv /etc/avahi/services/ssh.service /etc/avahi/services/ssh.service.disabled

配置防火墙

1
$ sudo iptables -I INPUT -p tcp --dport 548 -j ACCEPT

启动服务

1
2
3
$ sudo service avahi-daemon start
$ sudo service messagebus start
$ sudo service netatalk start

经过上述努力之后,就可以使用 Finder 连接上 afp 服务器了。 在 Finder 中 Command + K,地址为 afp://YourIP, 用户和密码为刚才创建的。 然后打开 Time Machine 设置,添加硬盘,选择刚才连接上的网络存储就 OK 了。

如果您有疑问或建议,请在下方评论区域留言

遵循 BY-NC-ND 协议

评论功能加载中...