搭建frp內網穿透

前言

內網穿透的原理我就不多說了哈,既然會看到我這篇文章,想必都知道內網穿透是做什么的吧

frp分為服務端和客戶端,服務端一般是搭在公網服務器中,客戶端一般搭在本地或者局域網,需要提前在服務端搭好ftp server,然后客戶端搭建frp client,與服務端保持連接

遠程用戶一般是訪問不到本地內網的,所以需要訪問服務端,服務端通過frp轉發到內網中來

本教程是用docker搭建的frp,閱讀本文需要有一定的docker基礎,當然windows也可以操作,原理是一樣的

初次玩frp建議先把防火墻和安全組關了,以免遇到端口不能訪問的問題

搭建frp服務端

在公網服務器中新建配置文件

mkdir -p /data/frps
vim /data/frps/frps.toml

配置文件內容

[common]
# frp客戶端連接端口
bind_port = 7000
# 管理頁面的端口
dashboard_port = 7500
# 管理頁面的用戶名
dashboard_user = admin
# 管理頁面的密碼
dashboard_pwd = 123456
# 客戶端連接的令牌
token = 123456

拉取frp server鏡像

docker pull snowdreamtech/frps:0.62

?運行容器

docker run -d \--name=frps \--network=host \--restart=always \-v /data/frps:/etc/frp \snowdreamtech/frps:0.62

訪問http://你的公網ip:7500即可進入管理端頁面,賬號密碼就是配置文件中的賬號密碼

搭建frp客戶端,代理tcp

我們先啟動兩個內網服務,讓它可以正常訪問

在內網服務器中新建配置文件

mkdir -p /data/frpc
vim /data/frpc/frpc.toml

配置文件內容

[common]
server_addr = 你的公網ip
# 公網服務端的端口
server_port = 7000
# 公網服務器配置的token
token = 123456# 代理一個端口,通過公網服務器的8080端口訪問到內網的80端口
[web80]
# 代理類型
type = tcp
# 公網服務器的端口
remote_port = 8080
# 內網ip
local_ip = 192.168.200.100
# 內網端口
local_port = 80# 通過公網的8081端口訪問到內網的81端口
[web81]
type = tcp
remote_port = 8081
local_ip = 192.168.200.100
local_port = 81

拉取frp client鏡像

docker pull snowdreamtech/frpc:0.62

運行容器

docker run -d \--name=frpc \--network=host \--restart=always \-v /data/frpc:/etc/frp \snowdreamtech/frpc:0.62

如果本地是windows系統,可以下載windows客戶端

下載地址:https://github.com/fatedier/frp/releases

啟動方式也很簡單,直接frpc.exe -c frpc.toml即可

?我們到管理頁面就能看到客戶端代理信息了

這時候就可以通過你的公網ip去訪問你的內網了

代理http

使用前必讀,非常重要,可以讓你少走很多彎路:

所有http代理,在服務器中都是共用一個端口,通過域名來區分不同的http服務,所以代理http一定要有域名,沒有域名的話只能使用tcp的方式代理,tcp方式也能代理http

我們提前準備好域名,然后解析到你的公網服務器中

服務端frps.toml增加一句配置,定義http端口

vhost_http_port = 8088

注意:多個不同的http代理將會共用這個端口

完整配置:

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
token = 123456
vhost_http_port = 8088

?客戶端frpc.toml配置:

[common]
server_addr = 118.31.42.134
# 公網服務端的端口
server_port = 7000
# 公網服務器配置的token
token = 123456[web80]
# 代理類型
type = http
# 代理類型為http時,remote_port字段無效,遠程端口默認是服務端配的vhost_http_port
# remote_port = 8080
# 內網ip
local_ip = 192.168.200.100
# 內網端口
local_port = 80
# 域名
custom_domains = test.linzhehao.cn

就可以通過域名訪問你的內網了

代理https

申請SSL證書并審核,阿里云、騰訊云等廠家都可以申請免費證書

選擇nginx證書進行下載,下載后解壓,會有一個.key和.pem文件

將證書文件上傳到內網服務器的/data/frpc/cert

服務端frps.toml增加一句配置,定義https端口,所有的https請求都會走這個端口

vhost_https_port = 443

完整配置:

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
token = 123456
vhost_http_port = 8088
vhost_https_port = 443

客戶端frpc.toml配置:

[common]
server_addr = 你的公網ip
# 公網服務端的端口
server_port = 7000
# 公網服務器配置的token
token = 123456[web1]
type = https
# https中,local_ip和local_port字段無效
# local_ip = 192.168.200.100
# local_port = 80
custom_domains = test.linzhehao.cn
plugin = https2http
# 配置證書的路徑
plugin_crt_path = /etc/frp/cert/test.linzhehao.cn.pem
plugin_key_path = /etc/frp/cert/test.linzhehao.cn.key
plugin_host_header_rewrite = test.linzhehao.cn
# 代理的地址
plugin_local_addr = 192.168.200.100:80

