苹果系统有个很棒棒的备份功能,叫做TimeMachine,时间机器对吧,很形象,当然确实也很好用。撒比巨硬搞的那个啥文件历史就巨难用,简直了,无法同台竞技。早期,只有搭配苹果自家的Time Capsule这破玩意才能实现,然后这款路由器实在是不咋滴,性价比也不高。后来,出现了Netatalk+Avahi的组合。Netatalk 是一个免费开源的 AppleTalk 通信协议的实现,Linux 或者 BSD 系统通过它可以充当 Mac 的文件服务器 (AppleShare File Server, 网络协议是 AFP)、AppleTalk 路由、打印服务器等。而Avahi是Zeroconf规范的开源实现,常见使用在Linux上。它可以在没有 DNS 服务的局域网里发现基于zeroconf协议的设备和服务。
两者搭配,就能在局域网内完美模拟出Time Capsule的TimeMachine功能(毕竟它其实是个路由器,总不能模拟出个路由器来吧),目前市场上的各种号称具有TimeMachine功能的NAS和路由器也基本上都是用的这套组合,所以效果不用担心。
PS.本文主要讲搭建,因为我还没买MBP(准备等2017款上市呢),所以后面的配置部分怕不是要去盗图咯(会标明出处的,虽然谁知道出处是不是也是盗的……)
一.安装
①Avahi
这个简单,直接yum就行
yum install avahi -y
②Netatalk
Netatalk的话倒霉的Centos还是没有现成的包……其它系统可以自己找找
首先来装一堆依赖,省得之后出问题
yum install epel-release -y yum install avahi-devel bison cracklib-devel db4-devel dbus-devel dbus-glib-devel docbook-style-xsl flex krb5-devel libacl-devel libattr-devel libevent-devel libgcrypt-devel libtdb-devel libxslt nss-mdns mysql-devel openldap-devel openssl-devel pam_afs_session pam-devel pam_oath perl-IO-Socket-INET6 quota-devel systemtap-sdt-devel tcp_wrappers-devel -y #Centos7装下面的,包有所改动 #yum install avahi-devel bison cracklib-devel dbus-devel dbus-glib-devel docbook-style-xsl flex krb5-devel libacl-devel libattr-devel libdb-devel libevent-devel libgcrypt-devel libtdb-devel libxslt nss-mdns mysql-devel openldap-devel openssl-devel pam_afs_session pam-devel pam_oath perl-IO-Socket-INET6 quota-devel systemtap-sdt-devel tcp_wrappers-devel tracker-devel -y
然后,找了半天发现有提供srpm,虽然是Fedora的,但是Centos也能用 ——> 传送门
yum install gcc make rpm-build -y cd /opt wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.11-0.1.1.fc27.src.rpm rpm -ivh netatalk-3.1.11-0.1.1.fc27.src.rpm cd ~/rpmbuild/SPECS/ rpmbuild -bb netatalk.spec yum install /root/rpmbuild/RPMS/x86_64/netatalk-3.1.11-0.1.1.el6.x86_64.rpm
然后就装好了_(:з」∠)_
二.配置
首先配置Netatalk,由于篇幅和需求问题,我这儿只列出简单配置,详细的请参考官方文档——> 传送门
vi /etc/netatalk/afp.conf #修改为如下 [Global] mimic model = TimeCapsule6,106 #这个是指定让机器在你Mac系统中显示为什么的图标,这儿显示成TM log level = default:warn log file = /var/log/afpd.log hosts allow = 192.168.1.0/24 #允许访问的主机地址 hostname = TimeCapsule #主机名,随你喜欢 uam list = uams_dhx.so uams_dhx2.so #认证方式,这玩意我是不太懂,懒得折腾了 [Homes] basedir regex = /home #优雅得把用户的Home目录列出来 [TimeMachine] path = /data/TimeMachine #数据目录 time machine = yes #yes才支持TimeMachine spotlight = no #关闭spotlight索引,这个在Centos6上是不能开的,缺依赖,7上面可以开,但是不建议,吃资源 rwlist = senra #指定某用户有读写权限 force user = senra #强制指定用户 vol size limit = 100000 #限制TM存储容量,单位为MB。
需要注意,配置文件中的用户是Linux的用户,所以说,请确保你的系统有这个用户且设置了密码,访问的时候会有认证
另外,如果出现了无法访问和写入之类的问题,建议看下所有者和权限(建议把TM目录的所有者改成你指定的用户)
PS.如果要允许匿名访问,可以在uam list处添加uams_guest.so,当然这个是只读的,如果要匿名读写(不安全),请修改为rwlist = nobody
这样就配置完Netatalk了,接下来的Avahi看你需求,如果是在局域网内,那就配,不在局域网内不用开着,因为这个是用于服务自动发现的。
vi /etc/nsswitch.conf #在hosts这行修改为如下,主要是在后面添加mdns4 mdns hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
然后这时候我们就完成配置咯。下面启动服务
service netatalk start service avahi-daemon start #开机启动 chkconfig netatalk on chkconfig avahi-daemon on
然后就好咯,如果是局域网,而且配置了Avahi,那么你的Mac的Finder里应该过一会儿就会自动出现TimeMachine
不是的话你可能需要自己连接了
打开 Finder -> Go -> Connect to Server… 填入机器的 IP 地址(afp://192.168.1.11)后点击 Connect,使用刚才创建的帐号和密码登录进入之后就会看到 TimeMachine 文件夹。
打开 System Preferences -> Time Machine -> On 选择 TimeMachine 文件夹,然后点击 Use Disk 就应该能用了。
(PS.以上图片来自简书篇文章——>传送门)
文章评论