當前位置:首頁 » 雲伺服器 » frp伺服器域名IP

frp伺服器域名IP

發布時間: 2023-06-19 15:04:43

㈠ FRP 內網穿透、反向代理

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

本文將以暴露內網 Web 服務為例,實踐 frp 的安裝部署。更多應用場景,可見 frp 示例[2]

frp 主要由 客戶端(frpc) 服務端(frps) 組成,服務端通常部署在具有公網 IP 的機器上,客戶端通常部署在需要穿透的內網服務所在的機器上。

可以在 Github 的 Release[3] 頁面中下載到最新版本的客戶端和服務端二進制文件。

本文公網、內網機器都是 linux x86_64 ,所以選擇了 frp_0.39.0_linux_amd64.tar.gz 。解壓

拷貝 frps 文件進公網機器,假設其 IP 為 x.x.x.x :

修改 frps.ini 文件,設置監聽 HTTP 請求埠為 8080:

安裝 supervisor 進行部署,後台長期運行:

拷貝 frpc 文件進內網機器,假設其 IP 為 192.168.1.100 :

修改 frpc.ini 文件,假設 frps 所在的伺服器的 IP 為 x.x.x.x , local_port 為本地機器上 Web 服務監聽的埠, 綁定自定義域名為 custom_domains 。

將 www.yourdomain.com 的域名 A 記錄解析到 IP x.x.x.x 。

簡單運行服務,進行測試:

以 systemd 進行部署,後台長期運行:

[1] frp: https://github.com/fatedier/frp

[2] frp 示例: https://gofrp.org/docs/examples/

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

㈡ 如何讓內網的CENTOS伺服器能用域名訪問

利用frp穿透技術,來實現你要的功能,不需要公網IP。畢竟現在公網IP運營商有很多限制:

以下文章轉載自吳昊博客

frp內網穿透是通過一個帶有公網IP的伺服器進行中轉,對被控主機實現反向代理,用戶通過訪問frps(中轉伺服器)來實現對frpc(被控主機)的遠程訪問。

frp流程圖如下:

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

本實驗環境以阿里雲伺服器作為中轉機,中轉伺服器使用Centos7.6,被控主機使用Centos7.6,用戶使用Windows10由於網路原因,文中鏈接已經替換成了本地鏈接,如不放心,請自行去GitHub下載

frps中轉伺服器配置

1、下載frp

在一台有公網IP的主機上配置frps,我這里以阿里雲Centos7.x主機為例

1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz

2 tar xf frp_0.27.0_linux_amd64.tar.gz

3 mv frp_0.27.0_linux_amd64 /usr/local

4 cd /usr/local/frp_0.27.0_linux_amd64

5 rm -f frpc*

2、配置frps

這里使用最基礎的配置,bind_port 表示frp面板的監控埠,dashboard_user表示面板的登陸帳號,dashboard_pwd表示面板的登陸密碼,其它不動。

1 vi

frps.ini

配置文件說明:

1 [common]

2 bind_port = 7000

3

4 dashboard_user = whsir

5 dashboard_pwd = blog.whsir.com

6 dashboard_port = 8000

3、啟動frps

配置啟動服務

1 vi /etc/systemd/system/frps.service

1 [Unit]

2 Description=frps daemon

3 After=syslog.target network.target

4 Wants=network.target

5

6 [Service]

7 Type=simple

8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frps -c /usr/local/frp_0.27.0_linux_amd64/frps.ini

9

10 [Install]

11 WantedBy=multi-user.target

技行以下兩個命令

1 systemctl enable frps

2 systemctl start frps

4、訪問監控平台

http://公網IP:8000

賬號whsir

密碼blog.whsir.com

如果訪問不了,請使用ss -lnt命令檢查埠是否啟動,是否因為防火牆原因攔截。

至此frps中轉伺服器配置完成

frpc內網主機配置

1、內網主機下載frp

1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz

2 tar xf frp_0.27.0_linux_amd64.tar.gz

3 mv frp_0.27.0_linux_amd64 /usr/local

4 cd /usr/local/frp_0.27.0_linux_amd64

