FRP 內網穿透 一般模式和安全模式
模式 | 名稱 | 備注 |
---|---|---|
一般模式 | tcp | 配置簡單,快速但是安全性能較差,遠程暴露在公網上 |
安全模式 | stcp | 配置較為復雜,安全性能好。遠程通過控制端訪問服務端再訪問被控端 |
部署環境準備
服務端IP 192.168.111.212
服務端口 bind_port = 7000
服務端部署(token加密)
centos6 部署服務端
https://github.com/fatedier/frp/releases
#frp軟件下載
/usr/local/frp_0.33.0_linux_amd64
#frp解壓安裝目錄
vim frps.ini
[common]
bind_port = 7000
token = Hxxxxm
#更改監聽端口默認為7000
#token加密字段可以自定義
chmod +x /usr/local/frp_0.33.0_linux_amd64/frps
chmod +x /usr/local/frp_0.33.0_linux_amd64/frps.ini
#增加權限
nohup /usr/local/frp_0.33.0_linux_amd64/frps -c /usr/local/frp_0.33.0_linux_amd64/frps.ini & &> /dev/null
#啟動服務
iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 7000 -j ACCEPT
#防火墻允許通過
service iptables save
service iptables restart
#保存并重啟
netstat -lnp|grep 7000
#查看7000端口監聽狀態
服務自啟動
echo 'nohup /usr/local/frp_0.33.0_linux_amd64/frps -c /usr/local/frp_0.33.0_linux_amd64/frps.ini & &> /dev/null' >> /etc/rc.d/rc.local
tcp客戶端部署
windows客戶端部署
https://github.com/fatedier/frp/releases
#frp軟件下載
#解壓到C:\frp_0.33.0_windows_amd64
#編輯 frpc.ini
[common]
server_addr = 192.168.111.212
#服務端地址
server_port = 7000
#服務端端口號
token = Hxxxxm
#token加密字段與服務端一致
[RDP]
type = tcp
#鏈接類型
local_ip = 127.0.0.1
#本地地址
local_port = 33899
#RDP端口號
remote_port = 7002
#映射的遠程端口號!建議更改
之后我們打開c:\frp_0.33.0_windows_amd64目錄,按住鍵盤上的shift鍵后右鍵選擇「在此處打開 Powershell 窗口」,執行以下命令來開啟 frp 客戶端:
.\frpc.exe -c frpc.ini
[RDP] start proxy success 服務已經成功開啟,使用控制端的「微軟遠程桌面」應該就可以實現遠程控制了。
windows以服務安裝frp
winsw需要.net運行庫以下以4.0為例
https://github.com/winsw/winsw/releases
#下載winsw,根據.net運行庫選擇不同版本
sample-minimal.xml
WinSW.NET4.exe
#根據運行庫WinSW.NET4.exe改名為winsw.exe
#sample-minimal.xml改名為winsw.xml
#編輯「winsw.xml」
<service>
<id>frp</id>
<name>frp</name>
<description>frp service</description>
<executable>frpc.exe</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>
復制文件到frp安裝目錄
按住鍵盤上的shift鍵后右鍵選擇「在此處打開 Powershell 窗口」,執行以下命令
.\winsw install
.\winsw start
#安裝服務,啟動服務
Linux客戶端安裝
/usr/local/frp_0.33.0_linux_amd64
#解壓上傳到指定目錄
vim frpc.ini
#編輯frpc.ini
[common]
server_addr = 192.168.111.212
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
#ssh端口號
remote_port = 7002
#遠程訪問端口號!建議更改
chmod +x /usr/local/frp_0.33.0_linux_amd64/frpc
chmod +x /usr/local/frp_0.33.0_linux_amd64/frpc.ini
#增加權限
nohup /usr/local/frp_0.33.0_linux_amd64/frpc -c /usr/local/frp_0.33.0_linux_amd64/frpc.ini & &> /dev/null
#啟動服務
tcp模式鏈接方法
按下win按鍵
輸入mstsc回車
或者直接打開遠程桌面
127.0.0.1:7002
#服務端地址:客戶端指定端口號
stcp模式部署
被控端部署
#編輯 frpc.ini
[common]
server_addr = 192.168.111.212
server_port = 7000
token = Hxxxxm
[RDP-XXXX]
type = stcp
sk=Qxxxxxxxx!
local_ip = 127.0.0.1
local_port = 33899
#remote_port = 7002
#更改XXXX與控制端frpc.ini內[RDP-XXXX-visitor]下server_name字段一致
#更改local_port = 33899
#sk為加密字段可以自定義
重啟服務
控制端部署
#編輯 frpc.ini
[common]
server_addr = 192.168.111.212
server_port = 7000
token = Hxxxxm
[RDP-XXXX-visitor]
type = stcp
role = visitor
server_name = RDP-XXXX
sk=Qxxxxxxxx!
bind_addr = 127.0.0.1
bind_port = 7002
#訪問端增加[RDP-XXXX-visitor]
#server_name = RDP-XXXX與客戶端frpc.ini內[RDP-XXXX]字段保持一致
#bind_port = 7002更改端口
#每一個新的客戶端都需要新的[RDP-XXXX-visitor]配置
重啟服務
stcp鏈接方法
按下win按鍵輸入mstsc回車或者直接打開遠程桌面
127.0.0.1:7002
#本地地址:本地客戶端指定端口號