精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

FRP配合lucky實現(xiàn)低代碼內(nèi)網(wǎng)穿透

admin
2025年1月13日 18:41 本文熱度 301

動機

學(xué)校的服務(wù)器,NAT上的管理權(quán)在網(wǎng)管,想把一些服務(wù)開放到公網(wǎng)上就得做內(nèi)網(wǎng)穿透。STUNZeroTier太麻煩,且需要依賴別人的服務(wù)器,被排除了。自己有NAS、有公網(wǎng)IPv4地址、有域名,做FRP穿透是最好的選擇。

找遍全網(wǎng),基本都是介紹在云主機上部署FRPS+Nginx的方案,對于家用NAS來說太麻煩;一些回答也太冗長,不簡潔、太陳舊。

原理

FRP的英文全稱是Fast Reverse Proxy,就是一種代理。

  • 服務(wù)端叫FRPS,要有能偵聽公網(wǎng)端口的能力,且其連接公網(wǎng)的設(shè)備要能通過域名或固定IP被訪問到。
需偵聽一個bind_port,和一堆remote_port。把remote_port收到的數(shù)據(jù),轉(zhuǎn)發(fā)給bind_port
  • 客戶端叫FRPC,要有能訪問公網(wǎng)的能力。
需訪問FRPSbind_port,根據(jù)收到的內(nèi)容,代理到指定的local_iplocal_port
  • 用戶端訪問FRPSremote_port,就等同于訪問各local_iplocal_port

可見,其本質(zhì)是由于客戶端缺少偵聽公網(wǎng)端口的能力,FRP就在服務(wù)端開放這些端口(remote_port),并通過bind_port這個通道讓客戶端自己把所需的服務(wù)代理到內(nèi)網(wǎng)。整個系統(tǒng)對外開放的總端口數(shù)并沒有減少,至少還增加了一個bind_port。

配置說明

網(wǎng)絡(luò)拓?fù)鋱D如下所示,家里的NAT均可控,學(xué)校的NAT不可控。其中,綠色虛線代表HTTPS的訪問通道;紫色的虛線代表TCP、UDP等普通應(yīng)用的訪問通道;紅色虛線代表固有通道。

?
網(wǎng)絡(luò)拓?fù)鋱D

NAT的配置

需要把FRPC上指定使用的端口在家庭路由器上做端口轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)到NAS;再把NAS上的這些端口轉(zhuǎn)發(fā)給容器。

FRPC上配置的server_port最終轉(zhuǎn)發(fā)到FRPS上配置的bind_port,FRPC上配置的remote_port最終也要能轉(zhuǎn)發(fā)到FRPS上。

lucky反向代理的使用

lucky是個好東西,不光可以做泛域名的DDNS和SSL證書,還能做子域名的泛域名DDNS、SSL證書和反向代理。這里我們先設(shè)置*.university.example.com的DDNS,再設(shè)置*.university.example.com的SSL證書,最后把https://*.university.example.com:6666proxy port)代理到http://frps_ip:8080vhost_http_port)。以上,就完成了擁有SSL證書的泛子域名反向代理。

FRP上的配置

TCP、UDP等穿透很簡單,把remote_portlocal_ip+local_port建立聯(lián)系即可。

HTTP的穿透,需要配合FRP上的代理功能。FRPS上,指定泛域名subdomain_host = university.example.com;FRPC上, 根據(jù)不同的subdomain選擇對應(yīng)的local_iplocal_port。由于FRPSFRPC之間是HTTP明文傳輸,開啟了加密use_encryption;其實FRP還支持雙端SSL認(rèn)證,太麻煩就沒搞(誰會沒事閑的攻擊我呢?哈哈)。

下面給出4份配置文件,配合網(wǎng)絡(luò)拓?fù)鋱D一看就懂。

服務(wù)端配置

docker-compose.yaml

version: '3.3'
services:
  frps:
    image: snowdreamtech/frps
    environment:
      TZ: Asia/Shanghai
    restart: unless-stopped
    ports:
      - "7070:7070" # dashboard
      - "8000:8000" # bind
      - "8001:8001" # App 1
      - "8002:8002" # App 2
      - "8080:8080" # http
    volumes:
      - ./frps.toml:/etc/frp/frps.toml

配置文件frps.toml

這里要注意,最新版的服務(wù)端和客戶端的配置文件擴展名不再是.ini,而是.toml 。

