了解最新公司動(dòng)態(tài)及行業(yè)資訊
首先說(shuō)一下項(xiàng)目的背景。2017年開始部署自己的個(gè)人網(wǎng)站,踩過(guò)很多坑。其中,印象最深的是各大云平臺(tái)的服務(wù)器租賃。對(duì)于我這種自己跑小網(wǎng)站,對(duì)服務(wù)器負(fù)載要求不高的用戶來(lái)說(shuō),雖然還可以,但是騰訊云中學(xué)學(xué)生十元包月包真的好吃,哈哈,1核2G顯存50G存儲(chǔ)就夠了;但隨著時(shí)間的推移,中學(xué)生套餐的有效期只有一年。之后,后續(xù)費(fèi)用的價(jià)格高得離譜。真叫“優(yōu)惠一時(shí)爽,續(xù)費(fèi)在火葬場(chǎng)”。映像備份和遷移的方法轉(zhuǎn)移到過(guò)去,而且像我這種懶人每隔幾年就這樣折騰,真的很累??赡苁窃破脚_(tái)意識(shí)到了我們這種懶人的特點(diǎn),所以才故意這么做的。讓我們推銷它......老千層縐是嗬嗬嗬...
對(duì)于一些開服的玩家來(lái)說(shuō),比如在云平臺(tái)上開一個(gè)CSGO私服,或者整個(gè)MC服務(wù)器,那成本會(huì)更大。一是計(jì)算能力和負(fù)載要強(qiáng),二是ping值要低,但要大。豆腐有些是中學(xué)生,經(jīng)濟(jì)上也不能說(shuō)很自由。在這種情況下,他們將陷入以下的選擇困境——
快速、便宜、高性能——兩者中的一種
所以我在想一個(gè)問(wèn)題,我能不能把服務(wù)器搬到本地,這樣我就可以自定義我想要的所有配置,而且我只需要支付一次設(shè)備,剩下的只有水費(fèi)和互聯(lián)網(wǎng)賬單;至于如何連接內(nèi)網(wǎng),直接穿透外網(wǎng)(不懂這個(gè)概念的可以百度),所以云服務(wù)器的租用成本會(huì)增加不少,至少不需要在cpu、顯存和存儲(chǔ)上多花錢。. 帶著這個(gè)想法,我開始了漫長(zhǎng)的挖礦之旅~
先給大家看看我的結(jié)果:
這是我用 Pi 3B+ 建立的網(wǎng)站。如果同時(shí)在線人數(shù)不超過(guò)三位數(shù),基本可以支持(雖然我也設(shè)置了cdn加速),對(duì)于單板機(jī)來(lái)說(shuō)已經(jīng)很不錯(cuò)了。. 雖然一開始想修復(fù)星際蝸牛,突然發(fā)現(xiàn)好像沒有什么非常私有的云盤相關(guān)需求(雖然百度云盤每年多幾百,呵呵),但是手機(jī)上的linux模擬器可以認(rèn)識(shí) LAMP&LNMP 基金會(huì)。Vue++ MySQL是老三的分布式開發(fā)(后面章節(jié)我會(huì)告訴你怎么玩),所以沒買,不過(guò)價(jià)格真的比群暉便宜很多,萬(wàn)一三天買了怎么辦關(guān)于 (
在開始修硬件之前,我研究了市面上所有穿透外網(wǎng)的方法和技巧……不,一開始我根本沒想過(guò)穿透外網(wǎng),而是從本地獲取網(wǎng)絡(luò)。盧一開始,直接打電話給運(yùn)營(yíng)商讓運(yùn)營(yíng)商拿到網(wǎng)段IP,然后Ollie給了,但是因?yàn)榭吹酵轮苯诱?qǐng)公安局喝酒,連端口信息都被寫入運(yùn)營(yíng)商的黑名單,然后另外,我本地的移動(dòng)光纖路由調(diào)整了很多次都沒有成功,所以決定放棄,選擇穿透外網(wǎng)。之后就開始了各種研究,比如花生殼、哲西云、科技、Ngrok……當(dāng)然,
在寫論文的時(shí)候,我讓父親幫我找了一個(gè)巨人,Ngrok是他給出的推薦解決方案。
之后,我請(qǐng)了我的同學(xué)@you一個(gè)咖喱試試,他是專門開MC服務(wù)器的。結(jié)果很不幸,雖然速率可以接受(取決于 min[relay , ]),但由于項(xiàng)目沒有維護(hù)太久,出現(xiàn)了以下問(wèn)題:
所以最后我選擇了frp
相信一些有識(shí)之士已經(jīng)看到了。無(wú)論是何種外網(wǎng)穿透,只要不是所謂的“品牌產(chǎn)品(即像花生殼一樣的完整黑盒子)”,都需要中繼服務(wù)器。有人會(huì)問(wèn),你不是脫衣服放屁了嗎?最后還是不用騰訊云之類的云服務(wù)了……咳咳,確實(shí)是這樣,不過(guò)還是比最原始的全站遷移方案方便快捷,甚至……可以直接部署到別人的服務(wù)器上“吸血”。
沒錯(cuò),雖然我不想承認(rèn),但是為了讓本教程能夠順利進(jìn)行,我確實(shí)不得不說(shuō)我“吸血”——目前我有兩臺(tái)網(wǎng)段IP的服務(wù)器,之前給騰訊·大閱網(wǎng)開發(fā)的一個(gè),之前和一個(gè)男合伙人用來(lái)開發(fā)網(wǎng)絡(luò)加速器的那個(gè)。之前我的網(wǎng)站是直接放在前者上的,但是因?yàn)檫h(yuǎn)在海外(法國(guó)AMZ),訪問(wèn)加載速度極慢,但是我的域名是騰訊云的,官方不給很久解決。去其他云平臺(tái),于是就有了這個(gè)“網(wǎng)站遷移改造”的方案——把frp服務(wù)器放在后者的服務(wù)器上。
這是具體的部署階段。不管是菜鳥還是老手,想要“快速”部署,寶塔管理面板是必須要安裝的。但是有時(shí)候,這東西得看臉,不能快點(diǎn)就得慢慢做,也就是說(shuō)有些服務(wù)器的架構(gòu)比較奇怪,不能兼容這個(gè)面板。雖然官方說(shuō)了,但兼容性如下:
比如我的樹莓派3B+本來(lái)裝的是定制版的奇異果派,然后寶塔面板出現(xiàn)各種問(wèn)題。這類問(wèn)題已經(jīng)被B站up主踩過(guò),然后給出解決方法:
后來(lái)看了一輪觀影,覺得……他們定制的有點(diǎn)太死板了,很多參數(shù)都封裝在鏡像上,不好處理??紤]到以后要安裝frp,又要寫教程,肯定要面對(duì)小白(不表?yè)P(yáng)),于是又刷機(jī)又裝了最新的20.04系統(tǒng),雖然是最好還是安裝18.04的人,不知道為什么一直想著裝最新的20……反正別跟著我,老老實(shí)實(shí)安裝官方推薦的18,不然全部各種小問(wèn)題頻頻發(fā)生,菜鳥難以應(yīng)對(duì)。
關(guān)于服務(wù)器,不一定非得是奇異果派,也可以是其他硬件,比如上面提到的星際蝸牛,或者其他單板機(jī),比如藍(lán)莓派等等。
關(guān)于安裝寶塔面板:
安裝寶塔后,選擇LNMP(Nginx+MySQL+PHP),注意php選擇7.0,MySQL選擇5.6,Nginx和(MySQL在線管理插件)按照默認(rèn)即可,然后你就關(guān)閉界面,做其他的事情。獼猴桃這個(gè)級(jí)別的服務(wù)器,8小時(shí)內(nèi)無(wú)法完成此步驟。
安裝完所有插件后,檢查它們是否正常工作:
如果你發(fā)現(xiàn)沒有安裝Nginx,或者一側(cè)有兩個(gè)白條而不是一個(gè)小紅三角,說(shuō)明你的單板機(jī)不支持LNMP模式(這個(gè)純屬人品問(wèn)題,我沒有安裝了,但是其他同學(xué)都安裝了),如果你和我一樣倒霉,沒關(guān)系,LAMP模式也行,選擇安裝2.4.43 ~
安裝后,基本上任何網(wǎng)站都可以部署。你可以到寶塔的一鍵部署列表中查看你要部署哪些網(wǎng)站。需要注意的是,選擇后不要急于點(diǎn)擊部署。由于我們還有外網(wǎng)滲透要處理:
不要貪心,單板機(jī)的計(jì)算能力是有限的,隨便選一個(gè)。如果你要打開多個(gè)網(wǎng)站,那你可以看看我用手機(jī)是怎么做的(手機(jī)的計(jì)算能力和顯存都比較大)
說(shuō)到網(wǎng)絡(luò)通信,域名是絕對(duì)不可缺少的。相信很多同事都沒有自己的域名。推薦你看看這個(gè)教程(),了解域名的原理,有了一個(gè)可以使用并且可以自由解析的域名后服務(wù)器運(yùn)維,繼續(xù)閱讀這個(gè)教程;如果你有自己的域名,并且明白哪些是解析,那么你可以繼續(xù)看下去。
這里是一個(gè)例子,但是一開始還沒有做frp穿透,所以我教大家怎么穿透,先創(chuàng)建一個(gè)靜態(tài)網(wǎng)站:
這個(gè)網(wǎng)站建好后會(huì)被刪除,然后網(wǎng)站很快就會(huì)部署。這就像“沙漠中的水悖論”。如何通過(guò)內(nèi)部壓力繼續(xù)抽水而不使最初的水桶落下?
我以二級(jí)子域?yàn)槔_@樣配置后,訪問(wèn)192.168.31.32(本地IP):
聽到這個(gè)頁(yè)面后,就可以繼續(xù)完成frp了。這里要提醒大家,不要使用寶塔商店自帶的frp,很多系統(tǒng)是不兼容的,雖然frp需要安裝在兩臺(tái)服務(wù)器上,一臺(tái)本地(客戶端),一臺(tái)有網(wǎng)段IP。云服務(wù)器(),不確定性太大,建議大家自動(dòng)下載版本自行安裝。
我們來(lái)聽聽這個(gè)開源項(xiàng)目的頁(yè)面:
通過(guò)這兩個(gè)參數(shù)識(shí)別這個(gè)
點(diǎn)擊進(jìn)入項(xiàng)目發(fā)布界面:
根據(jù)你單板機(jī)的內(nèi)核架構(gòu)和云服務(wù)器的內(nèi)核架構(gòu),選擇合適的編譯版本下載,雖然兩端都要安裝,所以要小心?,F(xiàn)在,我們來(lái)解釋一下frp的運(yùn)行機(jī)制。部署在你的單板機(jī)上的frp客戶端(比如這里是Kiwi Pie 3B+),負(fù)責(zé)從frp服務(wù)器接收信息,并將數(shù)據(jù)發(fā)送給frp服務(wù)器。(云服務(wù)器),該服務(wù)器安裝在云服務(wù)器上,專門接收來(lái)訪用戶的信息,并將信息轉(zhuǎn)發(fā)給frp客戶端。最終推送專用于用戶。這種處理機(jī)制有點(diǎn)像代理。如果了解相關(guān)知識(shí),相信不難理解。
下載后,建議您在本地解壓并編輯參數(shù),然后通過(guò)FTP或SFTP上傳到服務(wù)器。在這種情況下,有兩種用途。二是如果你想改變?cè)品?wù)器,只需將其關(guān)閉即可。在frp服務(wù)之后,找另一臺(tái)服務(wù)器傳輸相同的配置文件和運(yùn)行文件,直接執(zhí)行修改,短時(shí)間內(nèi)完成修改。
其中,frpc是客戶端( ),frps是服務(wù)器端( ),一定要清楚,不要搞錯(cuò) 下面就教大家如何完整配置frp+https訪問(wèn)。我已經(jīng)在網(wǎng)上看到了。無(wú)論是在國(guó)外還是在美國(guó),frp教程基本都對(duì)應(yīng)普通的http合約訪問(wèn)。我擺弄了https。合同訪問(wèn)應(yīng)該是同類中的第一個(gè)(至少在公開的范圍內(nèi))。
如果你不想這么麻煩,覺得只用http就可以了,可以去看看這個(gè)簡(jiǎn)化版的教程,剩下的就不用繼續(xù)看這篇文章了:(等我看完寫這個(gè))
首先,我們編輯客戶端的參數(shù),用IDE或者記事本打開frpc.ini:
[common]
server_addr = 你云服務(wù)器的ip地址
server_port = frp控制信號(hào)于兩個(gè)服務(wù)器間通訊的端口(建議填寫7000)
privilege_token = 相當(dāng)于一個(gè)驗(yàn)證用的密碼,只有兩個(gè)服務(wù)器配置相同的密碼才能通訊,防止第三方惡意利用你的云服務(wù)器。
[http_web] # 這個(gè)中括號(hào)別刪了,里邊的內(nèi)容可以隨便寫
type = http # 傳輸?shù)念愋?,建議保持這個(gè),下邊我會(huì)解釋
local_ip = 127.0.0.1 # 對(duì)于本地服務(wù)器來(lái)說(shuō),網(wǎng)站地址當(dāng)然是自己了,所以是localhost,但這里要填寫127.0.0.1,如果你是在路由器或者其他內(nèi)網(wǎng)設(shè)備上架設(shè)的網(wǎng)站,那么這里要改為指定的內(nèi)網(wǎng)ip地址
local_port = 80 # 內(nèi)網(wǎng)中運(yùn)行網(wǎng)站的端口
remote_port = 8088 # 別人要訪問(wèn)云服務(wù)器的這個(gè)端口才能看到你的網(wǎng)站(如果你不設(shè)置反向代理的話),下邊我會(huì)詳細(xì)解釋。
custom_domains = 你的域名,如果不是二級(jí)域名建議不帶前綴www
然后是服務(wù)器端frps.ini的參數(shù)。您可以按照步驟逐步進(jìn)行。有些內(nèi)容需要充分理解:
[common]
server_addr = 0.0.0.0 # frp服務(wù)所使用的端口(TCP),建議保持不變
bind_port = 7000 # 和剛剛那個(gè)server_port相對(duì)應(yīng),建議填寫7000
kcp_bind_port = 7000 # 同上
dashboard_port = 6443 # 這是一個(gè)frp的控制面板,訪問(wèn)「云服務(wù)器公網(wǎng)ip:端口6443」就能訪問(wèn)了,下邊會(huì)詳細(xì)說(shuō)明
authentication_timeout = 9000 # 沒有的話加一個(gè),設(shè)置為9000,時(shí)間長(zhǎng)一點(diǎn)沒關(guān)系,不然以后出什么time_out錯(cuò)誤還是得回來(lái)改這里。
dashboard_user = 上述控制面板的登錄名,自定義
dashboard_pwd = 上述控制面板的登陸密碼,自定義
type = http # 和客戶端對(duì)應(yīng)
vhost_https_port = 4433 # 這里隨便填,我們這套教程用不到https的傳輸協(xié)議,但如果沒這行系統(tǒng)又會(huì)報(bào)錯(cuò),所以隨便寫一個(gè)數(shù)字(0-65535)上去就行
vhost_http_port = 8088 # 和剛剛的remote_port相對(duì)應(yīng)
vhost_http_timeout = 9000 # 沒有的話加一個(gè),設(shè)置為9000,時(shí)間長(zhǎng)一點(diǎn)沒關(guān)系,不然以后出什么time_out錯(cuò)誤還是得回來(lái)改這里。
privilege_token = 剛剛說(shuō)的那個(gè)驗(yàn)證密碼,記得保持一致。
custom_domains = 填寫你的域名,但建議以泛域名解析的方式來(lái)填寫,例如"*.Hocassian.cn",如果你的這臺(tái)服務(wù)器上已經(jīng)有別的網(wǎng)站在運(yùn)行了,且他們都部署好了https,如果不是泛域名解析很容易直接串到他們的網(wǎng)站上去。
考慮到我們大多數(shù)人都在“吸血”,我們不得不考慮“云服務(wù)器已經(jīng)運(yùn)行了一個(gè)網(wǎng)站”的情況。有人聽到上面配置的7000和8088兩個(gè)端口會(huì)覺得奇怪,不應(yīng)該只有一個(gè)端口來(lái)做所有的信息傳輸嗎?如果你這么認(rèn)為,那說(shuō)明你還沒有學(xué)過(guò)計(jì)算機(jī)作文的原理。自古以來(lái),控制和信息傳輸都是分兩部分完成的。否則,你就知道為什么這些筆記本維修工把北橋和南橋都修好了。,網(wǎng)站請(qǐng)求和反饋所涉及的所有信息都在8088的路上。我們的部署鏈接圖如下:
從這張圖不難看出,我們的https SSL合約是配置在云服務(wù)器上的。所以我們即將踏入云服務(wù)器進(jìn)行部署。這里以寶塔為例。如果您了解服務(wù)器操作和維護(hù),則可以通過(guò)輸入命令完成以下步驟,而無(wú)需依賴寶塔面板。這是Nginx的配置。
首先,在云服務(wù)器上新建一個(gè)網(wǎng)站,輸入你的域名(這里是一個(gè)例子):
然后按照以下步驟申請(qǐng)和部署https SSL。只有完成此步驟后,其他人才能通過(guò) https 訪問(wèn)您的網(wǎng)站:
然后在Nginx配置中輸入反向代理的相關(guān)配置參數(shù):
location / {
? ? ? ?add_header 'Access-Control-Allow-Origin' 'http://你的域名.你的域名后綴';
? ? ? ?add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';
? ? ? ?add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *";
? ? ? ?proxy_pass http://0.0.0.0:8088;
? ? ? ?proxy_set_header ? Host ? ? ? ? ? ? $host;
? ? ? ?proxy_set_header ? X-Real-IP ? ? ? ?$remote_addr;
? ? ? ?proxy_set_header ? X-Forwarded-For ?$proxy_add_x_forwarded_for;
? ?}
以我的網(wǎng)站為例,我在這個(gè)位置是這樣設(shè)置的:
然后回到你自己的服務(wù)器并更改默認(rèn)頁(yè)面(作為區(qū)別):
然后進(jìn)入域名解析頁(yè)面,將域名解析到指定的ip:
之后,將之前設(shè)置的服務(wù)器和客戶端分別部署在兩臺(tái)服務(wù)器上。這里推薦使用命令。不明白的可以百度。很簡(jiǎn)單,這里就不展開了。后臺(tái)最好不要使用&,因?yàn)槿绻袇?shù)需要改,直接-r進(jìn)入窗口Ctrl+C停止進(jìn)程,改的話重啟即可。后臺(tái)要找到PID再去KILL,比較麻煩。
首先cd到放置了frp文件的文件夾
修改配置文件的命令:sudo nano frpc.ini(客戶端配置) 或者 sudo nano frps.ini(服務(wù)端配置)
啟動(dòng)frp的命令:./frpc -c frpc.ini(啟動(dòng)客戶端) 或者 ./frps -c frps.ini(啟動(dòng)服務(wù)端)
注意先啟動(dòng)服務(wù)器,再啟動(dòng)客戶端。兩者都啟動(dòng)后服務(wù)器運(yùn)維,嘗試輸入指定的域名,看看:
最終調(diào)優(yōu)成功~現(xiàn)在可以回到本地服務(wù)器的一鍵部署界面了。點(diǎn)擊一鍵部署后,設(shè)置數(shù)據(jù)庫(kù)和域名。雖然我們的服務(wù)器位于本地,但是你也可以設(shè)置外網(wǎng)ip到自己的域名訪問(wèn)列表中,然后你也可以通過(guò)外網(wǎng)訪問(wèn):
可以看到我連外網(wǎng)都可以訪問(wèn)
如果出現(xiàn)無(wú)法訪問(wèn)文件的404,可以選擇不填寫上面的配置文件,然后在反向代理選項(xiàng)卡中添加一個(gè):
這個(gè)可以正常訪問(wèn)了~
如果你和我一樣,想配置個(gè)人網(wǎng)站,一定要注意這一點(diǎn),也就是初始化過(guò)程完成后,還要更改本地和云端Nginx的參數(shù),否則經(jīng)常會(huì)出現(xiàn)這些問(wèn)題:
打開如下界面,將3000以上字樣的參數(shù)全部修改:
如果您在本地使用它,請(qǐng)像這樣更改它:
最后,像這樣更改配置:
這一步非常關(guān)鍵。必須按照這個(gè)來(lái)改變。前者沒有s,后者有s。一定不能出錯(cuò),否則網(wǎng)站進(jìn)不去,只能改數(shù)據(jù)庫(kù)。
請(qǐng)記住在更改服務(wù)后重新啟動(dòng)服務(wù),如下所示:
先重新加載,然后重新啟動(dòng)
如果你想實(shí)時(shí)竊聽你的滲透,可以到這個(gè)網(wǎng)址——你的服務(wù)器IP:6443,然后輸入上面的賬號(hào)和密碼,就可以看到這個(gè)頁(yè)面:
關(guān)于題目,我推薦兩個(gè),第二個(gè)是:
相關(guān)教程:
此外,它是一個(gè)比原始主題更強(qiáng)大的主題:
相關(guān)教程:
好的,那么我們的教程就先到這里了,下次給大家分享調(diào)手機(jī)的教程~
24小時(shí)免費(fèi)咨詢
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)