家庭服务器构建|如何基于Linux实现文件的共享服务?
我的第一篇原创是关于如何在Linux环境下搭建私有云(owncloud),得到了很多值友的打赏,让我也有了接下来的分享动力。跳转链接:
很显然作为家庭服务器,不仅仅是提供私有云文件服务,我们还需要在局域网内更方便的在各个设备间共享文件,比如windows桌面,比如蓝光播放器,比如从外网上传回家等等,虽然owncloud也能完成内外网的文件上传,但是毕竟不如FTP简单直接。当然,这些最基本的服务在Linux服务器下也是需要安装配置的。接下来的分享希望能给一些Linux入门值友一些帮助。
SAMBA篇
可能很多值友对SAMBA这个名称很陌生,但是我相信绝大部分值友其实都有用到。因为windows的网上邻居背后使用的就是NetBIOS和SMB协议。我这里就不科普SMB协议,SAMBA服务器和客户端这些基础名词了,您只需要知道安装好这个协议,我们的Linux服务器就可以作为一个网络共享文件夹给笔记本或者其他支持SAMBA客户端的设备提供文件服务就行了。
yum install -y samba //安装samba服务器
yum install -y samba-client //安装samba客户端 (本地测试连接用的)
备份配置文件
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
vi /etc/samba/smb.conf
直接创建一个新文件,复制以下配置信息:
[global]
workgroup =MYGROUP
netbios name =Homeserver
server string =Samba Server Version %v
log file =/var/log/samba/log.%m
max log size =50
security = user
passdb backend= smbpasswd
[Share]
comment =Public Stuff
path = /share
available = yes
writable =yes
browseable =yes
public = yes
write list =+staff
如果你要共享多个文件夹,可以按照[Share]的格式在后面继续添加即可,只需要修改path路径。
重启smb服务:
systemctl restart smb.service
smbpasswd–a root #添加SMB用户
[root@localhost/]# smbclient -L localhost -U root 本地测试通过
通过windows桌面局域网测试共享文件夹是否OK,输入账号密码,测试通过。
NFS篇
由于很多蓝光播放器都支持NFS,因此这里也把NFS共享的方法介绍一下。
(蓝光播放器在添加SAMBA服务器的时候用遥控器输入账号密码是件超级麻烦的事情,并且SAMBA传输效率不及NFS,我曾在100Mb的网络上做过蓝光原盘播放测试,SAMBA却无法达到播放原盘的要求,NFS却没有问题)
yum-y install nfs-utils rpcbind
vi/etc/exports //添加以下即可(默认192.168.2.0网段内所有IP都可以访问)
/share192.168.2.0/24(insecure,rw,sync)
启动服务
startrpcbind.service
start nfs.service
设置开机启动
chkconfigrpcbind on
chkconfignfs on
如果有蓝光播放器就直接测试搜索NFS服务器,没有的话可以在windows下安装一个NFS客户端。打开我的电脑,应该可以看到新挂载的网络驱动器。
FTP篇
FTP服务可以很方便的在自己的设备上和家里的服务器之间做文件复制。其实现在我用的也很少了,毕竟用owncloud也能满足这种需求,只有在一些大文件复制的时候我才会用到。这个服务配置比较复杂,大家一定要注意拼写错误问题,这个问题困扰过很多次。
yum install vsftpd
开启ftp服务
systemctl start vsftpd.service
默认是允许匿名登录的,直接通过网页输入地址验证服务状态是否正常。
安装超级简单,但是这个FTP允许匿名太不安全了,为了系统安全,为FTP创建虚拟用户,并指定目录。
第一步,修改/etc下的vsftpd.conf文件
先备份文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
原来的文件里注释内容太多了,我们新建一个吧。
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
virtual_use_local_privs=YES
guest_enable=YES
guest_username=vuser
user_sub_token=$USER
local_root=/share/ftp/$USER
chroot_local_user=YES
hide_ids=YES
allow_writeable_chroot=YES
上面加粗字体部分可以根据实际情况进行修改。
在/etc/vsftpd目录下创建一个虚拟用户密码文档
vi /etc/vsftpd/vuser.txt
奇数行为账号名,偶数行为密码,我这里只创建了一个test用户,密码password
test
password
:wq保存退出
通过db_load命令生成密码数据库
db_load -T -t hash -f /etc/vsftpd/vuser.txt/etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
然后txt文件就可以删除了,保留也无所谓。
修改/etc/pam.d/vsftpd文件,将原有内容注释掉,删除也行。添加最后两行
auth required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser
account required/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
:wq保存退出
mkdir -p /share/ftp/test //很重要,不然可能会出现登录500 OOPS报错
创建虚拟用户vuser
useradd -d /share/ftp -s /sbin/nologinvuser
忽略目录已存在的警告
为vuser添加访问权限
[root@localhost share]# chown -Rvuser:vuser /share/ftp
重启服务
systemctl restart vsftpd.service
这时候就可以通过test password登录了,创建一个文件夹测试权限。OK
基于Linux的文件共享服务就分享到这里了,希望对大家有所帮助,谢谢!
huzheyi
校验提示文案
gqlseed
校验提示文案
sanderswen
校验提示文案
未觉醉
校验提示文案
kppom
校验提示文案
ybgba
校验提示文案
[已注销]
校验提示文案
greslver
校验提示文案
Breezz
校验提示文案
gqlseed
校验提示文案
imjacob
校验提示文案
天河_
校验提示文案
桃喰绮八百万
校验提示文案
水野哲
校验提示文案
CasparLi
校验提示文案
seils
校验提示文案
小Z的剁手之旅
校验提示文案
Tonysen
校验提示文案
风华流云
校验提示文案
3006kane
校验提示文案
gqlseed
校验提示文案
gqlseed
校验提示文案
milix
校验提示文案
sanderswen
校验提示文案
o铜锣烧o
校验提示文案
苏哥拉米
校验提示文案
seils
校验提示文案
[已注销]
校验提示文案
ybgba
校验提示文案
wzcanjie
校验提示文案
CasparLi
校验提示文案
Alvin4u
校验提示文案
天涯海阁
校验提示文案
greslver
校验提示文案
丽159
校验提示文案
峰139
校验提示文案
芝131
校验提示文案
宇152
校验提示文案
huzheyi
校验提示文案
水野哲
校验提示文案