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