【附下載】帶你使用frp實現(xiàn)內(nèi)網(wǎng)穿透詳細教程黍氮!

frp實現(xiàn)內(nèi)網(wǎng)穿透

項目地址:https://github.com/fatedier/frp/releases

此工具依賴一個有公網(wǎng) IP 的 PC 或服務(wù)器唐含。內(nèi)網(wǎng)穿透工具就是為了解決上述的沒有公網(wǎng) IP 的問題的。

文末可獲取百度云盤下載地址

下載:frp_windwos_amd64.zip這個(amd64是64系統(tǒng),386是32位系統(tǒng)沫浆,現(xiàn)在電腦基本64位了)觉壶,比如frp_0.33.0_windows_amd64.zip

frp 是一個可用于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用,支持 tcp, udp 協(xié)議件缸,為 http 和 https 應(yīng)用協(xié)議提供了額外的能力铜靶,且嘗試性支持了點對點穿透。名稱其實就是使用了 Fast Reverse Proxy 的首字母縮寫。架構(gòu)如下:

案例:將內(nèi)網(wǎng)Linux服務(wù)器上的web網(wǎng)站映射到公網(wǎng)上去

做具體的配置前争剿,根據(jù)對應(yīng)的操作系統(tǒng)及架構(gòu)已艰,從github 頁面下載最新版本的程序。

將 frps 及 frps.ini 放到具有公網(wǎng) IP 的機器上蚕苇。請注意配置防火墻或安全組放過配置文件中使用的端口哩掺。

將 frpc 及 frpc.ini 放到處于內(nèi)網(wǎng)環(huán)境的機器上。

在公網(wǎng)windows上部署frps

第一步:上傳frp_0.39.1_windows_386到公網(wǎng)上的Windows服務(wù)器上

第二步:修改文件frps.ini文件

第三步:在cmd中輸入以下命令啟動frps.exe程序

出現(xiàn) frps started successfully 代表frps啟動成功涩笤;

在內(nèi)網(wǎng)liunx上部署frpc

第四步:把frpc上傳到本地內(nèi)網(wǎng)的liunx服務(wù)器上并解壓此文件

第五步:編輯 frpc.ini (這里需要有一個自己的域名)

第六步:啟動frpc嚼吞,出現(xiàn)[web] start proxy success即可

在瀏覽器訪問

第七步:在瀏覽器上訪問成功

使用場景

1. 通過 rdp 訪問家里的機器

修改 frps.ini 文件,為了安全起見蹬碧,這里最好配置一下身份驗證舱禽,服務(wù)端和客戶端的 common 配置中的 token 參數(shù)一致則身份驗證通過:

# frps.ini
[common]
bind_port = 7000
# 用于身份驗證,請自行修改恩沽,要保證服務(wù)端與客戶端一致
token = password2022

啟動 frps:

Linux上啟動:

./frps -c ./frps.ini

windows上使用

frps.exe -c ./frps.ini

修改 frpc.ini 文件誊稚,假設(shè) frps 所在服務(wù)器的公網(wǎng) IP 為 x.x.x.x:

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

用于身份驗證,請自行修改罗心,要保證服務(wù)端與客戶端一致

token = password2022

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

啟動 frpc:

./frpc -c ./frpc.ini

frpc.exe -c ./frpc.ini

通過 rdp 訪問遠程的機器里伯,地址為: 

x.x.x.x:6000

開機自啟

針對 Windows 系統(tǒng),為了便于使用渤闷,可以配置一下開機的時候靜默啟動疾瓮。
在 frpc.exe 的同級目錄創(chuàng)建一個 start_frpc.vbs:

start_frpc.vbs
請根據(jù)實際情況修改路徑

CreateObject("WScript.Shell").Run """D:\Program Files\frp_windows_amd64\frpc.exe""" & "-c" & """D:\Program Files\frp_windows_amd64\frpc.ini""",0

復(fù)制 start_frpc.vbs 文件,打開以下目錄飒箭,注意將 <USER_NAME> 改為你的用戶名:

`C:\Users\<USER_NAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`
  1. 鼠標右擊狼电,粘貼為快捷方式即可。

