frp_v0.37.1內網穿透,內網服務公網用不求人


前言:

公司內網無法訪問,出差又需要用到公司內網進行辦公,苦惱了好一陣。這時候想到了內網穿透,這就不得不提到幾年前被安利的frp,一看GitHub竟然已經5年了,網上估計大把教程了。

那么什么是frp呢。

frp 是一個專注於內網穿透的高性能的反向代{過}{濾}理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。

中文文檔請看:https://github.com/fatedier/frp/blob/dev/README_zh.md

GitHub地址:https://github.com/fatedier/frp

搭建

首先我們要准備 公網IP服務器一台(必要),其他機器若干台(我管你多少台),虛擬機也可以。

接着下載與機器cpu架構對應的frp

5w1DHS.png

接着我們在服務器的隨便一個地方解壓,這里我使用的華為雲的機器所以下載的是frp_0.37.1_linux_arm64.tar.gz

服務端配置及啟動

解壓之后進目錄修改服務端配置文件 frps.ini


# 必要配置,初始化服務端連接端口 [common] bind_port = 6000 bind_udp_port = 6001 # 認證模式和秘鑰 authentication_method = token authenticate_heartbeats = true authenticate_new_work_conns = false token = CPu2PS5teIdM #是否啟用tcp復用,可以省略 tcp_mux = true # 允許開啟的端口,可以限制在某個范圍利於雲平台開端口或其他管理 allow_ports = 20000-40000 # 日志,可以省略,省略之后直接打印在終端中。 log_file = ./frps.log log_level = info log_max_days = 3 disable_log_color = true

配置完成之后啟動


./frps -c frps.ini #frps服務端程序 # -c 加載配置文件

客戶端連接和啟動

frp releases包是包含服務端和客戶端的,接着我手上是兩台windows機器,所以按照x64 下載frp_0.37.1_windows_amd64.zip

解壓之后,我們開始編輯客戶端配置

編輯frpc.ini 文件


# 連接服務器,核心部分。每個客戶端都需要配置 [common] server_addr = www.wspby.top server_port = 6000 token = CPu2PS5teIdM   #這里一定要和服務端一致,否則報錯。 # 日志,可以省略,省略之后直接打印在終端中。 log_file = ./frpc.log log_level = info log_max_days = 3 #是否啟用tcp復用,可以省略 tcp_mux = true

啟動命令


frpc.exe -c frpc.ini

開始創建連接,這里科普下可以使用的連接類型type(來自https://www.zhuguodong.com/?id=560

代{過}{濾}理類型

tcp和udp:就是將普通的tcp端口或者udp端口映射到公網上,相當於你的設備直接向公網暴露了一個tcp端口,任何設備都可以嘗試連接這個端口。這里就會有很大的安全風險。


[pc_mstsc] type = tcp local_ip = 127.0.0.1 #這里疑似修改為其他地址並進行訪問,這里不做測試 local_port = 3389 remote_port = 33999

5ws9IA.png

之后在防火牆開下端口就可以提供給任何人訪問了。

sftp:出於安全和防止攻擊的考慮,frp提供了使用密鑰驗證的tcp,這就是frp的Secret TCP(stcp)模式。

xtcp:stcp是使用了服務器進行中轉,如果出現大流量的話會出現卡頓,所以就有了xtcp模式。在xtcp模式下,兩個客戶端是直接相連略過了服務端進行通信,這樣就不會受服務器帶寬限制。

被連接端配置如下:


[pc_stcp_mstsc]      # stcp type = stcp sk = 12345678 local_ip = 127.0.0.1 local_port = 3389 #基本一致 [pc_xtcp_mstsc]    # xtcp type = xtcp sk = 12345678 local_ip = 127.0.0.1 local_port = 3389

連接端配置如下:


[mstsc_vister_stcp] type = stcp role = visitor      #角色是訪問者 sk = 12345678 bind_addr = 127.0.0.1   #可以隨便寫 bind_port = 33333 server_name = pc_stcp_mstsc  #這里需要對應中括號內的服務名! [mstsc_vister_xtcp] type = xtcp role = visitor      #角色是訪問者 sk = 12345678       #需要與被連接端一致 bind_addr = 127.0.0.1    #可以隨便寫 bind_port = 44444 server_name = pc_xtcp_mstsc #這里需要對應中括號內的服務名!

bind_addr可以隨便寫,在連接時地址為: %bind_addr%:%bind_port%

在正確配置和啟動之后開始測試

5wspad.png

測試成功。

參考鏈接:

https://www.zhuguodong.com/?id=560
https://zhuanlan.zhihu.com/p/341551501
https://sspai.com/post/52523
還有其他忘了。。。

其他問題以后補充


免責聲明!

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



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