本文分為上下兩部分,上為本地雲盤搭建教程,下為內網穿透教程
最開始打算直接用 Raspbian 的,不給打算嘗試下不同的固件,因為在服務器上長期使用 CentOS ,所以打算試試樹莓派版,但是只有華為有一個鏡像
http://mirrors.huaweicloud.com/centos-altarch/7.8.2003/isos/armhfp/
在嘗試后發現有些問題,於是再度尋找,然后找到了一個叫 Debian-Pi 的系統,有 64 位版本,其中 web 加強版集成了 web 管理頁面、 docker 、 CeCOS-CaaS 、 bbr ,如果重裝系統,需要部署的工具就更少,更加方便,官方宣稱的文件讀寫速度也優化過,不過穩定性和兼容性尚待檢驗
https://github.com/openfans-community-offical/Debian-Pi-Aarch64
截止 2020-10-02 ,最新的 plus++ 版本(即 web 加強版)為 2020-06-22-U4 ,直接下載壓縮包並解壓,解壓后的 img 鏡像文件約有 4G 大小,選擇一張 C10 速度起步的 tf 卡,建立一個空白分區並格式化為 fat32 格式(或其他可以被 win32diskimager 識別的格式),然后使用 win32diskimager 刷入固件,完成后插入樹莓派開機,需要等待幾分鍾時間完成初始化
基礎設置
自帶的 WebUI 有三,但是因為 ssh 可以用軟件連接,所以只需要用到 9090 端口的后台 gui 和 8443 端口的 cecos 工具,筆者因使用命令行操作,所以直接用網線直連,在路由器中找到樹莓派對應的 ip ,帶上端口號進入后台,用戶名和密碼為 pi 和 raspberry ,進去后設置 root 賬號密碼,並去掉鎖定, pi 賬戶的密碼可以在后台修改也可以用命令行修改,命令在 readme 里面有介紹,筆者選擇在后台修改
然后使用 ssh 工具登錄,初始用戶密碼為 pi 和 raspberry ,進去后修改密碼
passwd
然后切換到 root 賬戶
su root 或者 sudo -i
winscp如要在root權限下操作需要在【高級-環境- SFTP - SFTP 服務器】中將默認改為下文
sudo su -c /usr/lib/sftp-server
其中路徑可以在命令行中查詢到
whereis sftp-server
然后禁用ipv6,當然可以不禁用,因為有些原因導致我傾向於禁掉ipv6,通過在 /etc/sysctl.conf 中添加以下語句即可,同時開啟 bbr
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
然后輸入以下命令使之生效
sysctl -p
可以通過以下命令檢測是否開啟成功,如果返回值中含有 bbr 或 fq 則開啟成功
sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control sysctl net.core.default_qdisc lsmod | grep bbr
然后重啟系統,當然可以不重啟,但重啟能檢驗很多功能是否正常,比如 ssh ,檢查越早做,后面返工的概率越低
systemctl reboot
安裝防火牆 ufw ,在 CentOS 上我用 firewall ,但是,Debian上有 ufw ,這么好用為什么不用呢(
apt-get update apt-get upgrade apt-get install ufw
添加軟鏈
ln -s /usr/sbin/ufw /usr/bin/ufw
然后修改配置文件 /etc/default/ufw 將 yes 改為 no ,取消 ipv6 相關設置
IPV6=no
開放需要的端口
ufw allow 22 ufw allow 80 ufw allow 8443 ufw allow 9090
啟動防火牆,自動添加到開機啟動項
ufw enable
檢查是否開啟對應端口,如果沒有,則再添加一次
ufw status
至此,基礎配置完成
掛載硬盤
如果想直接用tf卡做雲盤當然可以,不過體驗自然不如外接硬盤,在不熟悉的情況下,可以先用閑置硬盤練手,容錯率高
首先在其他電腦上格式化移動硬盤,這樣速度比較快,比如 diskgenius 就可以格式化為 ext4 ,插入移動硬盤,注意靠近網卡側的為 usb3.0 ,實測跑滿百兆帶寬沒問題, smb 能跑到千兆帶寬,所以還需調試和優化
首先查看硬盤的 uuid ,因為如果按路徑掛載,可能出現掉盤后路徑變更或多硬盤無法區分的問題,所以使用 uuid 來掛載
ln -s /sbin/blkid /usr/bin/blkid
blkid
修改 /etc/fstab ,使其能開機掛載,命令最后兩個參數表示不需要dump和不需要檢查順序,需要則改為 1 ,硬盤標識根據上面查到的結果修改
UUID=硬盤標識 /var/media/ssdData ext4 defaults 0 0
路徑可以自行設定,然后手動創建對應路徑,然后使用mount命令掛載,筆者使用的是常用路徑,如修改后文記得同步修改
mount -a
KodExplorer
在嘗試可道雲之前嘗試了 OMV5( OpenMediaVault5 ),但是發現使用非常困難,存在有大量無法解決的問題,安裝時間也非常漫長,而提供的功能並沒有讓人眼前一亮,多數服務可以直接手動部署,經過兩天的 debug 嘗試,最終放棄,在對比了 NextCloud 和 SeaFile的界面后,選擇了可道雲 KodExplorer (笑),當然還有一個新的 KodBox ,官方宣稱是代碼重構后的產物,但評論反饋認為不適合個人雲盤,於是選擇了 KodExplorer
https://github.com/kalcaddle/KodExplorer
http://bbs.kodcloud.com/
首先界面就能眼前一亮,並且提供的功能非常多且方便,因為基於docker部署,所以去docker官網找鏡像,最終找到一個基於4.40開發的固件,同時自帶了 AriaNG , docker-cli 命令見 readme ,這個鏡像集成了 mongodb 、 nginx 和 php ,所以可以一鍵布置,開箱即用
https://github.com/dennischancs/kodexplorer
docker run -d \ --name kodexplorer \ --hostname=kodexplorer \ -p 5210:5210 \ -p 5218:5218 \ -v /var/media/ssdDATA/koddata:/koddata \ -v /var/media/ssdDATA/ganaku:/koddata/Group/public/home/ssdDATA \ --restart always \ dennischancs/kodexplorer
上面為筆者的命令,其中路徑更改為了掛載路徑,因為默認的路徑是放在 tf 卡的,而可道雲的個人文件夾就在默認路徑下,為了方便,都設置到移動硬盤上,減少了很多限制,如果之前用了其他路徑,這里需要相應地更改,同時 restart 的參數改為了 always ,鍵入后便開始拉取倉庫,稍等片刻即可使用,記得開放端口,首次運行需要等待一定時間,不要刷新網頁,首次訪問會讓設置管理員密碼,進去后右上角設置打開 csrf 防跨站攻擊,刪除掉兩個游客賬戶,其他根據需求自行修改即可
如果部署之后需要修改路徑,需要先停止 docker 然后找到容器的 ID
docker ps -a
然后根據 ID 找到文件夾
/var/lib/docker/containers/ID/
然后打開文件修改配置
hostconfig.json "Binds"項 config.v2.json "MountPoints" 項
CecOS-CaaS
既然部署完 docker 了,就體驗下 cecos 。首先要運行 docker 才能運行 cecos ,端口為 8443 ,注意需要使用 https 訪問,否則會顯示服務器拒絕連接,初始賬號密碼為 admin 和 password ,登錄后記得修改密碼,功能本文不詳細介紹,可以自行查閱,筆者主要用來查看 docker 的詳情和狀態
Aria-Pro
使用的是上面可道雲 docker 開發者的推薦版本, github 中有 docker-cli 安裝命令,修改 token 即可,安裝完后需開放 6800 和 6888 端口
https://github.com/P3TERX/Docker-Aria2-Pro
安裝完成在可道雲頂欄點擊 AriaNG 或訪問 5218 端口即可打開 AriaNG 頁面,在 [ AriaNG 設置 - RPC( 192.168.XXX.XXX:6800 ) - Aria2 RPC 密鑰] 中添加上述 token ,然后重新載入即可使用,其他設置可以根據需求自行修改
大文件傳輸
這時可以嘗試傳輸些大文件壓測一下了,上傳下載都是必要的,在嘗試了2G文件的上傳后,直接體驗到了掉盤,重新掛載上傳,再度掉盤
經分析,應該是供電問題,因此加了一個可以額外供電的 USB HUB 。同時,將可道雲的配置參數增大,配置文件的地址可以通過下面命令獲得,其中容器 ID 只要能區分出即可,不用全部輸入,如果幾個容器第一位完全不同,甚至輸入第一位都沒問題
docker ps -a docker inspect 容器ID
往下翻可以找到 "UpperDir" 即可看到紅色部分路徑
/var/lib/docker/overlay2/Id/diff/var/www/html/config/config.php
@set_time_limit(3600);//20min pathInfoMuti,search,upload,download... @ini_set("max_execution_time",3600); @ini_set('memory_limit','2000M');// @ini_set('session.cache_expire',3600);
然后將下面文件中的切片增大,官方推薦大小為5M,然后並發數改到15,修改后速度能提升到20MB/s左右,不過要激活頁面才能穩定,否則會間歇性掉速
/var/lib/docker/overlay2/Id/diff/var/www/html/config/setting.php
'updloadChunkSize' => 1024*1024*5, //5M;分片上傳大小設定;需要小於php.ini上傳限制的大小 'updloadThreads' => 15, //上傳並發數;部分低配服務器上傳失敗則將此設置為1,
重啟docker后嘗試下,筆者在修改到下面配置並增加HUB后可以穩定上傳4G大小的文件了,暫時未測試更大的文件,穩定性相關內容會在后續更新中添加
至此,就可以開始體驗私有雲盤了,並且由於公共目錄是映射得到的,卸載和重裝可道雲不會對其產生任何影響,非常舒適了
感謝
定位那個docker容器占用overlay2的問題之容器磁盤定位 https://blog.csdn.net/hnmpf/article/details/90237465
Debian 9/10快速開啟Google BBR的方法,實現高效單邊加速
https://www.moerats.com/archives/297/
kodbox api 配置優化
https://doc.kodcloud.com/v2/#/help/options