不說閑話。如果不明白什么是內網穿透就百度百科:內網穿透_百度百科 (baidu.com)
總之就是幫你把局域網的電腦轉發出來,轉發的可以是數據庫端口,也可以是遠程桌面端口。
第一步:
准備一個公網雲服務器,阿里騰訊百度都可以,我對阿里沒什么好感所以用的騰訊雲。
可以是Linux也可以是Windows,一般情況下是用Ubuntu。(我一直不喜歡CentOS)
登入用戶並下載可執行文件包:
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
以上命令僅為示例,實際Get的可執行文件包可能根據更新迭代、硬件環境有所變動。如果你的服務器是ARM則就需要Get ARM的包。
建議先訪問:Releases · fatedier/frp · GitHub 查看FRP更新情況。
解壓並重命名:
tar -xzf frp_0.37.0_linux_amd64.tar.gz
mv frp_0.37.0_linux_amd64 frp37
第二步:
修改服務端 FRP 配置文件:
cd frp37
vim frps.ini
vim 打開后可以看到以下內容:
[common]
bind_port = 7000
默認端口為 7000,不過幾乎沒有人會用默認的。同時為了安全,務必修改端口號並增加Token。
[common]
bind_port = 7370
dashboard_user = admin
dashboard_pwd = demopwd123
dashboard_port = 7470
authentication_method = token
token = demotoken123456789
配置項詳解:
bind_port 綁定端口號,給客戶端訪問的端口號
dashboard_user 管理員用戶名
dashboard_pwd 管理員用戶密碼
dashboard_port 管理員端口 在web瀏覽器中登錄,例如 http://123.124.125.126:7470
authentication_method 驗證方式 一般使用 token
token 客戶端登陸服務端所需要的token碼,兩邊要一致。(廢話)
第三步:
在服務器防火牆中放行服務端端口。例如你定義的端口號是7370,管理端口是7470,就要在雲控制台當中的防火牆設置將這兩個端口允許訪問。
協議TCP,策略允許。稍后也要放行客戶端映射過來的端口,否則外網只能訪問FRP服務,不能訪問FRP映射的客戶端端口。
(小白不要覺得這里沒有代碼就可以跳過,少哪一步都不行!)
第四步:
在服務器上開啟FRP服務並掛起。
登錄服務器打開終端,找到你配置FRP的目錄:
ls
cd frp37
screen -S frp
./frps -c ./frps.ini
命令行解析:
screen -S 新建終端 該終端在關閉后仍然執行
到此服務端工作完成,但如果業務化使用務必將FRP注冊為服務且添加守護。
第五步:客戶端工作開始
首先假設你的雲服務器地址為 123.124.125.126
我們以轉發Windows遠程桌面3389端口為例
到 Releases · fatedier/frp · GitHub 下載 frp_0.37.0_windows_amd64.zip (具體哪個版本看自己需求,不要說啥就是啥)
解壓進入目錄,打開目錄當中的 'frpc.ini' 這個配置文件,可以看到默認是這樣的:
[common]
server_addr = 127.0.0.1
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
這時我們就要進行修改:
[common]
server_addr = 123.124.125.126
server_port = 7370
token = demotoken123456789
[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 9550
命令行詳解:
[common] 總配置
server_addr 提供FRP服務的外網服務器地址 就是你申請的雲服務器公網地址
server_port 提供FRP服務的外網服務器端口 就是你剛剛配置的 bind_port
token 對應的token,服務端和客戶端要一致
[RDP] 子配置名稱根據自己實際情況隨意,例如數據庫就是[SQL],桌面就是[RDP]
type 協議類型
local_ip 本機IP,可以在網卡配置或路由器當中查看
local_port 要轉發的本機端口,我們是遠程桌面所以就是3389,SQLServer就是1433
remote_port 遠程端口,供外網設備連接的端口,根據自己想法設置
第六步:
雲服務器防火牆當中放行剛剛在客戶機上設置的 remote_port 。
剛才設置的是9550,就允許連接9550。
放行后可以在客戶機進入FRP客戶端目錄上打開Powershell運行看一下效果了:
./frpc.exe -c ./frpc.ini
在你的 iPad 上安裝 Microsoft遠程桌面,輸入你的雲服務器地址+轉發端口號,也就是:
123.124.125.126:9550 (僅為演示)
連接輸入憑據看下是否可以登錄。
注意:Windows 需要是專業版以上SKU才會有遠程桌面功能(也就是家庭版不行,除非有手段)。需要在計算機屬性高級系統設置當中開啟遠程桌面訪問。
同時為了安全,本機用戶賬戶務必使用Microsoft在線賬戶登錄並且開啟“僅允許運行使用網絡級別身份驗證的遠程桌面”。
【【【【RDP勒索病毒非常泛濫!】】】
開啟以上設置,登錄名就是你的Microsoft賬戶郵箱,密碼就是Microsoft賬戶密碼。
第七步:
包裝客戶機的FRPC客戶端為Windows服務
下載工具:WinSW Releases · winsw/winsw · GitHub
將 winsw.exe 復制到 FRPC 客戶端目錄重命名為:FRP.Clinet.SW.exe。
同時新建文件 "FRP.Clinet.SW.xml" ,文件名必須和exe名字一樣。
內容:
<service>
<id>CloudServer.FRP.Client</id>
<name>CloudServer FRP Client Service</name>
<description>CloudServer FRP Client Service</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<logmode>reset</logmode>
<startmode>Automatic</startmode>
</service>
然后在當前FRP客戶端目錄以管理員權限打開 Powersehll 執行安裝:
.\FRP.Client.SW.exe install
然后就可以在 Windows 服務中看到一個叫 “CloudServer FRP Client Service” 的服務了,選擇自動就會開機自啟。