win10之家 > 站搜网学院:无需公网IP,用树莓派搭建自己的私有云盘

市面上的私有云网盘软件可能大家也看到很多了,比如Seafile、ownCloud等,功能很实用,但是对于某些没有公网IP环境,或者是对于那些不懂内网穿透或者是端口映射的小白们来说,可能即使搭建好了,也没法从外网连上。这里介绍的Syncthing这款软件,就不需要公网IP,利用P2P网络来进行设备间互相的通讯,从而实现类似OneDrive一样的文件备份功能。

先列一下我所使用的设备:

  • 树莓派3B

  • 希捷1t硬盘

首先,需要让树莓派挂载上这个硬盘,这里我用硬盘为NTFS格式来举例:

安装ntfs-3g:

sudo apt-get install ntfs-3g

创建挂载点:

sudo mkdir /mnt/pidrive

连上硬盘,查看其标识:

sudo fdisk –l

编辑文件etc/fstab:

sudo nano etc/fstab

在最后一行加上(注意“/dev/sdc1”换成刚刚查看到的硬盘标识):

/dev/sdc1 /mnt/pidrive ntfs-3g defaults 0 0

按Ctrl+O保存,按Ctrl+X退出

挂载硬盘:

sudo mount –a

设置自动挂载USB驱动器:

sudo apt-get install autofs

将配置写入文件:

sudo nano /etc/auto.master

在行"+auto.master"之后添加如下内容,并保存退出:

/media/ /etc/auto.ext-usb --timeout=10,defaults,user,exec,uid=1000

硬盘自动关闭设置(withhdparm),注意修改为自己的硬盘标识:

sudo aptitude install hdparm
sudo hdparm -S120 /dev/sdc1

为了使被唤醒的硬盘重新连接,编辑文件(/etc/hdparm.conf):

sudo nano /etc/hdparm.conf

在文件最后一行加入如下内容,并保存退出,注意修改为自己的硬盘标识:

/dev/sdc1 {
spindown_time = 120
}

如果上面没做错的话,那么进入/mnt/pidrive文件夹,就应该是外接的硬盘了。(挂载NTFC硬盘部分教程取自这里)。

接着我们要在树莓派上部署Syncthing

打开Syncthing的官网,

我们复制一下arm版文件的下载链接:

接着在树莓派中执行:

wget 那个下载的链接
tar -vzxf 那个下载了的文件

接着执行:

cd 你刚刚解压的文件夹名
./syncthing

这时程序已经跑起来了,但是后台现在是连不上的,因为没有开启外网访问权限,我们在它开启后按Ctrl+C强制结束该进程。

通过查阅官方手册网站,笔者得知需要修改配置文件。

运行命令:

nano /home/pi/.config/syncthing/config.xml

把:

127.0.0.1:8384

改为:

0.0.0.0:8384

这时我们再启动Syncthing服务:

./syncthing

如果我们打开浏览器,可以成功访问其后台的话,就说明我们成功了。

网址为:http://你树莓派的内网IP地址:8384

打开后都是中文,我就不过多解释了,唯一需要注意的是,远程打开最好设置一下登陆的账号密码。

另外值得一说的是,树莓派的进程最好使用screen在后台运行:

sudo apt-get install screen
screen ./syncthing

按Ctrl+A,Ctrl+D扔到后台运行。

具体设置请自行查看官方的技术文档。

再接着我们来配置电脑端的软件(因为电脑端都是千篇一律的,所以我只说一台电脑的添加方法,多台电脑方法一样,不再赘述)。

去官网下载Windows系统专用版本:

下载到电脑上,解压到一个你不会去删掉的位置。

这里推荐下载一个GUI工具,我们再从官网下载一个GUI管理器,这里推荐那个GTK写的工具:

下载,安装,打开。你会发现它弹了个窗,勾上始终启动,点Start:

再选上你刚刚下载解压好的Syncthing软件,点保存:

启动成功后,我们先打开树莓派的网页后台,查看ID:

复制那一串设备标识:

我们在本机电脑软件里把树莓派添加进来:

稍等片刻,树莓派网页后台会弹出一个消息,问是否连接电脑,点是就可以了。

连接过后,和之前差不多,添加要共享的文件夹就可以了:

树莓会显示提示:

注意设置路径时,要选你刚刚挂载的硬盘下面的路径:

这样,一个文件夹就共享完成了,当文件被修改时,会自动同步到树莓派所连接的硬盘中。

连接外网的电脑,步骤和上面没有太大区别,唯一要注意的就是建立连接和添加文件夹时需要双方点击同意,所以还是在添加新设备之前开个TeamView远控家里的电脑吧,不然加不上。

具体连接见下图(大概就这意思吧):

这样,一个不需要外网IP的云盘就做完了,如果你愿意,搭建到服务器上面也是可以的。