frp 反向代理搭建理解記錄

想法原由

由於公司的電腦實在是太差了,開機個虛擬機就卡包了,很多測試實驗沒法做,家裏的電腦也是閒着,所以想着利用家裏的電腦來遠程搭實驗環境或者測試。

搭建目的

遠程使用家裏的電腦,搭建實驗環境。

環境評估

由於家裏的寬帶是房東的寬帶,費用高且不說怎麼好,有掛羊頭賣狗肉的嫌疑,畢竟打着電信網絡的旗號,卻實際上用的聯通的網絡。租房的網絡上行都比較低,網絡還穩定,這算比較欣慰的。

準備的設備:

  1. 公網服務器一臺,作爲代理服務器,必須有公網ip。而我的帶寬不是很高1M,實測能用的;
  2. 家裏電腦一臺,虛擬機centos7.4 或者 Windows系統都行;
  3. 公司辦公電腦是Windows 7 系統。

frps代理配置參數

# frps.ini

[common]
bind_port = 7000

# 儀表盤web
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

# 令牌
token = 12345678

# 端口白名單 可以不設置
allow_ports = 7000-7010,6000-6010

# 連接池 可以不設置
max_pool_count = 10

--------------------------  我是分割線 運行方式 開始  ------------------------------------------------------------------------

# 下載好frp壓縮包,並解壓
# 目錄 mv frpxxx /usr/local/frp
cd /usr/local/frp
nohup ./frps -c ./frps.ini &    # 這是後臺運行方式的一種

--------------------------  我是分割線 運行方式  結束  ------------------------------------------------------------------------

注意:

公網服務器防火牆需要開啓對應的端口。

家裏電腦配置參數

家裏的電腦是Windows10系統,作爲服務端來使用,配置文件參數如下:

# frpc.ini

[common]
server_addr = x.x.x.x           # 配置frps 服務地址 填公網ip地址
server_port = 7000

# 令牌 估計用來加密的 跟frps一致
token = 12345678

# 動態加載配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 端口白名單
allow_ports = 7000-7010,6000-6010

# 連接池
pool_count = 2

# 模塊名
[secret_mstsc]
# 類型
type = stcp
# 加密
sk = abcdefg
# 端口映射
local_ip = 127.0.0.1
local_port = 3389

# 加密與壓縮
use_encryption = true
use_compression = true

====== 我是分割線 ==============  客戶端分割線   ====================

# 客戶端
# frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

# 令牌
token = 12345678

# 動態加載配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 連接池
pool_count = 2

# 模塊名稱
[secret_mstsc_visitor]
# 類型
type = stcp
# stcp 的訪問者 
role = visitor
# 要訪問的 stcp 代理的名字 
# 服務端的模塊名稱 由本名稱作爲區分多個服務
server_name = secret_mstsc
# 需要與服務端的一致
sk = abcdefg
# 綁定本地端口用於訪問 mstsc 服務 
bind_addr = 127.0.0.1
bind_port = 6002

# 加密與壓縮
use_encryption = true
use_compression = true

Windows端 啓動腳本編寫

# frpc.bat

frpc.exe -c frpc.ini

# frpc.vbs

Dim WinScriptHost 
Set WinScriptHost = CreateObject("WScript.Shell") 
WinScriptHost.Run Chr(34) & "D:\frp_20\frpc.bat" & Chr(34), 0 
Set WinScriptHost = Nothing

# D:\frp_20\frpc.bat  路徑地址要改成你下載frp 放的文件夾一起

--------------------------  我是分割線 運行方式 開始  ------------------------------------------------------------------------

# 下載好frp壓縮包,並解壓
# 移動目錄到 D盤,並改名字
打開cmd,切換到D盤,再進入到 frp目錄下
frpc.exe -c ./frps.ini    
# 或者
雙擊運行  frpc.vbs 文件

--------------------------  我是分割線 運行方式  結束  ------------------------------------------------------------------------

Linux ssh 配置

===== 我是分割線 ==============  服務端 =========================
# frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

# 令牌
token = 12345678

# 動態加載配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 端口白名單
allow_ports = 7000-7010,6000-6010

# 連接池
pool_count = 2

[secret_ssh] 
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

# 加密與壓縮
use_encryption = true
use_compression = true

==== 我是分割線 =============   客戶端  =============================

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

# 令牌
token = 12345678

# 動態加載配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 端口白名單
allow_ports = 7000-7010,6000-6010

# 連接池
pool_count = 2

[secret_ssh]
type = stcp
# stcp 的訪問者 
role = visitor
# 要訪問的 stcp 代理的名字 
server_name = secret_ssh
sk = abcdefg
# 綁定本地端口用於訪問 ssh 服務 
bind_addr = 127.0.0.1
bind_port = 6000

# 加密與壓縮
use_encryption = true
use_compression = true

==== 我是分割線 ==========================

配置文件說明:

將frps和frps.ini上有公共IP的服務器上。

將frpc和frpc.ini放到內網(LAN)中的服務器上。

以安全的方式公開您的服務

對於某些服務,如果將它們直接暴露給公共網絡,將存在安全風險。

stcp(secret tcp)幫助您創建代理,避免任何人都可以訪問它。

與上面一樣配置frps。

  1. 啓動frpc,轉發ssh端口並且remote_port是無效的:
# frpc.ini ssh服務端
[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh]
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
  1. 啓動另一個要連接此ssh服務器的frpc:
# frpc.ini 連接客戶端
[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh
sk = abcdefg
bind_addr = 127.0.0.1
bind_port = 6000
  1. 假設用戶名爲test,通過ssh連接到局域網中的服務器:
ssh -oPort=6000 [email protected]

儀表板

通過儀表板檢查frp的狀態和代理的統計信息。

爲儀表板配置端口以啓用此功能:

[common] 
dashboard_port = 7500
# dashboard的用戶名和密碼都是可選的,如果沒有設置,默認爲admin。
dashboard_user = admin
dashboard_pwd = admin

然後訪問http://[server_addr]:7500以查看儀表板,默認用戶名和密碼都是admin。

備註說明:

  1. 直接可以在官網上查看配置文件
  2. 軟件包需要去官網下載
  3. 各個模塊不能同時在一個配置文件中定義
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章