openwrt軟路由安裝寶塔搭建個人建站
一些廢話
網(wǎng)上關(guān)于openwrt安裝寶塔的帖子比較少,而且很多都是不成功的。
我的設(shè)備是R2S,刷的固件是BIGDONGDONG的DHDAXCW build 2021.06.24 @ FusionWrt R21.6.22 (2021-06-24) / LuCI Master (git-21.173.12022-bfe9018)。
其實我主要的目的并不是搭建寶塔,而是將個人導(dǎo)航放在路由器里訪問,這樣無論我走到哪里,無論用什么設(shè)備,無論瀏覽器是什么,我收藏的網(wǎng)站都會跟著我,只要有網(wǎng)絡(luò)。

正題
個人設(shè)想了兩種辦法:
docker寶塔(測試成功)
openwrt直接安裝寶塔(網(wǎng)上暫時沒有完美成功的案例,為這個辦法折騰了幾天都沒太多結(jié)果,但可以直接放一些html結(jié)尾的網(wǎng)頁,目前php還無法解析)
所以我就只說第一種辦法。
openwrt中安裝docker,這種教程網(wǎng)上一大把。docker中輸入如下指令(以下為鏡像作者原話)
docker run -tid --name baota --net=host --privileged=true --shm-size=1g --restart always -v ~/wwwroot:/www/wwwroot 740162752/baota
但實際上,作者的指令我輸入后提示某些錯誤,大致意思是只接受英文和數(shù)字的意思,所以我就去掉了那個~號,根據(jù)我自己實際情況輸入的指令是
docker run -tid --name baota --net=host --privileged=true --shm-size=1g --restart always -v /mnt/sda1/opt/www/wwwroot:/www/wwwroot 740162752/baota
解釋下上面代碼我知道的意思,比較重要的是“--net=host”,“--restart always”以及"-v XXXXXXX"
docker run:運行某個鏡像
-tid:為三個參數(shù)的縮寫。實際作用我也不懂,照抄就完事了。-t: 為container分配一個偽終端(pseudo-tty),并綁定到容器的標準輸入上。-i: 讓容器的標準輸入保持打開。-d: 使容器在后臺以守護態(tài)(Daemonized)形式運行。
--name baota:容器的名字叫baota
--net=host:host網(wǎng)絡(luò)模式,就是和你主機(宿主機)共用IP和端口,比如你軟路由是192.168.2.1,那么這個容器也是這個IP哦。
--privileged=true:不太懂,貌似是給與更大的權(quán)限,照抄。
--shm-size=1g:共享內(nèi)存設(shè)置為1G,我不太理解,照抄。
--restart always:沒有這個參數(shù),docker重啟后,容器不會自動啟動。
-v?/mnt/sda1/opt/www/wwwroot:/www/wwwroot:映射文件夾,前面紅色部分為你現(xiàn)實中路由器的實際地址,你能看到的地址。后面藍色部分為容器中的地址。所以后面藍色的部分不要修改,只根據(jù)實際情況修改紅色部分。
安裝完成后,鏡像會自己啟動,端口8888。
不知道為什么作者給賬戶和密碼也登陸不了后臺,那么我們就進入鏡像去重置,輸入
docker exec -it baota /bin/bash? ? (注意:如果容器的名字你沒修改,這里直接照抄)?
然后輸入 bt,即可看見修改賬戶和密碼。
到這里你就完成了寶塔的搭建了,實際測試也是可以搭建網(wǎng)站的。

但距離我想要的效果還差了一點,為此又折騰了2天,也沒結(jié)果。
因為openwrt后臺是80端口,我們的容器設(shè)置的網(wǎng)絡(luò)模式是host(也就是前面的--net=host),你網(wǎng)站的端口和ssh,ftp等等都和實際的主機沖突。我嘗試過將寶塔內(nèi)網(wǎng)站的端口修改為81,但無法訪問,寶塔的安全組也是自動放行81端口了。隨后我注意到寶塔內(nèi)的nginx沒啟動,而且寶塔面板的nginx啟動就報錯,大意為80端口被占用。我查了下是宿主機的nginx占用了80端口。如果我卸載了宿主機(openwrt)的nginx或許就解決了這個問題,但這樣宿主機應(yīng)該就無法打開后臺了,所以我不敢動。因為目前唯一的解決的辦法就是修改openwrt后臺端口為81即可。
我沒有設(shè)置網(wǎng)絡(luò)模式為bridge橋接模式的原因是,bridge模式據(jù)說有網(wǎng)絡(luò)性能損失。而且我后來無奈之下,也嘗試將host改為bridge模式,但創(chuàng)建新的容器失敗了。
(剛在恩山論壇看到一個符合我要求的容器,作者修改了容器內(nèi)80端口為81,但不知道其他的端口他是否有修改:https://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=3246576)
說的比較羅嗦,也沒有好好的整理下思路,想到啥就說啥。
希望有大佬能說說,如何在openwrt中直接完美安裝寶塔,并且可以任意修改端口。
放張圖片吧,不然都是文字,看起來干巴巴的。
