解决freeNas afp服务mac无法连接的问题
xiaojueguan的IT世界
环境介绍
freeNas版本
root@freenas[/var/log]# cat /etc/version
FreeNAS-11.3-U5 (2e4ded5a0a)
MacOs版本
❯ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 11.5.2 (20G95)
Kernel Version: Darwin 20.6.0
...
Computer Name: Xiaojue’s MacBook Pro
...
问题描述
在下图accounts目录下的Users里创建完freenas
用户后
在mac上尝试使用freenas
用户连接服务器
出现了连接立马断开的情况如下图所示
解决过程
当时的第一个想法是afp服务没起来,登陆服务器通过下面命令查看服务状态,发现服务已经起来了(freenas上的服务脚本的路径还蛮特别的).
/usr/local/etc/rc.d/netatalk status
查看afp的日志并未有发现比较有用的内容,看afp日志文件的大小和个数, 感觉afp服务每次重启都会写一个日志文件
root@freenas[/var/log]# vi afp.log
Oct 9 00:00:00 freenas newsyslog[42830]: logfile turned over
Oct 10 00:00:00 freenas newsyslog[58994]: logfile turned over
google后发现afp服务使用的配置文件是/etc/local/afp.conf
并且支持打开debug模式,所以我就想着通过打开debug模式来获取更多的信息.通过修改配置项log level
(初看到这样写法的配置项感觉好不可思议,中间居然用空格来当连接符,可能是我见识少了), 最终的配置文件如下:
[Global]
guest account = root
uam list = uams_dhx.so uams_dhx2.so uams_guest.so
max connections = 50
mimic model = RackMac
afpstats = yes
vol dbnest = no
vol dbpath = /mnt/Media
map acls = rights
chmod request = preserve
log file = /var/log/afp.log
log level = default:debug
[Homes]
basedir regex = /mnt/Media
home name = Media
hosts allow = 0.0.0.0/0
time machine = yes
cnid dev = no
file perm = 644
directory perm = 755
umask = 000
veto files = .windows/.mac/
然后重启afp服务,并查看状态确保afp服务已经运行.
/usr/local/etc/rc.d/netatalk restart
/usr/local/etc/rc.d/netatalk status
netatalk is running as pid 23284.
再次尝试连接
但还是如下图中显示的连接失败了
再次查看日志发现如下的一些内容, 每次尝试登陆都会打印出这段日志Error reading header from fd
也就是没法afp服务无法访问/mnt/Media/freeNas
的意思.
Oct 13 21:32:21.614850 afpd[22497] {cnid_dbd.c:238} (debug:CNID): connecting to CNID server: localhost:4700
Oct 13 21:32:21.614979 afpd[22497] {cnid_dbd.c:244} (debug:CNID): connecting volume 'Homes', path: /mnt/Media/freeNas, user: freenas
Oct 13 21:32:21.615050 afpd[22497] {cnid_dbd.c:276} (debug:CNID): init_tsock: ok
Oct 13 21:32:21.615071 afpd[22497] {cnid_dbd.c:393} (debug:CNID): transmit: attached to 'freenas's home'
Oct 13 21:32:21.615878 afpd[22497] {cnid_dbd.c:354} (debug:CNID): dbd_rpc: Error reading header from fd (volume freenas's home): closed
看来在我们如下图创建用户填写home directory
后,freenas并不会帮我们创建用户的家目录
通过下面的命令创建freenas
的家目录/mnt/Media/freeNas
,注意这里的家目录必须是以挂载路径为前缀,我这里挂载路径是/mnt/Media/
,所以合法的家目录是这样的/mnt/Media/*
mkdir /mnt/Media/freeNas
chmod -R freenas:freenas /mnt/Media/freeNas
这时候再去连接,你会发现已经可以成功连接了
这个时候便可以使用和这个目录来作为存储端了.
参考
10. Sharing — FreeNAS User Guide 9.3 Table of Contents
9.2.1.8 - How to add global options to afp.conf? | TrueNAS Community