解决freeNas afp服务mac无法连接的问题

解决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用户后
解决freeNas afp服务mac无法连接的问题
在mac上尝试使用freenas用户连接服务器
解决freeNas afp服务mac无法连接的问题

出现了连接立马断开的情况如下图所示
解决freeNas afp服务mac无法连接的问题

解决过程

当时的第一个想法是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.

再次尝试连接解决freeNas afp服务mac无法连接的问题

但还是如下图中显示的连接失败了
解决freeNas afp服务mac无法连接的问题

再次查看日志发现如下的一些内容, 每次尝试登陆都会打印出这段日志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 afp服务mac无法连接的问题
通过下面的命令创建freenas的家目录/mnt/Media/freeNas,注意这里的家目录必须是以挂载路径为前缀,我这里挂载路径是/mnt/Media/,所以合法的家目录是这样的/mnt/Media/*

mkdir /mnt/Media/freeNas
chmod -R freenas:freenas /mnt/Media/freeNas

这时候再去连接,你会发现已经可以成功连接了
解决freeNas afp服务mac无法连接的问题

这个时候便可以使用和这个目录来作为存储端了.

参考

10. Sharing — FreeNAS User Guide 9.3 Table of Contents
9.2.1.8 - How to add global options to afp.conf? | TrueNAS Community

上一篇:[PyTorch 学习笔记] 2.3 二十二种 transforms 图片数据预处理方法(**************************************)


下一篇:移动端 之 响应式 布局