最近在家搭了一台Samba服务器,电脑,手机,电视都能相互共享文件的感觉真的很不错,而又恰好接触到了ZeroTier One这一十分用户友好的虚拟局域网服务,因此有了这样的想法。
在完成本篇教程后,你能做到以下事情
- 在家庭局域网内的文件共享
- 在广域网下的文件共享,这能帮你做到:
- 让你的朋友远程访问你的文件
- 让你在任何地方访问家中存放的文件
在一切开始之前,你需要准备:
- 一台常开的计算机用作运行Samba服务器,本篇教程以Ubuntu Server 22.04.2发行版进行展示,理论上来讲,任何基于Debian的其他发行版都可以不做任何更改完成教程,而其他Linux发行版所需执行的命令可能会有所不同(比如:包管理器不同),在Windows下搭建Samba服务器的步骤可以被简单的Windows文件共享取代,你可以在互联网上找到更多资料,关键词为:“Windows”“文件共享”
- ZeroTier One账号
- 对常开计算机的命令行访问权限(要求具有根用户权限),本篇教程使用ssh连接到服务器
- 想要访问你的文件的好友(废话
1.配置Samba服务器
首先让我们从安装Samba服务器开始,在终端中执行以下命令来完成安装:
sudo apt-get install samba samba-common-bin
安装完成后,可以通过执行以下命令来确认安装是否成功:
smbd -V
正确的响应应该是:(Samba或许会更新,因此版本号不一定完全一致)
eric4@ubuntu:~$ Version 4.15.13-Ubuntu
接下来,为Samba添加专门的用户
首先添加一个新的Linux用户,在这里以用户“share”为例,这可以通过下面的命令完成:
sudo useradd share
我们不需要使用这个新用户登录,因此我没有使用“-m”参数,如果你希望能够使用新用户登录你的OS,请自行加上它
安全警告
在之后你的好友加入虚拟局域网后,他有可能使用ssh登录你的服务器,如果你不信任你的好友,请务必不要加上“-m”参数,或保证samba共享用户密码与Linux用户密码不一致!
接下来,我们把“share”设置为samba服务器的有效共享用户,执行下面的命令后,samba会要求你为新samba用户指定密码,这个密码就是之后你需要告诉好友的东西
sudo smbpasswd -a share
然后,让我们打开samba的配置文件,并设定新的共享项目:
sudo nano /etc/samba/smb.conf
我将创建一个名为“Public”,允许用户“share”写入,共享路径为/home/eric4/share的共享项作为例子,在配置文件的末尾加上如下项目:
[Public]
path = /home/eric4/share
browseable = yes
read only = no
guest ok = no
valid users = share
[]中填写你想让好友看到的共享文件夹的名称
path是你选择的将要共享的文件夹
browseable是是否能被浏览
read only是只读,如果选为"yes",则你的好友无法对你的文件进行修改或删除,只能浏览与复制
guest ok是否允许访客访问,不建议允许,不安全,而且需要在配置文件前面进行额外的配置
valid users有效的samba共享用户,如果你前面添加的用户名不是"share",你可能需要换为你自己选择的用户名
使用testparm命令检查配置文件语法是否正确
testparm
正确的响应如下:
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed //(后面还有对你配置文件有效内容的展示,此处省略)
重新启动samba服务器,来使新的配置文件生效:
sudo systemctl restart smbd
恭喜!你已经完成了对samba服务器的配置,如果你想的话已经可以在你的局域网下使用它了!
2.配置ZeroTier One虚拟局域网
首先访问https://my.zerotier.com/,打开后如下图所示:
点击"LOG IN / SIGN UP"按钮,注册一个新的ZeroTier One账户
在这里,你可以选择直接使用Google、GitHub、Microsoft账户登录,也可以点击下方的"Sign Up"按钮来使用邮箱注册,注册完成后ZeroTier会把你带到如下界面:
点击"Create A Network",建立一个新的虚拟局域网
接下来,我们要回到你的服务器,让它加入这个虚拟局域网
首先在你的服务器上安装ZeroTier One应用
curl -s https://install.zerotier.com | sudo bash
这条命令会使用自动化安装脚本完成配置,但是服务器在国外,所以速度可能比较慢,建议你坐和放宽(
安装结束后,会有如下消息:
*** Success! You are ZeroTier address [ ########## ]. //ZeroTier address每个人不一样哦!
加入虚拟局域网,首先你需要查阅你的ZeroTier网络ID
你的ZeroTier虚拟局域网网络ID就是高亮的"Network ID"下方码住的部分
回到服务器,使用如下命令加入虚拟局域网
sudo zerotier-cli join ################ //记得把#换成你的Network ID哦
如果一切正常,ZeroTier会做出如下响应:
200 join OK
让我们回到ZeroTier的管理界面,刷新并向下滚动,来到这里
将"Auth?"下的复选框选中
之后,ZeroTier会为您的服务器分配一个虚拟局域网下的IP地址,您需要告诉您的好友这个地址作为之后连接到你服务器的"主机名"
恭喜!您已经完成了所有设置,接下来你可以在网上查找Windows(或者你好友使用的OS)加入ZeroTier One网络的方法,并向你的好友提供你的网络ID,在他加入后,再为你的好友寻找连接到SMB/CIFS服务器的方法即可完成教程开头承诺的内容!你也可以使自己的其他设备加入虚拟网络,以此实现在公网下对家中文件的访问
限制&注意事项
ZeroTier免费版支持25个设备加入虚拟局域网,如果这不能满足你的需求,你可以尝试使用开源版本。ZeroTier默认创建"Private"网络,每个设备加入是都需要你手动授权(就是上面选中"Auth?"复选框的操作),在你的好友加入虚拟局域网后,不要忘记授权哦
转载说明
允许标明出处的转载
Comments 3 条评论
博主 sep25
沙发(
( ̄3 ̄)
博主 Eric4
@sep25 ^_^
博主 TanYuan
网络迷路人,路过~