2. 通過 SSH 訪問公司內(nèi)網(wǎng)機器

frps 的部署步驟同上补憾。
啟動 frpc漫萄,配置如下:

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

用于身份驗證卷员,請自行修改盈匾,要保證服務(wù)端與客戶端一致

token = abcdefgh

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

通過 SSH 訪問內(nèi)網(wǎng)機器,假設(shè)用戶名為 test:

ssh -oPort=6000 test@x.x.x.x

3. 通過自定義域名訪問部署于內(nèi)網(wǎng)的 Web 服務(wù)

有時想要讓其他人通過域名訪問或者測試我們在本地搭建的 Web 服務(wù)毕骡,但是由于本地機器沒有公網(wǎng) IP削饵,無法將域名解析到本地的機器,通過 frp 就可以實現(xiàn)這一功能未巫,以下示例為 http 服務(wù)窿撬,https 服務(wù)配置方法相同, vhost_http_port 替換為 vhost_https_port叙凡, type 設(shè)置為 https 即可劈伴。
修改 frps.ini 文件,設(shè)置 http 訪問端口為 8080:

frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080

用于身份驗證握爷,請自行修改跛璧,要保證服務(wù)端與客戶端一致

token = abcdefgh

啟動 frps: 

./frps -c ./frps.ini

修改 frpc.ini 文件严里,假設(shè) frps 所在的服務(wù)器的 IP 為 x.x.x.x,local_port 為本地機器上 Web 服務(wù)對應(yīng)的端口追城, 綁定自定義域名 `www.yourdomain.com`: 
    
frpc.ini

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

用于身份驗證刹碾,請自行修改,要保證服務(wù)端與客戶端一致

token = abcdefgh

[web]
type = http
local_port = 80
custom_domains = ctf.caichuanqi.cn

啟動 frpc:

