对于爱好折腾的电脑爱好者来说,Linux是绕不开的、必须认识的系统(大部分服务器都是采用Linux操作系统),而图形化的Ubuntu就是最好的熟悉Linux操作方式的练手系统。笔者家里就有一台安装了Ubuntu系统的电脑,不过在了解Linux系统的操作后,就处于半闲置状态,偶尔打开玩一把Ubuntu系统自带的麻将游戏。由于闲置显得太浪费,笔者打算使用Cpolar的内网穿透功能与开源的Nextcloud软件配合,将其改造成能以http协议访问的私有云盘,并为其生成一个公共互联网地址,用来存储下视频音乐小说之类,方便随时在移动设备上观看。
通常Ubuntu22.04版本提供了Snap这个软件包安装管理,所以我们可以在Snap上安装Nextcloud,而不必费心配置web和数据库服务器。
首先在Ubuntu系统上安装Snap,只要输入两行命令就可以进行snap的安装
sudo apt-get install snapd
及
sudo apt-get install snapcraft
接着,在输入在snap上安装Nextcloud的命令
sudo snap install nextcloud
命令输入后,snap会自动下载软件并安装。
为了确认安装是否成功,我们可以输入查询更改的命令,并通过反馈看到nextcloud是否安装完成。
snap changes nextcloud
安装完成后,我们可以输入命令,来启动或关闭nextcloud。
启动: sudo snap start nextcloud
停止: sudo snap stop nextcloud
在确保nextcloud正常启动后,就可以在ubuntu自带的浏览器中,输入ubuntu的网络地址(即ubuntu在局域网的IP地址),就能打开nextcloud的安装程序。当然,设置管理员账号和密码是必须的。
Nextcloud安装完成后,就可以正常查看Nextcloud云盘。
在nextcloud安装完成后,就可以接着安装cpolar。我们可以在浏览器中访问cpolar的官网(https://www.cpolar.com/),找到对应的cpolar版本进行下载安装。
当然,也就简单的办法,就是直接输入命令进行一键脚本安装
“curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash”
查看版本号,有正常显示版本号即为安装成功
cpolar version
然后进行token认证。登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx
再简单穿透测试一下,有正常生成相应的公网地址即为穿透成功,按ctrl+c退出
cpolar http 8080
然后向系统添加服务
sudo systemctl enable cpolar
启动cpolar服务
sudo systemctl start cpolar
查看服务状态,正常显示为active表示为启动成功状态
sudo systemctl status cpolar
在cpolar安装完成后,我们可以在浏览器中输入localhost:9200打开cpolar的Web-UI界面,对打算建立(或已经建立)的内网穿透隧道进行编辑。
由于笔者打算在ubuntu系统上设置能随时访问的云盘,因此需要固定的内网穿透数据隧道(固定内网穿透数据隧道需要升级至基础版及以上),因而这时笔者还不用在客户端设置数据隧道信息(免费版的可以直接在客户端设置数据隧道,但每隔24小时数据隧道就变动一次,具体设置内容可以直接查看“3.2.cpolar本地设置”)。
要生成一个稳定的cpolar内网穿透数据隧道,我们需要在cpolar云端(负责生成稳定的公共互联网地址,即建立“数据隧道”入口)和cpolar客户端(负责将公共互联网地址与本地nextcloud连接起来,即“数据隧道”的出口)两方面进行设置,而设置内容也十分简单。
首先登录cpolar的云端,在cpolar主页面左侧找到“预留”按钮,点击进入预留页面
在预留
页面,找到保留二级子域名
栏位,在这个栏位,我们需要填入几项简单信息,对打算建立的隧道入口进行设置。这几项信息包括:
设置完成后,就可以点击右侧的保留
,建立起一条空白数据隧道,并获得一个二级子域名。接下来,我们回到cpolar客户端,将这条空白数据隧道与ubuntu系统的nextcloud连接起来。
在ubuntu本地,我们登录cpolar客户端,在客户端主界面左侧找到隧道管理
项下的创建隧道
按钮,点击进入隧道创建页面。
在这个页面,同样需要几项设置,这几项设置为:
在填入各项信息后,就可以点击页面下方的创建
按钮,将cpolar云端的空白数据隧道与本地nextcloud端口连接起来。如果需要的话,我们可以在隧道管理
项下的隧道列表
中,控制这条数据隧道的开启和关闭,并随时对已经填入的隧道信息进行更改。
而这条数据隧道的公共互联网地址,我们可以在状态
项下的在线隧道列表
里看到。
最后,我们通过cpolar生成的公共互联网地址,尝试访问nextcloud。但nextcloud反馈为“通过不被信任的域名访问”错误页面。这是因为nextcloud做了限制,只在局域网内访问。
这时我们只要在命令行中输入
sudo nextcloud.occ config:system:set trusted_domains 1 --value=*.*.*.*
添加访问方式为“...”,即添加不限访问方式的命令,即可解决这个问题。命令输入后重启一次nextcloud,就可以通过cpolar生成的二级子域名访问到ubuntu上的nextcloud云盘。
至此,我们就将ubuntu系统变成了能在公共互联网上轻松访问到的私人云盘。由于这个云盘的公共互联网地址是自己设置的,因此外人并不知道。加上cpolar的加密安全数据传输,因此不必担心信息泄露。而cpolar使用的端口映射技术,不仅可以用在发布局域网的私人云盘上,只要知道设备和软件的输出端口,还能开发出更多好玩有趣的场景,cpolar官网上有很多类似的教程介绍,大家可以参考开发出自己的应用场景。