前言
我們有時候需要從外網遠端家裡的,或者公司的電腦處理一些事情。雖然現在有向日葵,ToDesk 等遠端軟體,但是免費版本有時候用起來還是存在卡頓等問題,查閱了一下資料,可以採用FRP配合公網伺服器進行內網穿透操作,我正好有一個獨立的部落格站點,擁有公網ip,可以嘗試操作一波
服務端配置
首先我們在公網伺服器上下載 frp 軟體包,並解壓命名為 frp
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
tar -zxvf frp_0.37.0_linux_amd64.tar.gz && mv frp_0.37.0_linux_amd64 frp
然後我們進入到 frp 資料夾,並編輯 frps.ini 檔案 (frpc.ini 是供客戶端使用的,不管)
[common]
bind_port = 7000
auto_token = 123456
這裡加了一個 auto_token,是為了和客戶端匹配認證,起到安全的作用
接著我們需要開放 7000 埠,由於我是 CentOS 伺服器,所以這裡輸入如下指令:
sudo firewall-cmd --add-port=7000/tcp --permanent
sudo firewall-cmd --add-port=7001/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --query-port=7000/tcp #如果已經開啟,會返回 yes
這裡我們新增了一個 7001,這是後面被遠控的windows機器需要使用的遠控埠
最後我們執行如下的指令即可
./frps -c frps.ini
客戶端配置
客戶端我們同樣先下載對應版本的 frp 程式,並解壓。然後修改 frpc.ini 檔案如下:
[common]
server_addr = 127.0.0.1 #伺服器公網ip,也是我們後面遠端用到的ip
server_port = 7000
auto_token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001 #這個是伺服器為RDP開放的連結埠,後面我們需要用這個埠來遠端
然後我們執行如下指令
./frpc -c frpc.ini
這個指令會連線服務端的 frps 服務進行通訊,然後服務端會監控 7001 埠
外網機器
我們直接開啟遠端桌面,輸入 伺服器IP:7001 遠端連線即可
邏輯流程
【外網機器】遠端連線 【伺服器IP:7001】,然後伺服器的 frps 服務程式將該埠轉發到 【被遠控的客戶端】,然後【客戶端】透過配置的 ssh,將 7001 埠重定向為 3389,然後就聯通了
更多的使用方式請參考:https://gofrp.org/
小貼士
下面是一個開源的GUI版本飛frp管理器:
https://github.com/koho/frpmgr