?重啟一下frpc

docker restart frpc

就可以用https訪問了

子域名

簡介:

如果有多個子域名,比如test1.linzhehao.cn、test2.linzhehao.cn,如果不使用子域名的話,那么custom_domains每次都需要寫上完整的域名,使用子域名的話只需要在服務端配上linzhehao.cn,在客戶端配置test1、test2即可

frps.toml中添加:

subdomain_host = linzhehao.cn

完整配置:

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
token = 123456
vhost_http_port = 8088
vhost_https_port = 443
subdomain_host = linzhehao.cn

客戶端frpc.toml配置:

[common]
server_addr = 你的公網ip
# 公網服務端的端口
server_port = 7000
# 公網服務器配置的token
token = 123456[web80]
# 代理類型
type = http
# 內網ip
local_ip = 192.168.200.100
# 內網端口
local_port = 80# 如果想使用子域名,需要去掉custom_domains
# custom_domains = test.linzhehao.cn# subdomain會自動拼上frps.toml中的subdomain_host
subdomain = test

成功訪問

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Tailwind CSS 實戰,基于 Kooboo 構建 AI 對話框頁面(四):語音識別輸入功能

基于前三章的內容,開發AI 對話框語音識別輸入功能: Tailwind css實戰,基于Kooboo構建AI對話框頁面(一)-CSDN博客 Tailwind css實戰,基于Kooboo構建AI對話框頁面(二):實…

ollama list模型列表獲取 接口代碼

ollama list模型列表獲取 接口代碼 curl http://localhost:11434/v1/modelscoding package hcx.ollama;/*** ClassName DockerOllamaList* Description TODO* Author dell* Date 2025/5/26 11:31* Version 1.0**/import java.io.BufferedReader; import java.io.InputStreamR…

ISOLAR軟件生成報錯處理(五)

錯誤1 An error has occurred. See error log for more details. java.lang.NullPointerException 這東西不用管&#xff0c;不影響生成 錯誤2 Description Resource Path Location Type Target ARObject: <xxxx> CompuMethod used for floating-point data conversi…

前端開發定時,ES學習,java集合

1.前端vue3加入定時任務&#xff1a; import { onMounted, ref,onUnmounted } from vue;//初始化&#xff0c;結束調用部分引用let timer: any;//定時器onMounted(async () > {timer setInterval(() > {open()//需要定時的任務}, 60000)//一分鐘調用一次}); onUnmounte…

Photoshop2025(PS2025)軟件及安裝教程

在數字圖像編輯領域&#xff0c;Adobe Photoshop 一直是無可爭議的王者。如今&#xff0c;Photoshop 2025 重磅登場&#xff0c;再次為我們帶來了驚喜與變革&#xff0c;進一步鞏固了它在行業中的領先地位。 Photoshop 2025 在人工智能方面的升級令人矚目。其全新的 “Magic Se…

【SQL Server Management Studio 連接時遇到的一個錯誤】

第一次用SQL Server Management Studio啟動之后第一步就是要建立連接 但是不知道Server Name要填什么&#xff0c;看了網上的教程說是要找到下面這個注冊表中對應的實例名稱填上去&#xff0c;或者前面加localhost 但是好像都沒有用&#xff0c;一直遇到報錯如下&#xff1a;…

高等數學基礎(向量矩陣及其創建和特殊的矩陣)

向量 向量是機器學習最底層的組成部分, 也是基礎數據的表示形式, 線性代數通過將研究對象拓展到向量, 對多維數據進行統一研究, 而進化出的方法方便我們可以研究和解決真實世界中的問題 標量 標量也稱為"無向量", 使用一個單獨的數表示數值大小, 可以有正負之分, …

IBM DB2數據庫管理工具IBM Data Studio

一、介紹 IBM Data Studio 是 IBM 提供的一個集成開發環境&#xff08;IDE&#xff09;&#xff0c;用于支持數據管理、開發、優化和管理數據庫應用程序&#xff0c;特別是在 IBM Db2 和其他數據庫平臺上。它提供了許多功能&#xff0c;以幫助開發人員和數據庫管理員提高生產力…

Java異常處理的全面指南

Java異常處理的全面指南 一、Java異常的基礎概念1.1 什么是異常1.2 異常類的層次結構 二、Java異常的處理方式2.1 try-catch塊2.2 throws關鍵字2.3 throw關鍵字 三、自定義異常3.1 自定義受檢異常3.2 自定義非受檢異常 四、Java異常處理的最佳實踐4.1 捕獲合適粒度的異常4.2 避…

MediaMtx開源項目學習