./frpc -c ./frpc.ini`

  1. 將 ctf.caichuanqi.cn 的域名 A 記錄解析到 IP x.x.x.x 座柱,如果服務(wù)器已經(jīng)有對應(yīng)的域名迷帜,也可以將 CNAME 記錄解析到服務(wù)器原先的域名。
  2. 通過瀏覽器訪問 http://ctf.caichuanqi.cn:8080 即可訪問到處于內(nèi)網(wǎng)機器上的 Web 服務(wù)色洞。

4. 對外提供簡單的文件訪問服務(wù)

通過 static_file 插件可以對外提供一個簡單的基于 HTTP 的文件訪問服務(wù)戏锹。

frps 的部署步驟同上。
啟動 frpc锋玲,啟用 static_file 插件景用,配置如下:

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

用于身份驗證,請自行修改惭蹂,要保證服務(wù)端與客戶端一致

token = abcdefgh

[test_static_file]
type = tcp
remote_port = 6000
plugin = static_file

要對外暴露的文件目錄

plugin_local_path = /tmp/file

訪問 url 中會被去除的前綴伞插,保留的內(nèi)容即為要訪問的文件路徑

plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc

通過瀏覽器訪問 來查看位于 /tmp/file 目錄下的 http://x.x.x.x:6000/static/ 文件,會要求輸入已設(shè)置好的用戶名和密碼盾碗。

常用功能

統(tǒng)計面板(Dashboard)

通過瀏覽器查看 frp 的狀態(tài)以及代理統(tǒng)計信息展示媚污。

注:Dashboard 尚未針對大量的 proxy 數(shù)據(jù)展示做優(yōu)化,如果出現(xiàn) Dashboard 訪問較慢的情況廷雅,請不要啟用此功能耗美。

需要在 frps.ini 中指定 dashboard 服務(wù)使用的端口,即可開啟此功能:

打開瀏覽器通過 http://[server_addr]:7500 訪問 dashboard 界面航缀,用戶名密碼默認為 admin 商架。

加密與壓縮

這兩個功能默認是不開啟的,需要在 frpc.ini 中通過配置來為指定的代理啟用加密與壓縮的功能芥玉,壓縮算法使用 snappy:

如果公司內(nèi)網(wǎng)防火墻對外網(wǎng)訪問進行了流量識別與屏蔽蛇摸,例如禁止了 SSH 協(xié)議等,通過設(shè)置 use_encryption = true灿巧,將 frpc 與 frps 之間的通信內(nèi)容加密傳輸赶袄,將會有效防止流量被攔截。

如果傳輸?shù)膱笪拈L度較長抠藕,通過設(shè)置 use_compression = true 對傳輸內(nèi)容進行壓縮饿肺,可以有效減小 frpc 與 frps 之間的網(wǎng)絡(luò)流量,加快流量轉(zhuǎn)發(fā)速度盾似,但是會額外消耗一些 CPU 資源敬辣。

TLS

從 v0.25.0 版本開始 frpc 和 frps 之間支持通過 TLS 協(xié)議加密傳輸。通過在 frpc.ini 的 common 中配置 tls_enable = true 來啟用此功能,安全性更高溉跃。

為了端口復(fù)用汰聋,frp 建立 TLS 連接的第一個字節(jié)為 0x17。

注意: 啟用此功能后除 xtcp 外喊积,不需要再設(shè)置 use_encryption烹困。

代理限速

目前支持在客戶端的代理配置中設(shè)置代理級別的限速,限制單個 proxy 可以占用的帶寬乾吻。

在代理配置中增加 bandwidth_limit 字段啟用此功能髓梅,目前僅支持 MBKB 單位。

范圍端口映射

在 frpc 的配置文件中可以指定映射多個端口绎签,目前只支持 tcp 和 udp 的類型枯饿。

這一功能通過 range: 段落標記來實現(xiàn),客戶端會解析這個標記中的配置诡必,將其拆分成多個 proxy奢方,每一個 proxy 以數(shù)字為后綴命名。

例如要映射本地 6000-6005, 6007 這 6 個端口爸舒,主要配置如下:

實際連接成功后會創(chuàng)建 8 個 proxy蟋字,命名為 test_tcp_0, test_tcp_1 ... test_tcp_7。

更多配置

由于 frp 目前支持的功能和配置項較多扭勉,完整的示例配置文件請參考:

frps 完整配置文件

frpc 完整配置文件

參考資料

[3]github 頁面:https://github.com/fatedier/frp/releases

[4]frps 完整配置文件:https://github.com/fatedier/frp/blob/master/conf/frps_full.ini

[5]frpc 完整配置文件:https://github.com/fatedier/frp/blob/master/conf/frpc_full.ini

本文由mdnice多平臺發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹊奖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涂炎,更是在濱河造成了極大的恐慌忠聚,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唱捣,死亡現(xiàn)場離奇詭異两蟀,居然都是意外死亡,警方通過查閱死者的電腦和手機震缭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門赂毯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛀序,你說我怎么就攤上這事欢瞪』罾樱” “怎么了徐裸?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啸盏。 經(jīng)常有香客問我重贺,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任气笙,我火速辦了婚禮次企,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘潜圃。我一直安慰自己缸棵,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布谭期。 她就那樣靜靜地躺著堵第,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隧出。 梳的紋絲不亂的頭發(fā)上踏志,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音胀瞪,去河邊找鬼针余。 笑死,一個胖子當著我的面吹牛凄诞,可吹牛的內(nèi)容都是我干的圆雁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼帆谍,長吁一口氣:“原來是場噩夢啊……” “哼摸柄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起既忆,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤驱负,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后患雇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跃脊,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年苛吱,在試婚紗的時候發(fā)現(xiàn)自己被綠了酪术。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡翠储,死狀恐怖绘雁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情援所,我是刑警寧澤庐舟,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站住拭,受9級特大地震影響挪略,放射性物質(zhì)發(fā)生泄漏历帚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一杠娱、第九天 我趴在偏房一處隱蔽的房頂上張望挽牢。 院中可真熱鬧,春花似錦摊求、人聲如沸禽拔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奏赘。三九已至,卻和暖如春太惠,著一層夾襖步出監(jiān)牢的瞬間吗购,已是汗流浹背哭懈。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工无拗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挫鸽,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓埃脏,卻偏偏與公主長得像搪锣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子彩掐,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容