VirtualBox & CentOS7 & SSH & Seafile & ngrok 搭建私有云盤(pán)Part2

Build your own private cloud disk using VirtualBox & CentOS7 & SSH & Seafile & ngrok Part2

在服務(wù)器安裝Seafile

Seafile官網(wǎng)介紹自己為一個(gè)企業(yè)級(jí)的,高可靠,高性能的文件同步和共享平臺(tái)。實(shí)際上類(lèi)似的平臺(tái)有很多,比如還有廣為人知的ownCloud

  • 服務(wù)器端下載Seafile

在Seafile的官網(wǎng)是只有網(wǎng)頁(yè)下載按鈕沒(méi)有適合無(wú)GUI服務(wù)器操作系統(tǒng)的下載方式的,但是我們能夠從官網(wǎng)獲知Seafile的最新版本,然后在Bintray網(wǎng)站下載當(dāng)前Linux Server端最新版本的Seafile壓縮包

當(dāng)前Linux Server端最新版本

首先,在宿主機(jī)SSH連接到服務(wù)器后,使用命令sudo yum install wget為服務(wù)器安裝wget

安裝wget

之后,即可以使用wget的方式下載指定版本的Seafile文件壓縮包,版本號(hào)在官網(wǎng)查詢(xún)替換即可

下載Seafile

配置Seafile

本節(jié)的配置Seafile的內(nèi)容,是達(dá)拉然巨坑,我是根據(jù)官方文檔中Deploying Seafile with MySQL一節(jié)來(lái)做的,遇到了不少問(wèn)題問(wèn)題,邊做邊說(shuō)

  • 按照文檔要求,解壓文件,建立文件夾
解壓文件建立文件夾

這里有個(gè)小工具tree很有用,我們安裝一下,命令為sudo yum install tree -y

安裝tree

作用看下圖就知道了

tree查看目錄結(jié)構(gòu)
  • 按照官方文檔要求,安裝Seafile服務(wù)的依賴(lài)
安裝依賴(lài)
  • 安裝官方文檔要求,運(yùn)行setup-seafile-mysql.sh腳本
運(yùn)行setup-seafile-mysql.sh腳本

這里提示了缺少python的setuptools模塊,注意,這里雖然高亮提醒的是缺少setuptools,但是需要安裝的東西在其下面的非高亮log部分,在CentOS中,執(zhí)行yum install python-distribute進(jìn)行安裝

安裝缺少的setuptools模塊
  • 按照官方文檔要求,再次運(yùn)行setup-seafile-mysql.sh腳本
再次運(yùn)行``setup-seafile-mysql.sh``腳本

這里成功的開(kāi)始運(yùn)行腳本,需要點(diǎn)擊ENTER按鍵開(kāi)始,開(kāi)始之后的內(nèi)容會(huì)要求設(shè)置一系列的相關(guān)內(nèi)容,具體的內(nèi)容表達(dá)的信息基本可以猜到,猜不到的也羅列的很清楚在Deploying Seafile with MySQL文檔中

但是

在運(yùn)行到mysql相關(guān)的登入步驟時(shí),出現(xiàn)了錯(cuò)誤

mysql登入錯(cuò)誤

這個(gè)坑花了很多時(shí)間,Google出來(lái)的答案也是五花八門(mén),最后的解決方式是使用MariaDB來(lái)完成數(shù)據(jù)庫(kù)的創(chuàng)建

關(guān)于MariaDB和MySQL的關(guān)系,感興趣可以看wiki

  • 終止腳本,安裝并啟動(dòng)MariaDB

ctrl + C終止腳本,使用命令sudo yum install mariadb mariadb-server安裝MariaDB及其服務(wù)

安裝MariaDB

啟動(dòng)MariaDB服務(wù)sudo systemctl start mariadb.service

設(shè)置開(kāi)機(jī)自啟動(dòng)sudo systemctl enable mariadb.service

啟動(dòng)并設(shè)置自啟動(dòng)

數(shù)據(jù)庫(kù)安全性設(shè)置,推薦全部選擇Y

secure installation

至此,數(shù)據(jù)庫(kù)的問(wèn)題解決了,可以再次執(zhí)行setup-seafile-mysql.sh腳本,順利完成

啟動(dòng)Seafile服務(wù)

  • 按照官方文檔,運(yùn)行seafile.sh腳本及seahub.sh腳本

啟動(dòng)seafile及seahub服務(wù),過(guò)程中需要設(shè)置郵箱密碼等賬戶信息,關(guān)于seafile和seahub,可以理解為:seafile是文件服務(wù)的后臺(tái),seahub是服務(wù)的前端,在服務(wù)器端8000端口可以訪問(wèn)seahub頁(yè)面,從而查看到文件信息

啟動(dòng)seafile及seahub服務(wù)
  • 設(shè)置防火墻

我們需要從外部訪問(wèn)到seafile和seahub服務(wù),因此我們需要為seafile和seahub的端口設(shè)置防火墻為public

設(shè)置防火墻

至此,服務(wù)器Seafile服務(wù)配置啟動(dòng)完畢,我們擁有了自己的私有云盤(pán)

從局域網(wǎng)內(nèi)訪問(wèn)私有云盤(pán)

還記得我們之前已經(jīng)將服務(wù)器的192.168.99.101:8000轉(zhuǎn)發(fā)到了宿主機(jī)的localhost:9988,那么我們現(xiàn)在直接訪問(wèn)localhost:9988就可以登錄到seahub網(wǎng)頁(yè),郵箱密碼就是前面設(shè)置的那個(gè)

登陸seahub

登陸后,我們上傳一張圖片作為實(shí)驗(yàn),成功

成功上傳圖片

Bingo!!!

現(xiàn)在只要在我們局域網(wǎng)內(nèi)的任何人只要用這個(gè)賬密登入,就可以同步和共享文件了

理論上,如果我們不是在VirtualBox里面,而是在真實(shí)的線上的一臺(tái)服務(wù)器上面做我們上面這些操作,現(xiàn)在已經(jīng)可以通過(guò)服務(wù)器的IP地址來(lái)完成從互聯(lián)網(wǎng)到私有云盤(pán)的訪問(wèn)了,我們的私有云盤(pán)項(xiàng)目就搞定了

但是,既然我們?cè)赩irtualBox里面做的,那么就把這個(gè)項(xiàng)目做到底,讓她能夠被公網(wǎng)訪問(wèn)

從公網(wǎng)訪問(wèn)VirtualBox內(nèi)的虛擬機(jī)服務(wù)器上的私有云盤(pán)

這里我們需要利用一個(gè)神器ngrok,這里我要實(shí)現(xiàn)的只是將私有云盤(pán)能夠從公網(wǎng)訪問(wèn),爽一把,所以只需要使用最基礎(chǔ)的ngrok的端口映射功能就好了,這個(gè)神器還是第一次開(kāi)發(fā)微信公眾號(hào)后臺(tái)的時(shí)候認(rèn)識(shí)的

ngrok的使用很簡(jiǎn)單,下載,運(yùn)行,運(yùn)行方式如下,如果提示ngrok命令為發(fā)現(xiàn),那么將ngrok移入Mac的bin目錄或者制作軟鏈接到bin目錄就好

運(yùn)行ngrok映射本地端口到公網(wǎng) ngrok http 9988

9988端口映射到隨機(jī)公網(wǎng)地址(想不隨機(jī)要花錢(qián),暫時(shí)窮-_-$)

ngrok映射端口到公網(wǎng)

圖上http://....ngrok.io就是現(xiàn)在9988端口映射到公網(wǎng)后的地址,也就是說(shuō),從這個(gè)在公網(wǎng)可以訪問(wèn)的地址,訪問(wèn)時(shí),會(huì)訪問(wèn)到宿主機(jī)的localhost:9988,而記得我們之前已經(jīng)將localhost:9988與虛擬機(jī)服務(wù)器的192.168.99.101:8000綁定,那么就達(dá)到了從公網(wǎng)直接穿透過(guò)來(lái)訪問(wèn)我們的VirtubalBox上面服務(wù)的目的

最后一張圖,使用手機(jī)訪問(wèn)ngrok提供的地址,成功訪問(wèn)到了自己在VirtualBox上的私有云服務(wù),注意圖片左上角,使用的是手機(jī)網(wǎng)絡(luò)而非宿主機(jī)Mac所連接的WiFi,同時(shí)地址欄也能看到訪問(wèn)的地址是ngrok給映射的地址

公網(wǎng)訪問(wèn)VirtualBox私有云

問(wèn)題總結(jié)

  • NAT, Host-only, Bridged Adapter的區(qū)別

強(qiáng)烈推薦看一下VirtualBox官網(wǎng)的Virtual networking一章

  • SSH相關(guān)

關(guān)于SSH,所有需要了解到東西都能在這里找到答案

  • Seafile的更進(jìn)一步配置,高級(jí)用法

推薦根據(jù)官方文檔來(lái)研究,雖然官方文檔有些地方寫(xiě)的不是特別清楚,但是也沒(méi)有別的更好的途徑,踩坑之后可以再Google之

最后,鑒于各種免費(fèi)網(wǎng)盤(pán)的限容、審查、不定時(shí)炸彈般下架等種種不方便,在找到合適的服務(wù)器后搭建成功自己的私有云盤(pán),結(jié)合Seafile的各種高級(jí)特性,易用性、安全性等方面帶來(lái)的收益,應(yīng)該是很值得花時(shí)間研究下的~

最后歡迎訪問(wèn)我的個(gè)人博客~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容