5 rm -f frps*

2、配置frpc

其中x.x.x.x表示frps中轉伺服器ip地址

ssh欄位:local_port = 22示被控(內網)主機的ssh埠,remote_port = 6000表示ssh中轉埠

web欄位:local_port = 80表示被控(內網)主機的web埠,remote_port = 8081表示web中轉埠

1 vi frpc.ini

1 [common]

2 server_addr = x.x.x.x

3 server_port = 7000

4

5 [ssh]

6 type = tcp

7 local_ip = 127.0.0.1

8 local_port = 22

9 remote_port = 6000

10

11 [web]

12 type = tcp

13 local_ip = 127.0.0.1

14 local_port = 80

15 remote_port = 8081

3、啟動frpc

配置啟動服務

1 vi /etc/systemd/system/frpc.service

1 [Unit]

2 Description=frpc daemon

3 After=syslog.target network.target

4 Wants=network.target

5

6 [Service]

7 Type=simple

8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frpc -c /usr/local/frp_0.27.0_linux_amd64/frpc.ini

9

10 [Install]

11 WantedBy=multi-user.target

執行如下命令

1 systemctl enable frpc

2 systemctl start frpc

至此frpc被控主機配置完成

此時可通過x.x.x.x:6000連接內網ssh,通過http://x.x.x.x:8081訪問內網主機web,訪問速度取決於帶寬

這時候,內網主機就映射到外網去了,然後,用域名指定你的frp主機ip就可以了。這樣就可以實現你的功能了。

㈢ frp內網穿透客戶端frpc.ini各配置參數詳解

中文文檔 https://www.cnblogs.com/sanzxcvbnm/p/8508741.html
[必須]標識頭

[common]
是不可或缺的部分
[必須]frps服務端IP
server_addr = 0.0.0.0
0.0.0.0為FRP服務端IP,客戶端要填寫為服務端已配置的對應的IP,或者是服務端的伺服器(VPS)IP。
[必須]frps服務端通訊埠
server_port = 7000
客戶端連接到服務端內網穿透傳輸數據的埠,請改為服務端已配置的對應埠。
[必須]連接認證密鑰-特權模式
privilege_token = www.nat.ee
客戶端連接到FRP服務端的登錄驗證密鑰,請改為服務端已配置的對應密鑰。
記錄運行日誌
日誌存放路徑
log_file = /etc/frp/log/frps.log
請改為需要存放在那裡的正確路徑。
日誌記錄類別
log_level = info
可選:trace, debug, info, warn, error
最多保存多少天日誌
log_max_days = 7
可自定義保存多少天。
你的內網穿透名稱,將顯示為 {名稱}.{對應服務名稱}
user = your_name
請填大小寫字母和數字,不要用中文填寫。
決定第一次登錄失敗時是否退出程序,否則連續登錄到frps服務端
login_fail_exit = true
可選:false,true
默認是true,否則可以不填此參數或者改為false,則持續連接登錄到frps而不退出。
用於連接frps服務端的通訊協議
protocol = tcp
支持tcp和kcp,默認是tcp
注意:kcp需要服務端配置參數已開啟,才支持。
使用tcp流復用,默認為true
tcp_mux = true
可選:false,true
必須與frps服務端已經配置參數相同,否則服務端沒有,可以不填此參數。
內網穿透服務限制最大連接池上限
pool_count = 5
限制本客戶端內網穿透可以創建的總連接池上限,避免大量資源佔用。可自定義。默認為0不限制,或者不填此參數。
注意:假如服務端已配置了限制,而你設置的高於服務端的,則按服務端的為准採取限制。
通過http api設置管理frpc動作的管理地址,例如reload

【上面用於總體對接frps服務端各參數,下面的用於客戶端穿透各應用的配置參數。】

