基于https+域名的Frp內網穿透教程(Linux+Nginx反向代理)

系列文章目錄

????????基于http+公網ip的Frp內網穿透教程(win server)

????????基于http+域名的Frp內網穿透教程(win server+IIS反向代理)

????????基于http+公網ip的Frp內網穿透教程(Linux)

????????基于https+域名的Frp內網穿透教程(Linux+Nginx反向代理)


目錄

系列文章目錄

前言

一、Frp是什么?

1. Frp介紹

2. Frp工作原理

二、配置手冊

1. 準備工作

????????1.1 公網云服務器(server端):

????????1.2?公司內網服務器(client端):

2.?實操篇

????????2.1?公網云服務器(server端):

配置frps.ini

運行frps.exe:

配置frps開機自啟

公司內網服務器端

將frp軟件拷貝到公司內網服務器上

配置frpc.ini

運行frpc.exe:

配置frpc開機自啟

通過域名+7001端口訪問網站

反向代理隱藏端口(IIS)

大功告成


?

前言

我在文章基于HTTP+公網ip的Frp內網穿透教程(win server)中已經介紹了公網ip的Frp內網穿透教程,本文主要介紹https+域名(無端口)的Frp內網穿透配置教程。

寫本文主要是做一個記錄,以便以后需要再次配置內網穿透時有所參考。如對您有所幫助不甚榮幸。

本文主要涉及的軟硬件條件為:

  • 外網云服務端:阿里云服務器 + Alibaba Cloud Linux + 域名 + Nginx反向代理;
  • 內網服務器:Ubuntu?+ 臺式電腦;

一、Frp是什么?

1. Frp介紹

frp 是一個開源、簡潔易用、高性能的內網穿透和反向代理軟件,支持 tcp, udp, http, https等協議。frp 項目官網。

2. Frp工作原理

FRP是一種內網穿透工具,主要用于將內網的服務暴露到公網上。它的工作原理可以簡單概括為以下幾個步驟:

  1. 在公網服務器上部署FRP服務器,并在內網主機上部署FRP客戶端。
  2. 在FRP服務器上配置一個公網端口,用于接收來自公網的請求。
  3. 在FRP客戶端上配置一個本地端口,指定需要暴露到公網的服務端口號。
  4. 當有來自公網的請求訪問FRP服務器上的公網端口時,FRP服務器會將請求轉發到內網主機上的FRP客戶端,并將請求轉發給客戶端上配置的本地端口。
  5. FRP客戶端收到請求后,會將請求轉發到本地服務端口上,從而實現將內網服務暴露到公網上的目的。

需要注意的是,FRP還可以通過配置反向代理來實現多個內網主機的服務共享一個公網IP的功能。此時,FRP服務器會根據請求中指定的域名將請求轉發到不同的內網主機上,從而實現內網服務的多路復用。

總之,FRP的工作原理是通過在公網和內網之間建立一個通道,將公網請求轉發到內網主機上的服務端口,從而實現內網服務的暴露和共享。

二、配置手冊

1. 準備工作

????????1.1 公網云服務器(server端):

????????????????阿里云服務器

????????????????操作系統:Alibaba Cloud Linux

????????????????反向代理工具:Nginx

????????????????阿里云暴露端口:7000、7001、80、443

????????????????域名:web.qianyuhui.top

????????????????公網ip:139.224.x.x(域名需要解析到公網Ip上)

??

????????1.2?公司內網服務器(client端):

????????????????操作系統:Ubuntu 22.04

????????????????內網ip:192.168.31.31

????????????????設置防火墻暴露端口:7000、7001、9001、9002

????????????????準備好1個web網站:? ? ? ? ? ??

2.?實操篇

????????2.1?公網云服務器(server端)

? ? ? ? ? ? ? ? 2.1.1 下載Frp安裝包

wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

?解壓:

tar zxf frp_0.44.0_linux_amd64.tar.gz

移動至 /usr/local

