最近不是快過年了嘛什黑,但是由于疫情的原因檀何,大家回家的時候估計都要帶好電腦辞槐,筆記本還好說廷蓉,臺式機就比較麻煩了全封。
趁著現(xiàn)在比較閑就來水一篇使用 frp
內(nèi)網(wǎng)穿透來遠程 開機 和 控制 電腦,希望能夠幫助大家在家的時候能遠程控制放在出租屋的臺式機桃犬。
所需的資源
- VPS (一臺擁有公網(wǎng) IP 的電腦刹悴,用來開啟 FRP 服務)
- WIFI智能插座(支持遠程控制的插座,用來遠程開機)
主要思路
總體思路是要解決兩個問題攒暇,一個是如何自動開機土匀,還有一個是如何進行遠程控制。
遠程開機
第一個問題就是如何自動開機形用。實現(xiàn)遠程開機的方式有很多種就轧,我這里選擇了比較簡單的方式,也方便大家上手田度。那就是使用 WIFI 智能插座 + BIOS 設置通電開機 的配置妒御。這個組合就能在家通過控制 WIFI 智能插座 的通電狀態(tài)來控制電腦的開機了。
遠程控制
遠程控制的方式也有很多镇饺,市面上也有很多遠程控制軟件乎莉,但是很多都是收費的,免費的也有奸笤,比較有名的比如像 TeamViewer
惋啃,現(xiàn)在連了一段時間就會懷疑你是商業(yè)用途,就會斷線监右,不太好用边灭。我這里使用的是 frp
這種方案,frp
是一個專注于內(nèi)網(wǎng)穿透的高性能的反向代理應用健盒。
遠程開機
剛才說了存筏,我們實現(xiàn)遠程主要是通過 WIFI 智能插座 + BIOS 通電開機設置 的方式實現(xiàn)的。現(xiàn)在就細說一下味榛。
我用的是使用小米的智能插座椭坚,主要是我平時也有使用小米的其他智能家居,米家用的也比較習慣了搏色,市面上也有其他品牌可以選擇善茎。
接下來就是如何 BIOS 上設置通電開機的配置了,由于 BIOS 各家廠商的配置都不盡相同频轿,以我使用的 微星主板 為例垂涯,是在 高級 - 電源管理設置 - AC電源掉電再來電的狀態(tài)烁焙,這個選項,我們只要選擇 【開機】就行了耕赘。這樣只要 插座一通電骄蝇,就能自動開機了。
如果還有同學不知道如何進入 BIOS 的話操骡,我這里再說一下九火,一般是在按下開機電源按鍵之后,就一直按 Del 鍵(有些廠商也可能是其他的鍵)册招,就會進入到 BIOS 界面了岔激。
到這里設置完成之后,你就可以先試一下是掰,是不是能夠通過手機米家控制電腦開機了虑鼎。
遠程控制
我們這里使用的是 frp
的內(nèi)網(wǎng)穿透方案,這里就需要用到一臺擁有公網(wǎng) IP 的 VPS 键痛,主要是用來跑 FRP 的服務端炫彩。
官方文檔地址:https://gofrp.org/docs/
github 地址:https://github.com/fatedier/frp
安裝 frp 服務端
安裝也非常簡單,到 github 的 releases 里面下載最新版本的壓縮文件絮短,然后解壓出來就行了江兢。
這里提供一下簡單的腳本,是之前安裝的時候記錄下來的戚丸。幫助一些沒接觸過的同學划址。
mkdir -p /etc/frp
cd /etc/frp
# 下載最新的版本
wget "https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz"
# 解壓
tar xzvf frp_0.37.1_linux_amd64.tar.gz
# 拷貝出來
mv frp_0.37.1_linux_amd64/* /etc/frp
現(xiàn)在最新的版本是v0.38.0
,可以把上面的版本號修改成最新的版本限府,如果是新同學的話夺颤,建議不要修改,方便后面可以跟著操作胁勺。
接下來就是修改一下配置世澜。
先打開配置文件,服務端的配置文件是 frps.ini
署穗。
vi frps.ini
寫入下面的配置寥裂。
[common]
# 綁定服務端口
bind_port = 7000
# 控制臺的配置:用戶名,密碼案疲,端口
dashboard_user = test
dashboard_pwd = test_pwd
dashboard_port = 7500
到這里封恰,配置也就弄完了,這個是最簡單的配置了褐啡。開了 儀表盤 的端口诺舔,主要是為了我們測試服務有沒有正常跑起來。
然后我們開始運行 frp 服務。
./frps -c frps.ini
如果終端沒有報錯的話低飒,這個時候许昨,你就可以打開瀏覽器輸入,你的 VPS 的 IP 地址 + 端口 褥赊,看看能不能訪問到糕档。
如果順利的話,就能看到類似下面的界面:
我估計很多同學到這一步應該還是不行拌喉,因為我們還沒有開放端口速那,一般 VPS 都會限制訪問端口,我們需要到 VPS 廠商那邊去開通端口司光。
我使用的是 騰訊云琅坡,就以 騰訊云 為例悉患,需要進入到 安全組 配置里面残家,然后添加一條新的規(guī)則。
然后我們再回到瀏覽器刷新一下售躁,應該就能看到 frp 服務的控制臺界面了坞淮。
這個時候記得還要開通 7000 端口,因為等一下我們安裝完客戶端之后還要試一下能不能正常連接上 frp 的服務陪捷。
安裝 frp 客戶端
安裝完 frp
服務端回窘,接下來就要安裝 frp
的客戶端了。
一樣的市袖,我們要下載客戶端下來啡直。同樣也是要到 github 上下載。
客戶端下載地址:https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_windows_amd64.zip
由于某種不可抗力的影響苍碟,有些同學可能下載的過程不太順利酒觅,我這里上傳到了網(wǎng)盤一份。不過簡書連云盤鏈接都不讓放微峰,需要的同學就只能慢慢下了舷丹。
客戶端的安裝就更簡單了,找個目錄解壓蜓肆,然后修改配置文件 frpc.ini
颜凯。Windows 端解壓的操作就不用多介紹了吧。
[common]
server_addr = 這里填你的 VPS ip 地址
server_port = 7000
# 這個客戶端的名稱仗扬,可以隨便寫
[PC]
type = tcp
local_ip = 127.0.0.1
# 由于要使用 windows 的遠程桌面症概,所以使用 遠程桌面的默認端口 3389
local_port = 3389
remote_port = 3389
這個配置里面 remote_port
這個配置可以修改成你想要的端口,我這里用 3389
早芭,主要是為了后面遠程桌面的時候不用再填端口彼城。
哦!對了,remote_port
這個配置的端口也要在 VPS 的安全組上面配置一下精肃,否則也會訪問不上秤涩。
這樣我們客戶端的配置也搞完了,我們運行一下司抱,看能不能連上 Frp 的服務筐眷。先進入到解壓之后的目錄。
./frpc -c ./frpc.ini
我這里用的命令終端是Windows PowerShell
习柠。但是我看到我之前的筆記上寫的是下面這個匀谣,不知道是不是不同終端的差異。如果上面的不行的話资溃,可以試一下下面這個武翎。
frpc.exe -c frpc.ini
如果運行之后,看到 start proxy success
的字樣溶锭,說明啟動成功了宝恶。
如果失敗了的話,檢查一下連接 VPS 的終端是不是掉線了趴捅。我用的 騰訊云 VPS 垫毙,過一會沒有操作就會自動斷開。如果掉線了的話拱绑,要重新登錄 VPS 的終端综芥,開啟 frp
服務。然后再測試一下猎拨。
測試遠程桌面
Windows 默認是沒有開啟遠程桌面膀藐,需要到設置里面開一下。
然后我們就可以測試一下红省,能不能正常進行遠程桌面额各。用另一個電腦,或者用手機也可以类腮,手機要安裝能夠遠程桌面的APP臊泰。然后輸入 VPS 的 IP 試一下,正常的情況下蚜枢,會讓你輸入用戶名和密碼缸逃,這個是你能夠支持遠程桌面的 Windows 賬戶。輸完賬戶密碼的話厂抽,正常的話是已經(jīng)能夠進行遠程桌面了需频。
開機啟動
如果能走到這里,那就恭喜你筷凤,已經(jīng)成功跑通這一個流程了昭殉。剩下的就是一些邊邊角角的東西了苞七。
我們剛才測試的時候,需要連著 VPS 的終端才能運行 Frp 的服務挪丢,但是我們不能一直開著這個終端吧蹂风,這也太不方便了。我們想要的效果是 VPS 啟動的時候就能自動啟動 frp
服務乾蓬,這樣我們隨時都能連上了惠啄。
同樣的,放在出租屋里的電腦任内,也是希望能夠開機就自動啟動撵渡,不需要我們手動啟動 frp
客戶端。如果我們都能坐在電腦前啟動 frp
客戶端了死嗦,那還要遠程干什么趋距。
開機啟動 frp 服務端
我這里開機服務使用的是 Systemd
。
Systemd
的任務啟動是放在 /lib/systemd/system/
這個目錄下面越除。我們先在這個目錄下面新建一個文件 frp.service
节腐,cd 到該目錄下,然后使用命令 vi frp.service
創(chuàng)建一個任務 廊敌。輸入配置铜跑。
# Unit 為一個單元门怪,或者說是一個任務
[Unit]
# 描述
Description=frp service
# 啟動的時機骡澈,這里是網(wǎng)絡連接上之后
After=network-noline.target
# 描述如何啟動
[Service]
# 啟動執(zhí)行的命令
ExecStart=/etc/frp/frp_0.37.1_linux_amd64/frps -c /etc/frp/frp_0.37.1_linux_amd64/frps.ini
# 類型,一般用 simple 就行了
Type=simple
# 失敗時重啟
Restart=on-failure
# 重啟時間間隔
RestartSec=60s
[Install]
# 配置多用戶
WantedBy=multi-user.target
這樣掷空,一個簡單的 Systemd
任務就創(chuàng)建好了肋殴。我們可以現(xiàn)在就啟動看一下效果。
systemctl start frp.service
然后你關閉連接 VPS 的終端坦弟,啟動一下 Frp 的客戶端护锤,這個時候應該也能正常連接上frp
服務了。
如果測試正常的話酿傍,接下來就是設置開機啟動這個任務烙懦。
systemctl enable frp.service
后面再測試一下 重啟 VPS ,是不是也能正常赤炒。到這里就已經(jīng)能夠在 VPS 開機連上網(wǎng)絡之后開啟 frp
的服務了氯析。
開機啟動 frp 客戶端
我這里使用的是 任務計劃程序。這個是 Windows 自帶的程序莺褒,我們可以通過這個來做開機自啟動掩缓。
首先,我們需要一個啟動 frp
客戶端的腳本遵岩,在 Frp 的目錄下你辣,新建一個文件 start.bat ,腳本內(nèi)容如下。
@echo off
:home
frpc -c frpc.ini
goto home
這個腳本很簡單舍哄,里面用到的啟動腳本宴凉,就是我們上面手動啟動 frp
客戶端一樣。然后加個循環(huán)表悬,如果啟動失敗跪解,就重試。
如果不想要重試的話签孔,就用下面的腳本叉讥。
@echo off
frpc -c frpc.ini
exit
接下來雙擊啟動,測試一下饥追,看是否能夠正常啟動图仓。
如果正常,那我們就進入下一步但绕,如何開機就運行這個腳本救崔?
我這里使用的是 任務計劃程序 。在開始菜單里面搜索捏顺,任務計劃程序六孵。后面的操作我都截圖了。
先點擊右側(cè)的 創(chuàng)建任務
勾選 [ 不管用戶是否登錄都要運行幅骄,使用最高權(quán)限運行劫窒,隱藏 ] 這幾個選項
再新建一個觸發(fā)器,選擇 啟動時
再選擇我們剛才創(chuàng)建的腳本
這樣就可以了拆座,點 確定 主巍,這個時候應該會需要你輸入管理員的密碼,以后電腦開機的時候就會自動啟動 frp
的客戶端了挪凑。
然后我們再測試一下孕索,重啟一下電腦,在任務管理器里面應該就能看到 frpc.exe 正在運行了躏碳。
串起所有流程
到這里搞旭,所有的步驟都完成了。是時候串起所有的流程跑一遍看看最終的效果了菇绵。
- 先把電腦關機肄渗,等電腦完全關機。
- 打開米家脸甘,把 智能插座 關閉恳啥,等個十秒鐘,再打開丹诀。這個時候你就能看到電腦自動開機了钝的。
- 等一會翁垂,等
frp
客戶端的啟動。 - 使用 遠程桌面 的客戶端進行連接硝桩,輸入 VPS 的 IP 地址沿猜。這個時候會需要登錄你的 Windows 賬戶,這個時候就能成功 遠程桌面 你的電腦了碗脊。
擴展
雖然到這里啼肩,我要講的內(nèi)容就已經(jīng)講完了,但是還有一些可以擴展的東西衙伶。
比如祈坠,
如果你還有一個域名的話,就可以直接使用 域名 進行遠程桌面了矢劲,就不用記一串很長的 VPS 的 IP 地址了赦拘。
如果你想要可以隨時連接多臺電腦,要怎么配置呢芬沉?
還有一個就是 其實 frp 是可以支持 p2p 的方式進行打洞穿透躺同,如果成功,后續(xù)的流量將不用經(jīng)過 frps 丸逸,而是直接通信蹋艺,不再受到 frps 所在服務器的帶寬限制。
這些后續(xù)擴展的功能黄刚,感興趣的同學可以繼續(xù)研究哈捎谨。