對應穿透服務名稱
[name]
建立每個穿透服務,都需要命名一個此服務的名稱,不能和其他已建立的相同。
穿透協議類型
type = tcp
可選:tcp,udp,http,https,stcp,xtcp
你要穿透什麼應用要搞清楚,此應用是用什麼協議的。
本地監聽IP
local_ip = 127.0.0.1
可以是本地的區域網IP,也可以是本機的127.0.0.1 IP,
例如你的區域網是互通的,你可以在本設備建立穿透區域網其他IP的應用。
本地監聽埠
local_port = 22
用於監聽本地設備需要穿透的埠,比如我要穿透到本機的SSH埠,而SSH埠為22,則這樣理解。
遠程監聽埠
remote_port = 6001
用於frps服務端的,分配建立穿透到內網對應應用的公網埠。
需要frps服務端已開放此埠給frpc客戶端允許對接使用。
例如我可以連接到此(frps服務端IP:埠),則可以穿透到我的內網對應應用服務。
穿透通訊加密
use_encryption = false
可選:false,true
默認為false則不開啟,或者不填此參數,為true則開啟frps服務端和frpc客戶端之間通訊加密。
穿透通訊壓縮
use_compression = false
可選:false,true
默認為false則不開啟,或者不填此參數,為true則開啟frps服務端和frpc客戶端之間通訊壓縮。
分配自定義域名訪問穿透服務
custom_domains = demo.com
用於你的穿透服務的唯一訪問域名,假如沒有域名,則此處請填為frps服務端的伺服器(IP)
自己有多個域名,可以配置不同穿透應用服務,用不同域名,只需要將對應域名解析到frps服務端的伺服器(IP)既可。
也支持泛解析識別,例如將(demo.com)域名已經泛解析到frps服務端的伺服器(IP)
而想通過(abc123.demo.com)訪問到對應穿透服務
則在對應穿透服務,custom_domains參數中填abc123.demo.com
分配對應穿透應用服務唯一的子域名,用於訪問
subdomain = abc123
假如frps服務端已經配置了subdomain_host參數域名,並且已經泛(*)解析到frps服務端的伺服器(VPS)IP,則可以使用此參數,否則不能用。
例如已經泛解析(demo.com)域名並且frps服務端配置好的,使用此subdomain參數,只需要填子域名,而不需要填(demo.com)
subdomain = 填abc123,則可以通過(abc123.demo.com)訪問
為HTTP協議,添加HTTP用戶名和密碼安全認證
http_user = admin
自定義用戶名
http_pwd = admin
自定義密碼
僅支持http,https類型協議。
例如我的WEB頁面,訪問前,需要進行驗證,才可以訪問。可以添加此參數。
安全地暴露內網服務
對於某些服務來說如果直接暴露於公網上將會存在安全隱患。
sk = abcdefg
可自定義
此參數用於進一步驗證,本地訪問穿透服務的安全連接,需要雙方frpc客戶端都需要配置,僅適用於stcp和xtcp協議類型。

修改 Host Header
通常情況下 frp 不會修改轉發的任何數據。但有一些後端服務會根據 http 請求 header 中的 host 欄位來展現不同的網站,例如 nginx 的虛擬主機服務,啟用 host-header 的修改功能可以動態修改 http 請求中的 host 欄位。該功能僅限於 http 類型的代理。

原來 http 請求中的 host 欄位 test.yourdomain.com 轉發到後端服務時會被替換為 dev.yourdomain.com。
URL 路由
frp 支持根據請求的 URL 路徑路由轉發到不同的後端服務。
通過配置文件中的 locations 欄位指定一個或多個 proxy 能夠匹配的 URL 前綴(目前僅支持最大前綴匹配,之後會考慮正則匹配)。例如指定 locations = /news,則所有 URL 以 /news 開頭的請求都會被轉發到這個服務。

按照上述的示例配置後,web.yourdomain.com 這個域名下所有以 /news 以及 /about 作為前綴的 URL 請求都會被轉發到 web02,其餘的請求會被轉發到 web01。
通過代理連接 frps
在只能通過代理訪問外網的環境內,frpc 支持通過 HTTP PROXY 和 frps 進行通信。
可以通過設置 HTTP_PROXY 系統環境變數或者通過在 frpc 的配置文件中設置 http_proxy 參數來使用此功能。
僅在 protocol = tcp 時生效