這個博客主要記錄MediaMtx開源項目學習記錄,主要包括下載、推流(攝像頭,MP4)、MediaMtx如何使用api去添加推流,最后自定義播放器,播放推流后的視頻流,自定義Video播放器博客地址 1 下載 MediaMTX MediaMTX 提供了預編譯的二進制文件,您可以從其 GitHub 頁面下載: Gi…

【unity游戲開發——編輯器擴展】EditorApplication公共類處理編輯器生命周期事件、播放模式控制以及各種編輯器狀態查詢

注意&#xff1a;考慮到編輯器擴展的內容比較多&#xff0c;我將編輯器擴展的內容分開&#xff0c;并全部整合放在【unity游戲開發——編輯器擴展】專欄里&#xff0c;感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言一、監聽編輯器事件1、常用編輯器事件2、示例監聽播放模…

Spring Boot+Activiti7入坑指南初階版

介紹  Activiti 是一個輕量級工作流程和業務流程管理 (BPM) 平臺,面向業務人員、開發人員和系統管理員。其核心是一個超快且堅如磐石的 Java BPMN 2 流程引擎。它是開源的,并根據 Apache 許可證分發。Activiti 可以在任何 Java 應用程序、服務器、集群或云中運行。它與 Spri…

VoltAgent 是一個開源 TypeScript 框架,用于構建和編排 AI 代理

?一、軟件介紹 文末提供程序和源碼下載 VoltAgent 是一個開源 TypeScript 框架&#xff0c;用于構建和編排 AI 代理 二、什么是 VoltAgent&#xff1f; AI 代理框架提供了構建由自主代理提供支持的應用程序所需的基礎結構和工具。這些代理通常由大型語言模型 &#xff08;&am…

《仿盒馬》app開發技術分享-- 訂單詳情頁(端云一體)

開發準備 在之前的章節中我們實現了訂單的提交&#xff0c;以及提交之后跳轉到確認訂單頁面&#xff0c;在確認訂單頁面我們添加了一個入口&#xff0c;這個入口是查詢訂單&#xff0c;當我們點擊入口時&#xff0c;我們需要跳轉到一個新的界面&#xff0c;這個界面通過接收上…

傳統項目管理總拖延?Scrum敏捷全流程拆解

在互聯網高速發展的時代&#xff0c;企業競爭的核心要素正逐漸向 "速度" 傾斜。市場環境瞬息萬變&#xff0c;用戶需求呈現出多元化、動態化的顯著特征&#xff0c;而傳統管理模式固有的滯后性與僵化性&#xff0c;已難以匹配快速迭代的市場需求。在此背景下&#xf…

GelSight Mini觸覺傳感器:7μm精度+3D 映射,賦能具身智能精密操作

GelSight Mini 高分辨率視觸覺傳感器采用先進的光學成像與觸覺感知技術&#xff0c;賦予機器人接近人類的觸覺能力。該設備可捕捉物體表面微觀細節&#xff0c;并生成高精度的2D/3D數字映射&#xff0c;幫助機器人識別形狀、紋理及接觸力&#xff0c;從而執行更復雜、精準的操作…

【電路筆記 TMS320F28335DSP】McBSP 從源時鐘得到 生成時鐘 CLKG 幀同步信號 FSG

對應于原文 Multichannel Buffered Serial Port (McBSP)的 2.5.3 Data Clock Generation。 CLKG Figure 2-4. Sample Rate Generator Block Diagram CLKG 是采樣率發生器輸出的數據位時鐘&#xff08;Data Bit Clock&#xff09;&#xff0c;它被用來控制&#xff1a; 數據發…

(25年5.28)ChatGPT Plus充值教程與實用指南:附國內外使用案例與模型排行

更多具體來源&#xff1a;查看原文 ChatGPT Plus 充值教程 由于國內卡無法直接充值 chatgpt&#xff0c;通常需要借助虛擬卡。目前咱們常用的方式是通過虛擬卡平臺獲取。因平臺審核要求這里不細說&#xff0c;具體看原文。 ChatGPT Plus主要使用方向 ChatGPT Plus 提供了更…

38. 自動化測試異步開發之編寫客戶端異步webdriver接口類

Selenium異步瀏覽器操作實現原理深度解析 一、AsyncBrowser類核心結構 1.1 類定義與啟動方法 class AsyncBrowser(Command):@classmethodasync def start(cls, remote_driver_server: str

國芯思辰| 霍爾電流傳感器AH811為蓄電池負載檢測系統安全護航

在電動車、儲能電站、不間斷電源&#xff08;UPS&#xff09;等設備中&#xff0c;蓄電池作為關鍵的儲能單元&#xff0c;其運行狀態直接關系到設備的穩定性和使用壽命。而準確監測蓄電池的負載情況&#xff0c;是保障其安全、高效運行的關鍵。霍爾電流傳感器 AH811憑借獨特的技…