Samba服务器+ZeroTier One实现广域网下安全的文件共享

Eric4 发布于 2023-03-19 5528 次阅读


AI 摘要

本文章是一篇关于如何通过Samba服务器和ZeroTier One实现广域网下安全文件共享的教程。该文章详细介绍了在Ubuntu Server 22.04.2上配置Samba服务器和创建共享文件夹的过程,并且给出了配置文件的示例。文章还介绍了如何使用ZeroTier One创建虚拟局域网来实现安全的文件共享,包括如何在网站上创建和加入网络,并且阐述了如何通过SSH连接到服务器。本教程操作简单,可供初学者参考。

最近在家搭了一台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/,打开后如下图所示:

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地址,您需要告诉您的好友这个地址作为之后连接到你服务器的"主机名"

ZeriTier分配的IP地址

恭喜!您已经完成了所有设置,接下来你可以在网上查找Windows(或者你好友使用的OS)加入ZeroTier One网络的方法,并向你的好友提供你的网络ID,在他加入后,再为你的好友寻找连接到SMB/CIFS服务器的方法即可完成教程开头承诺的内容!你也可以使自己的其他设备加入虚拟网络,以此实现在公网下对家中文件的访问

限制&注意事项

ZeroTier免费版支持25个设备加入虚拟局域网,如果这不能满足你的需求,你可以尝试使用开源版本。ZeroTier默认创建"Private"网络,每个设备加入是都需要你手动授权(就是上面选中"Auth?"复选框的操作),在你的好友加入虚拟局域网后,不要忘记授权哦

转载说明

允许标明出处的转载
此作者没有提供个人介绍
最后更新于 2023-03-19