插件
默認情況下,frpc 只會轉發請求到本地 tcp 或 udp 埠。
插件模式是為了在客戶端提供更加豐富的功能,目前內置的插件有 unix_domain_socket、http_proxy、socks5。
通過 plugin 指定需要使用的插件,插件的配置參數都以 plugin_ 開頭。使用插件後 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:

范圍埠映射
在 frpc 的配置文件中可以指定映射多個埠,目前只支持 tcp 和 udp 的類型。
這一功能通過 range: 段落標記來實現,客戶端會解析這個標記中的配置,將其拆分成多個 proxy,每一個 proxy 以數字為後綴命名。
例如要映射本地 6000-6005, 6007 這6個埠,主要配置如下:

實際連接成功後會創建 6 個 proxy,命名為 test_tcp_0, test_tcp_1 ... test_tcp_5。

㈣ 基於Frp的Web管理面板:FrpMgr

說明: FrpMgr是一個基於Frp的快速配置Web面板,可以一鍵配置生成客戶端的Frp配置文件,遠程安裝Frp服務到任意一台伺服器,讓我們在使用配置Frp上方便很多。對於類似這種帶Web面板的穿透工具,之前也發過不少,比如nps、lanproxy等,都挺不錯的,有興趣可以去了解下,這里就介紹下FrpMgr安裝及使用。

截圖

安裝

Github地址: https://github.com/Zo3i/frpMgr

說明: 由於該面板使用的JAVA、Mysql 5.7,所以512M的內存大部分是跑不起來的,如果內存太小,先加一點虛擬內存,可以使用Swap一鍵腳本→傳送門。

1、安裝Docker

2、安裝Docker Compose

3、安裝git

4、安裝FrpMgr

面板訪問地址:ip:8999/frp,賬號admin,密碼12345678,登錄成功後在面板修改密碼即可。

使用

1、首先去域名服務商解析一個泛域名(如*.moerats.com)到伺服器ip。

2、點擊左側FRP伺服器配置,域名只需要填主域名,這里默認的伺服器埠為22。

填好後,點擊遠程安裝,輸入伺服器密碼即可,伺服器端系統目前支持CentOS 7、Debian 8+、Ubuntu 16+,且注意防火牆需要打開Web埠。

3、點擊左側FRP客戶端配置,填上二級域名(比如rats、後面就不要了),本地埠就可以了。

最後點擊右側,下載Win或者Mac配置壓縮包即可,Win的話解壓出來打開open.bat即可,連接地址為二級域名:Web埠。

由於沒有Win客戶端開機自啟,這里博主就額外說下Windows開機自啟步驟。

總結

該面板功能什麼的目前還是挺簡單的,不過對於要求不高的來說,基本可以滿足了,如果你要求更高的話,可以試試文章開頭介紹的nps、lanproxy等,最後作者表示會一直維護下去的,並逐漸增加功能,有想法的可以在下面評論,作者也會經常來查看的,然後有心的可以去Github給個Star鼓勵下作者就可以了,畢竟Frps管理面板很少見。

更多精彩內容,請關注輝哥自媒體!

轉載文章,原作:Rat's Blog

熱點內容
targz解壓縮 發布:2025-02-09 06:59:19 瀏覽:310
wpsphp 發布:2025-02-09 06:58:41 瀏覽:960
視易鋒雲系統如何架設輔助伺服器 發布:2025-02-09 06:47:08 瀏覽:768
mysql備份腳本shell 發布:2025-02-09 06:46:33 瀏覽:14
騰訊雲伺服器怎樣調整解析度 發布:2025-02-09 06:46:30 瀏覽:368
php上一個頁面 發布:2025-02-09 06:41:25 瀏覽:488
改裝配置後不想重啟怎麼辦 發布:2025-02-09 06:36:40 瀏覽:445
演算法復雜度定義 發布:2025-02-09 06:30:46 瀏覽:585
昵圖源碼介面 發布:2025-02-09 06:30:37 瀏覽:724
微信怎麼沒有支付密碼 發布:2025-02-09 06:29:52 瀏覽:33