在/usr/local/下創建一個frp文件夾。/usr/local目錄類似于windows系統的C:/Progrem Files/。用戶自己編譯的軟件默認會安裝到這個目錄下:

mkdir /usr/local/frp

將frp_0.44.0_linux_amd64移動到 /usr/local/frp 里面:

mv frp_0.44.0_linux_amd64/* /usr/local/frp/

進入文件夾:

cd /usr/local/frp/

列表顯示根目錄下的文件:

ls

?frps就是frp server端的部分;frpc 是frp client端的部分。這里我們只需要關心Server端。
這里我們可以直接刪掉frpc、frpc_full.ini、frpc.ini三個文件,節省硬盤空間

find . -name 'frpc*' -exec rm {} \;

?

???????????????2.1.2?修改配置文件:frps.ini

vi frps.ini 

鍵入【i】,修改內容如下:

[common]
# frp server 綁定的端口
bind_port = 7000 
# 設置 http 訪問端口為 80
vhost_http_port = 80
# 設置域名(保證此域名可用;我們假設你的域名為【subdomain.yourdomain.com】)
subdomain_host = yourdomain.com

【bind_port】:frp客戶端連接服務端的端口
【vhost_http_port】:是http訪問的端口(外網端口)。我這里設置成80端口。也就是說,在配置正確的前提下,外網可以通過瀏覽器直接訪問【http://47.99.x.x】訪問內網服務。
【subdomain_host】:你的一級域名。我們假設你的域名為:【subdomain.yourdomain.com】。【subdomain】是二級域名,【yourdomain.com】是一級域名。如果不需要用到域名則不需要配置此項。

[注意]:
建議1:不要加注釋。我在配置ini的時候,加了注釋好像會報錯。
建議2:新手建議只設置這兩個,設置越多越容易出錯。建議走通后再慢慢改。

修改完成后。按下Esc退出編輯模式。然后輸入:wq保存并退出。
?

配置frps.ini

frps.ini文件配置如下:

[common]
#記得下面2個端口在服務器上放行# 服務端frps端口,與客戶端frpc一起綁定的端口
bind_port = 7000#web服務http接口,就是你打開網址時輸入的端口號,因為80端口被禁用,所以我使用了別的
vhost_http_port = 7001

??

[common] 表示frp的通用配置。

bind_port 表示server端frps與client端frpc綁定的端口號。

vhost_http_port 表示http綁定的接口。

運行frps.exe:

終端手動運行方式:

命令行:

C:
cd C:\FTP\frp_0.48.0_windows_amd64
frps.exe -c ./frps.ini

??

frps started successfully。

frps tcp 綁定到7000端口上,http 服務綁定到7001端口上。

bat腳本運行方式:

新建run.bat文件,用記事本打開,輸入以下命令:

C:
cd C:\FTP\frp_0.48.0_windows_amd64
frps.exe -c ./frps.ini

??

保存后,鼠標單擊run.bat即可手動運行。

??

如上圖表示server端運行成功。

配置frps開機自啟

配置frps開機自啟動的方式:

將bat文件復制到:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下,重命名為:frp內網穿透開機自啟.bat。

這樣以后,只要云服務器開機之后就會自動運行frps.exe文件。

??

公司內網服務器端

將frp軟件拷貝到公司內網服務器上

將安裝包發布到公司內網服務器上,刪除不需要的文件,保留frpc.exe和frpc.ini文件。

這里的目錄為:G:\frp\frp_0.48.0_windows_amd64

??

配置frpc.ini

frpc.ini文件配置如下:

[common]
#外部云服務器地址+設置的端口
server_addr = 8.136.x.x
server_port = 7000#第一個web網站,端口號為內部對應端口,及對應訪問網址,這個網址需要在外部云服務器上綁定
[web1]
type = http
local_port = 9001
custom_domains = web1.whqyjy.com#第二個web網站,端口號為內部對應端口,及對應訪問網址,這個網址需要在外部云服務器上綁定
[web2]
type = http
local_port = 9002
custom_domains = web2.whqyjy.com

??

[common] 表示frp的通用配置;

server_addr 表示server端的公網ip地址;

server_port 表示server端frps綁定的端口;

[web1] 這里的[web1]表示一個網站的名稱,可以自定義;

type表示請求的類型,我們用的是http;

local_port 表示本機端口,也就是網站web1在本機綁定的端口號;

custom_domains 表示用戶通過瀏覽器訪問網站web1的域名;

web2同理。

運行frpc.exe:

終端手動運行方式:

命令行:

G:
cd G:\qainyuhui\frp_0.48.0_windows_amd64
frpc.exe -c ./frpc.ini

bat腳本運行方式:

新建run.bat文件,用記事本打開,輸入一下命令:

G:
cd G:\qainyuhui\frp_0.48.0_windows_amd64
frpc.exe -c ./frpc.ini

??

保存后,鼠標單擊run.bat即可手動運行。

??

如上圖表示client端運行成功,并且成功登陸到server端,網站[web1]、[web2]成功加入到協議中。

與此同時,云服務器(server端)也會輸出同樣的日志信息:

??

配置frpc開機自啟

配置frpc開機自啟動的方式:

將bat文件復制到:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下,重命名為:frpc內網穿透開機自啟.bat。

這樣以后,只要內網服務器開機之后就會自動運行frpc.exe文件。

??

通過域名+7001端口訪問網站

內網穿透已經配置成功,我們現在可以在外網環境中通過域名+端口的形式訪問web1和web2:web1.whqyjy.com:7001、web2.whqyjy.com

??

??

至此,frp的職責已經完成了。剩下的工作就要交給反向代理去將7001端口隱藏掉。

反向代理隱藏端口(IIS)

云服務器端,可以通過反向代理隱藏掉7001端口。

這里我使用IIS進行反向代理操作。參考文章:IIS的反向代理

IIS插件安裝

IIS配置反向代理需要依靠兩個插件:Application Request Routing(ARRv3.0)、Url-Rewite。如果您的IIS中沒有安裝需要單獨安裝插件。安裝教程可參考IIS的反向代理。

??

反向代理設置

??

IIS中打開占用服務器80端口的網站(IIS默認中是Default Web Site),點擊右上角瀏覽Default Web Site所在文件夾。

windows中Default Web Site的默認地址一般為:C:\inetpub\wwwroot。我們需要修改web.config進行反向代理的配置。配置之前請確保您已經安裝好Application Request Routing(ARRv3.0)、Url-Rewite這兩個插件,否則配置無法生效。

??

默認情況下web.config內容如下:

??

我們在<system.webServer>節點中添加重寫規則:

<rewrite><rules><rule name="web1.whqyjy.com"><match url="^(.*)" /><conditions><add input="{HTTP_HOST}" pattern="^web1.whqyjy.com$" /></conditions><action type="Rewrite" url="http://web1.whqyjy.com:7001/{R:1}" /></rule><rule name="web2.whqyjy.com"><match url="^(.*)" /><conditions><add input="{HTTP_HOST}" pattern="^web2.whqyjy.com$" /></conditions><action type="Rewrite" url="http://web2.whqyjy.com:7001/{R:1}" /></rule></rules>
</rewrite>

意思就是說:讓云服務器上的IIS將用戶輸入的URL:【web1.whqyjy.com】轉成【http://web1.whqyjy.com:7001】,web2同理。

??

保存web.config,重啟Default Web Site 網站。即可生效。

??

大功告成

配置完成之后,我們在外網環境中訪問http://web1.whqyjy.com和 http://web2.whqyjy.com.就可以訪問內網中的web1和web2了。

??

??

?

?

?

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

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

相關文章

裸機程序(1)

一、裸機裸機是一個在計算機硬件與軟件開發領域高頻出現的概念&#xff0c;核心定義是 “未安裝操作系統&#xff08;OS&#xff09;&#xff0c;僅包含硬件本身&#xff08;或僅運行最底層硬件驅動 / 控制程序&#xff09;的設備”。在電腦中&#xff0c;裸機會映射代碼到cpu&…

95%企業AI失敗?揭秘LangGraph+OceanBase融合數據層如何破局!?

本文較長&#xff0c;建議點贊收藏&#xff0c;以免遺失。更多AI大模型應用開發學習視頻及資料&#xff0c;盡在聚客AI學院。不知道你們有沒有遇到過&#xff0c;在我們一些實際落地的AI項目中&#xff0c;雖然前期“Demo 很驚艷&#xff0c;但上線后卻無人問津”。你們有沒有想…

樹莓集團產教融合:數字學院踐行職業教育“實體化運營”要求

在職業教育改革不斷深化的背景下&#xff0c;“實體化運營” 成為推動職業教育高質量發展的重要方向。樹莓集團積極響應這一要求&#xff0c;以產教融合為核心&#xff0c;打造數字學院&#xff0c;切實踐行職業教育 “實體化運營”&#xff0c;為培養高素質數字領域專業人才探…

ELK 統一日志分析系統部署與實踐指南(上)

#作者&#xff1a;張桐瑞 文章目錄1 ELK 技術棧概述1.1ELK 核心組件詳解1.2 ELK 工作流程2 ELK部署2.1 環境描述2.1.7 配置es集群下篇&#xff1a;《ELK 統一日志分析系統部署與實踐指南&#xff08;下&#xff09;》 鏈接: [https://blog.csdn.net/qq_40477248/article/detail…

上位機知識篇---poweshellcmd

要理解 PowerShell 和 CMD 的區別&#xff0c;我們可以先打個通俗的比方&#xff1a;CMD 像老式功能機&#xff0c;只能干打電話、發短信這些 “基礎活”&#xff1b;而 PowerShell 像智能手機&#xff0c;不僅能做基礎操作&#xff0c;還能裝 APP、玩復雜功能&#xff0c;甚至…

利用 Python 繪制環形熱力圖

暑假伊始&#xff0c;Coldrain 參加了學校舉辦的數模集訓&#xff0c;集訓的過程中&#xff0c;遇到了需要展示 59 個特征與 15 個指標之間的相關性的情況&#xff0c;在常用的圖表不大合適的情況下&#xff0c;學到了一些厲害的圖表&#xff0c;但是似乎千篇一律都是用 R 語言…

【序列晉升】27 Spring Cloud Sleuth給分布式系統裝上透視鏡

Spring Cloud Sleuth作為微服務架構中的核心監控組件&#xff0c;通過輕量級的無侵入式跟蹤機制&#xff0c;解決了分布式系統中請求路徑復雜、問題定位困難的痛點。它自動為每個服務請求創建唯一的Trace ID&#xff0c;并為每個服務間調用生成Span ID&#xff0c;形成完整的調…

Linux(2)|入門的開始:Linux基本指令(2)

一、基本指令介紹 回顧上篇博客Linux(1)|入門的開始&#xff1a;Linux基本指令-CSDN博客&#xff0c;我們已經學習了mkdir目錄的創建&#xff0c;touch普通文件的創建&#xff0c;光有創建肯定是不行的&#xff0c;接下來就介紹我們的刪除指令 1、rmdir指令&&rm指令 …

sv中forever如何結束

在 SystemVerilog 中&#xff0c;forever 循環本身無法自我結束。它的設計初衷就是創建一個永不終止的循環。 因此&#xff0c;要結束一個 forever 循環&#xff0c;必須從外部強制中斷它。主要有以下兩種方法&#xff1a;1. 使用 disable 語句&#xff08;最常用和推薦的方法&…

關于熵減 - 從法拉第圓盤到SEG

我們清楚的知道法拉第圓盤發電機的原理。當導線切割磁感線的時候&#xff0c;會產生電流&#xff0c;當然電流產生需要的是電動勢&#xff0c;也就是&#xff0c;這里寫 不寫 &#xff0c;避免和電場強度混淆。根據上面的分析&#xff0c;我們知道磁場強度特斯拉 的單位&#x…

【機器學習】實戰:市場增長點分析挖掘項目

在電商行業激烈競爭的背景下&#xff0c;精準挖掘市場增長點是企業保持競爭力的關鍵。本文基于拜耳官方旗艦店驅蟲劑市場分析項目&#xff0c;先對原文核心內容進行梳理與解讀&#xff0c;再續寫關鍵的競爭分析模塊&#xff0c;形成完整的市場增長點挖掘閉環&#xff0c;為企業…

【Day 18】21.合并兩個有序鏈表 2.兩數相加

文章目錄21.合并兩個有序鏈表題目&#xff1a;思路&#xff1a;迭代代碼實現&#xff08;Go&#xff09;&#xff1a;2.兩數相加題目&#xff1a;思路&#xff1a;代碼實現&#xff08;Go&#xff09;&#xff1a;21.合并兩個有序鏈表 題目&#xff1a; 將兩個升序鏈表合并為…

Vue 3 WebSocket通信方案:從原理到實踐

Vue 3 WebSocket通信方案&#xff1a;從原理到實踐 在現代Web應用開發中&#xff0c;實時通信已成為許多應用的核心需求。從即時聊天到實時數據更新&#xff0c;用戶對應用響應速度的期望越來越高。本文將深入剖析一個Vue 3環境下的WebSocket通信方案&#xff0c;包括基礎封裝與…

Windows 電源管理和 Shutdown 命令詳解

一、Windows 電源管理概述 Windows 操作系統通過其內置的電源管理框架&#xff0c;為用戶提供了多種電源狀態和配置選項&#xff0c;以在性能、能耗和數據安全之間找到最佳平衡點。以下是 Windows 系統中常見的電源狀態及其特點&#xff1a; 1. 睡眠&#xff08;Sleep&#xff…

Selenium WebUI 自動化“避坑”指南——從常用 API 到 10 大高頻問題

目錄 一、為什么 90% 的 UI 自動化腳本活不過 3 個月&#xff1f; 二、Selenium必會 API 速查 三、實踐 四、10 大高頻異常“癥狀 → 病因 → 處方” 五、可復用的工具函數 六、面試高頻追問&#xff08;附標準答案&#xff09; 一、為什么 90% 的 UI 自動化腳本活不過 …

【微信小程序】微信小程序基于雙token的API請求封裝與無感刷新實現方案

文章目錄前言一、設計思路二、執行流程三、核心模塊3.1 全局配置3.2 request封裝3.2.1 request方法配置參數3.2.2 請求預處理3.2.3 核心請求流程3.3 刷新accessToken3.4 輔助方法四、api封裝示例總結前言 現代前后端分離的模式中&#xff0c;一般都是采用token的方式實現API的…

基于單片機醉酒駕駛檢測系統/酒精檢測/防疲勞駕駛設計

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 該設計基于單片機開發&#xff0c;旨在通過實時檢測駕駛員酒精濃度&#xff0c;預防酒后駕駛行為…

第6章:垃圾回收分析與調優

1. 垃圾回收基礎 1.1 Java 垃圾回收概述 垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;是 Java 虛擬機自動內存管理的核心機制。理解 GC 的工作原理對于 Java 應用性能調優至關重要。 1.1.1 垃圾回收的目標 自動內存管理&#xff1a;無需手動釋放內存防止…

ROS2核心模塊-動作通信、參數服務

動作通信 機器人導航到某個目標點,此過程需要一個節點A發布目標信息&#xff0c;然后一個節點B接收到請求并控制移動&#xff0c;最終響應目標達成狀態信息。 乍一看&#xff0c;這好像是服務通信實現&#xff0c;因為需求中要A發送目標&#xff0c;B執行并返回結果&#xff0c…

word文檔封面中文件編號等標題和內容無法對齊

問題 word文檔封面中文件編號等標題和內容無法對齊&#xff0c;因為標題使用的是底紋不是文件內容。 解決辦法 字體大小、行距兩者配合就可以解決。