[common]
bind_port       = 8000
token           = PrNnmRqYrsSLpWpmTFBBsdCphHqtfFGk
# HTTP協(xié)議相關(guān)
vhost_http_port = 8080
subdomain_host  = university.example.com
# 以下為看板端口和用戶/密碼,非必須
dashboard_user  = admin
dashboard_pwd   = 123456
dashboard_port  = 7070

客戶端配置

docker-compose.yaml

version: '3.3'
services:
  frpc:
    image: snowdreamtech/frpc
    environment:
      TZ: Asia/Shanghai
    restart: unless-stopped
    ports:
      - "7070:7070" # dashboard
    volumes:
      - ./frpc.toml:/etc/frp/frpc.toml

配置文件frpc.toml

[common]
server_addr = cloud.example.com
server_port = 8000
token = PrNnmRqYrsSLpWpmTFBBsdCphHqtfFGk # 和服務(wù)端的token一致
# 指定可用的域名服務(wù)器以訪問公網(wǎng),特定環(huán)境下可能需要
dns_server = 114.114.114.114
[App 1]
type           = tcp
local_ip       = 192.168.1.2
local_port     = 5901
remote_port    = 8001
[App 2]
type           = tcp
local_ip       = 192.168.1.3
local_port     = 3389
remote_port    = 8002
[Gitlab]
type           = http
local_ip       = 192.168.1.10
local_port     = 8080
subdomain      = gitlab
use_encryption = true
[iKuai]
type           = http
local_ip       = 192.168.1.11
local_port     = 80
subdomain      = gw
use_encryption = true
# 以下為看板端口和用戶/密碼,非必須
admin_port = 7070
admin_user = admin
admin_pwd  = 123456

效果

App 1:訪問cloud.example.comtcp 8001端口,被穿透到學(xué)校內(nèi)網(wǎng)的192.168.1.2tcp 5901端口。

App 2:訪問cloud.example.comtcp 8002端口,被穿透到學(xué)校內(nèi)網(wǎng)的192.168.1.3tcp 3389端口。

GitLab HTTP:訪問https://gitlab.university.example.com:6666,被穿透到學(xué)校內(nèi)網(wǎng)的http://192.168.1.10:8080。

iKuai HTTP:訪問https://gw.university.example.com:6666,被穿透到學(xué)校內(nèi)網(wǎng)的http://192.168.1.11:80。

貢獻

本文通過圖文介紹了FRP內(nèi)網(wǎng)穿透的原理,提出了一種在NAT環(huán)境下利用docker-compose一鍵部署FRPSFRPC容器進行內(nèi)網(wǎng)穿透的方案。配合lucky反向代理,實現(xiàn)了低代碼構(gòu)建基于泛子域名、帶SSL證書的HTTP內(nèi)網(wǎng)穿透。


閱讀原文:https://zhuanlan.zhihu.com/p/687477877


該文章在 2025/1/13 18:41:00 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲国产欧美在线人成精品一区二区 | 99久久国产露脸精品麻豆 | 欧美人与动牲交zooz男人互動交流 | 四虎影视在线看免费720p | 蜜臀av无码一区二区三区 | 国产午夜男女爽爽爽爽爽 | 亚洲精品一区无码A片 | 免费看久久妇女高潮a | 无码日韩人妻av一区二区三区 | 日韩欧美精品一中文字幕 | 无码国产精品午夜福利v | 日韩欧美无线高清在线观看 | 亚洲剧情在线观看 | 午夜成人污视频视频 | 91久久精品国产免费一区 | WWW久久只有这里有精品 | 日韩伦理在线免费观看 | 国产精品一区二区午夜久久 | 强乱中文字幕av一区乱码 | 国产网红av在线观看网红主播 | 四虎成人免费观看在线网址 | 亚洲a∨国产av综合av | 亚洲综合日韩av无码毛片 | 无码欧美毛片一区二区三 | 欧美精品华人在线 | 亚洲激情视频在线 | 久久亚洲精品高潮综合色 | 亚洲国产中文在线 | 丝袜紧身裙国产在线播放 | 无码精品一区二区三区99不卡 | 丁香激情五月 | 日韩精品人成在线播放 | 91丝袜美腿亚洲一区二区 | 真实强奷在线中文 | 国产精品无码一二区免费 | 亚洲资源站中文在线丝袜 | 午夜日日日日日日日日日 | 国产亚洲精品久久久久久久软件 | 亚洲一级片免费看 | 亚洲一线产区二线产区精华 | 亚洲国产日韩精品无码专区国产 |