使用frp實現內網穿透


使用frp實現內網穿透如遠程訪問校園內網服務器:frp-Github鏈接

frp安裝

可以根據需求下載對應的文件版本,推薦使用Windows_amd64和Linux_amd64版本,具體還需要根據機子情況。下載鏈接

frp環境部署

frp 主要由 客戶端(frpc)服務端(frps) 組成,服務端通常部署在具有公網 IP 的機器上,客戶端通常部署在需要穿透的內網服務所在的機器上。以阿里雲WinServer2008作為公網IP服務器和Win10作為內網機子為例。

首先下載frp_0.33.0_windows_amd64版本,之后配置客戶端文件,打開frpc.ini。

image-20200917153330438

[common]
server_addr = x.x.x.x  #填寫公網服務器IP
server_port = 7000     #這個端口指的是客戶端與服務端通信使用的端口

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389      #SSH使用22端口 windows系統使用3389端口
remote_port = 6000     #這個端口是指通過x.x.x.x:6000訪問內網機子的轉發端口

注意若使用雲服務器,在服務器的安全組中要把端口7000、6000(可自定義)都進行開放,否則連接不上。服務端使用默認配置文件不需要更改。

配置好文件之后,啟動即可,windows的話需要使用cmd打開,可自寫bat文件啟動。

想要多客戶端配置就在不同客戶端上面使用不同端口啟動即可:

[common]
server_addr = x.x.x.x  #填寫公網服務器IP
server_port = 7000     #這個端口指的是客戶端與服務端通信使用的端口

[ssh2] # 不同客戶端需要不同的名字
type = tcp
local_ip = 127.0.0.1
local_port = 3389      #SSH使用22端口 windows系統使用3389端口
remote_port = 6006     #這個端口是指通過x.x.x.x:6000訪問內網機子的轉發端口

若需要配置web服務需要更改服務器和客戶端文件如下:

frps.ini服務端配置文件

[common]
bind_port = 7000
vhost_http_port = 6001 # 訪問6001端口,映射到內網web服務

frpc.ini客戶端配置文件

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

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6000

[web]
type = http
local_port = 8080 # 訪問本地8080web服務
custom_domains = www.xxx.cn # 必須已經備案

客戶端啟動:

image-20200917153940979

服務端啟動:

img

連接測試圖:

image-20200917154424554

frp儀表盤配置

通過frp自帶儀表盤控制界面 Dashboard 可以方便的查看 FRP 的狀態以及代理統計信息展示

image-20201125194746816

要使用這個功能首先需要在 FRP 服務端配置文件 frps.ini 中指定 Dashboard 服務使用的端口:

# frps.ini 內容
[common]
bind_port = 7000

# 指定 儀表盤控制界面 Dashboard 的監聽的 IP 地址 //0.0.0.0 為所以IP均可訪問
dashboard_addr = 0.0.0.0

# 指定 儀表盤控制界面 Dashboard 的監聽的端口,默認為 7500
dashboard_port = 7500

# 指定訪問 儀表盤控制界面 Dashboard 的登錄用戶名
dashboard_user = admin

# 指定訪問 儀表盤控制界面 Dashboard 的登錄用戶密碼
dashboard_pwd = admin123

在frp目錄下輸入【frps -c frps.ini】命令重新啟動 frps 服務端

image-20201125200243063

出現start frps success即啟動好服務,注意在阿里雲開放對應端口7500.

nssm將frp注冊為win10服務

為了方便frp在win10啟動,可以設置為服務,讓其后台自啟。

首先下載nssm,官網鏈接

NSSM是一個服務封裝程序,它可以將普通exe程序封裝成服務,使之像windows服務一樣運行。同類型的工具還有微軟自己的srvany,不過nssm更加簡單易用,並且功能強大。它的特點如下:

  1. 支持普通exe程序(控制台程序或者帶界面的Windows程序都可以)
  2. 安裝簡單,修改方便
  3. 可以重定向輸出(並且支持Rotation)
  4. 可以自動守護封裝了的服務,程序掛掉了后可以自動重啟
  5. 可以自定義環境變量

服務安裝:

服務安裝可以使用如下命令(注意使用管理員運行): nssm install servicename

image-20201125201148191

執行此命令后,會出現一個界面,基本上看着就知道怎么用了,大多數情況下,只需要填第一個界面的程序路徑就可以了。

其它界面的是高級參數的配置,可以根據需要自行選擇。

參數填完后執行"install service"按鈕即可將服務安裝到系統,可以使用系統的服務管理工具查看了。

當然,如果要自動化安裝,可以直接帶上程序路徑: nssm install servicename program [arguments]

NSSM本身win7及以上的系統基本都是支持的,我測試過win7,2008,2016系統,都是沒有問題的,如果安裝失敗,請首先檢查是否裝了某國產管家或國產殺毒軟件。

安裝完成后,服務還沒有啟動,需要通過下面的服務管理的命令啟動服務。

服務管理:

服務管理主要有啟動、停止和重啟,其命令如下:

  • 啟動服務:nssm start servicename
  • 停止服務:nssm stop servicename
  • 重啟服務:nssm restart servicename

當然,也可以使用系統自帶的服務管理器操作和使用系統的命令。

修改參數:

NSSM安裝的服務修改起來非常方便,命令如下:

nssm edit servicename

會自動啟動操作界面,直接更改即可。

服務刪除:

服務刪除可以使用如下命令之一:

  • nssm remove servicename
  • nssm remove servicename confirm

功能沒有大的區別,后面的命令是自動確認的,沒有交互界面。

建議

  • 如果有自己的域名,可以將域名解析到公網ip上面,這樣只需要根據域名即可進行遠程連接。
  • frp是需要公網的機子,若無公網機子,可以考慮花生殼、NatApp等軟件進行內網穿透。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM