PVE文件管理新手指南 篇八:LXC安装Turnkey File Server,集成SMB、SFTP、NFS、WebDAV,替代群晖威联通做轻量NAS
什么是TurnKey File Server
Turnkey File Server是来自Turnkey Linux 项目一站式解决方案之一,它是一个同时支持SMB、SFTP、NFS、WebDAV 和 rsync 文件传输协议的文件服务器,它将 Windows 兼容的网络文件共享与基于 Web 的文件管理器结合在一起。TurnKey File Server 支持 SMB服务器的配置允许服务器用户管理私有或公共存储中的文件。与之前我们手动部署NAS不同的是,TFS提供了可视化后台界面来创建、管理SMB用户及文件权限,以及基于WebDAV的文件管理界面,提供了开箱即用的文件管理体验。对于不想在PVE上命令行部署和管理NAS、也不想部署群晖虚拟机这样吃配置的用户,可以选择安装这个轻量的文件服务器作为替代方案。
官方网站:https://www.turnkeylinux.org/fileserver
界面预览:
除了File Sever,还有其它的如集成了Jellyfish的MediaSever、NextCloud可以选择安装,感兴趣的可以去官网看看:
在PVE上使用LXC容器部署安装Turnkey File Server
注意:使用LXC部署TFS之前需要将你的本地硬盘映射或直通给LXC容器,硬盘文件系统格式建议是exFAT或NTFS,如果是ext4需要处理权限问题。
1. 下载CT模板
local>CT模板>模板>搜索下载Turnkey File Server
2. 创建LXC容器
不熟悉LXC创建流程的可以浏览我之前的文章:
这里只说不同点,部署Turnkey File Server必须要勾选无特权容器,顺便把嵌套也选上,设定好root密码:
然后选择之前下载的TurnkeyFS模版:
网络那里建议选择静态IPv4地址以便后续方便访问。其它的默认即可。
3. 启动安装
启动LXC容器,输入root密码登录进入配置界面
首先设定Root Samba密码,至少8个字符,包含大小写和数字,OK后再次输入确认:
APIkey和Email选择Skip跳过:
选择Install
开始安装:
安装完提示重启:
重启完成后来到命令行界面:
根据提示,输入confconsole
,可以回到图形配置界面查看IP地址:
这里可以查看WebDAV、WebShell命令行、管理后台Webmin和SMB、SSH的访问地址和端口号。
5. 访问后台界面
WebDAV:浏览器直接输入IP地址,使用之前设定的root samba账号密码登录:
WebShell:浏览器输入IP地址+12320端口
Webmin:浏览器输入IP地址+12321端口
配置Turnkey File Server
使用LXC root账号登录Webmin后台管理界面:
设定Samba用户
选择Users and Groups,点击Create a new user:
设置用户名,选择Normal password设置密码:
点击creat创建,回到列表可以看到刚才创建的用户:
创建Group
把之前创建的用户加入Group:
设置共享目录(适用于NTFS和exFAT格式的硬盘)
选择Severs>Samba Windows File Sharing,删除所有预设共享:
然后点击Create a new file share创建Samba共享:
输入共享名称、选择共享文件夹,设定权限(默认755即可),点击Create创建:
设定完成后是共享目录是只读状态(ReadOnly to all known users):
再次点击进去,选择Security and ACL
将其改为Writeable(可读写)后保存:
将之前设定的用户和群同步成samba用户账号:
回到Severs>Samba Windows File Sharing,点击Convert Users:
之前设定的用户,如果有多个用户可以批量选择:
输入好点击Convert users完成设定(其它选项默认):
重启服务
点击restart samba
访问验证
之后就可以在Windows资源管理器映射IP地址来访问Turnkey File Sever文件服务器中的文件内容了。
修改Turnkey File Sever下访问ext4格式硬盘的权限
TurnkeyFS LXC本身是无特权容器,默认是无法直接读写ext4磁盘的,如果你的硬盘使用的是ext4文件系统,即使mp映射给LXC后,默认Owner是nobody nogroup,修改Owner权限还是会遇到failed to change owner 256错误:
解决办法:
在PVEshell下修改/etc/subuid和/etc/subgid:
nano /etc/subuid
nano /etc/subgid
分别在subuid和subgid文件内添加一行,让容器内id=1000的普通用户及id=1000的普通用户组映射到host服务器中,允许其读写host服务器中的硬盘:
编辑TurnkeyFS LXC容器配置文件
nano /etc/pve/lxc/102.conf
添加以下内容:
#LXC容器起始id为0(即id=0的root用户),host服务器起始id为100000
#将LXC容器里的 0-999 映射到 host 上的 100000-101000,id个数为1000
lxc.idmap: u 0 100000 1000
lxc.idmap: g 0 100000 1000
#LXC容器起始id为1000(即id=1000的普通用户),host服务器起始id为1000
#将LXC容器里的 1000 映射到 host 上的 1000,id个数为1
lxc.idmap: u 1000 1000 1
lxc.idmap: g 1000 1000 1
#LXC容器起始id为1001(即id=1001的普通用户),host服务器起始id为1000
#将LXC容器里的 1001-65535 映射到 host 上的 101001-165535,id个数为64535
lxc.idmap: u 1001 101001 64535
lxc.idmap: g 1001 101001 64535
保存即可
重启容器后查看用户权限从nobody变为nasuser,组权限也从nogroup变为family了:
File Manager也可以正常修改权限了,这里将其改为nasuser:family:
新建一个文件夹成功则权限正常:
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
Loyalty_Mu
校验提示文案
不会飞的超人lee
校验提示文案
不会飞的超人lee
校验提示文案
Loyalty_Mu
校验提示文案