在經(jīng)過(guò)了各種小騷蹄子(傳統(tǒng)方案)的洗禮后旧蛾,弱水三千寻狂,我終究只取了frp這一瓢飲
簡(jiǎn)介
什么是Frp
frp 是一個(gè)專注于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用瞬项,支持 TCP蔗蹋、UDP、HTTP囱淋、HTTPS 等多種協(xié)議猪杭,且支持 P2P 通信⊥滓拢可以將內(nèi)網(wǎng)服務(wù)以安全皂吮、便捷的方式通過(guò)具有公網(wǎng) IP 節(jié)點(diǎn)的中轉(zhuǎn)暴露到公網(wǎng)。
為什么使用 FRP 税手?
通過(guò)在具有公網(wǎng) IP 的節(jié)點(diǎn)上部署 frp 服務(wù)端蜂筹,可以輕松地將內(nèi)網(wǎng)服務(wù)穿透到公網(wǎng),同時(shí)提供諸多專業(yè)的功能特性芦倒,這包括:
- 客戶端服務(wù)端通信支持 TCP艺挪、QUIC、KCP 以及 Websocket 等多種協(xié)議兵扬。
- 采用 TCP 連接流式復(fù)用闺属,在單個(gè)連接間承載更多請(qǐng)求,節(jié)省連接建立時(shí)間周霉,降低請(qǐng)求延遲掂器。
- 代理組間的負(fù)載均衡。
- 端口復(fù)用俱箱,多個(gè)服務(wù)通過(guò)同一個(gè)服務(wù)端端口暴露国瓮。
- 支持 P2P 通信,流量不經(jīng)過(guò)服務(wù)器中轉(zhuǎn)狞谱,充分利用帶寬資源乃摹。
- 多個(gè)原生支持的客戶端插件(靜態(tài)文件查看,HTTPS/HTTP 協(xié)議轉(zhuǎn)換跟衅,HTTP孵睬、SOCK5 代理等),便于獨(dú)立使用 frp 客戶端完成某些工作伶跷。
- 高度擴(kuò)展性的服務(wù)端插件系統(tǒng)掰读,易于結(jié)合自身需求進(jìn)行功能擴(kuò)展秘狞。
- 服務(wù)端和客戶端 UI 頁(yè)面。
以上內(nèi)容來(lái)自官方
怎么使用Frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透
搭建服務(wù)端
首先蹈集,你需要擁有一臺(tái)具有公網(wǎng)IP的服務(wù)器或者VPS烁试,然后使用任意ssh終端連接上你的主機(jī)。
wget https://raw.githubusercontent.com/MvsCode/frp-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
然后拢肆,輸入代碼(感謝大佬提供的腳本)减响,出現(xiàn)以下界面。
[圖片上傳失敗...(image-4662c8-1704110284483)]
國(guó)內(nèi)服務(wù)器選擇1郭怪,國(guó)外服務(wù)器選擇2或者直接enter支示。
然后其實(shí)一直按enter就行了
+------------------------------------------------------------+
Check your server setting, please wait...
+------------------------------------------------------------+
| frps for Linux Server, Author Clang ,Mender MvsCode |
| A tool to auto-compile & install frps on Linux |
+------------------------------------------------------------+
Please select frps download url:
[1].gitee
[2].github (default)
Enter your choice (1, 2 or exit. default [github]):
-----------------------------------
Your select: github
-----------------------------------
Loading network version for frps, please wait...
FRPS_VER set to: 0.53.2
frps Latest release file frp_0.53.2_linux_arm64.tar.gz
Loading You Server IP, please wait...
You Server IP:104.28.211.190
————————————————————————————————————————————
Please input your server setting:
————————————————————————————————————————————
Please input frps bind_port [1-65535](Default Server Port: 5443):
frps bind_port: 5443
Please input frps vhost_http_port [1-65535](Default : 80):80
frps vhost_http_port: 80
Please input frps vhost_https_port [1-65535](Default : 443):445
frps vhost_https_port: 445
Please input frps dashboard_port [1-65535](Default : 6443):
frps dashboard_port: 6443
Please input frps dashboard_user(Default : admin):
frps dashboard_user: admin
Please input frps dashboard_pwd(Default : JPaOPrCi):
frps dashboard_pwd: JPaOPrCi
Please input frps token(Default : S7al5RUf0oADvKvT):
frps token: S7al5RUf0oADvKvT
Please input frps subdomain_host(Default : 104.28.211.190):
frps subdomain_host: 104.28.211.190
Please input frps max_pool_count [1-200]
(Default : 50):
frps max_pool_count: 50
Please select log_level
1: info (default)
2: warn
3: error
4: debug
-------------------------
Enter your choice (1, 2, 3, 4 or exit. default [1]):
log_level: info
Please input frps log_max_days [1-30]
(Default : 3 day):
frps log_max_days: 3
Please select log_file
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]):
log_file: enable
Please select tcp_mux
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]):
tcp_mux: true
Please select kcp support
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]):
kcp support: true
============<span style="font-weight: bold;" class="mark"> Check your input </span>==========<span style="font-weight: bold;" class="mark">
You Server IP : 104.28.211.191
Bind port : 5443
kcp support : true
vhost http port : 88
vhost https port : 445
Dashboard port : 6443
Dashboard user : admin
Dashboard password : JPaOPrCi
token : S7al5RUf0oADvKvT
subdomain_host : 104.28.211.190
tcp_mux : true
Max Pool count : 50
Log level : info
Log max days : 3
Log file : enable
</span>============================================
Press any key to start...or Press Ctrl+c to cancel
以上為所有可能出現(xiàn)的所有界面鄙才,這里強(qiáng)調(diào)幾個(gè)參數(shù)
Bind port是監(jiān)聽(tīng)端口颂鸿,對(duì)應(yīng)客戶端的服務(wù)端口
vhost http port 默認(rèn)80不要修改
vhost https port 默認(rèn)443不要修改
Dashboard port是web控制臺(tái)的端口,如你的服務(wù)器IP為0.0.0.0咒循,那么你可以通過(guò)0.0.0.0:端口號(hào)訪問(wèn)web管理界面
Dashboard user是web控制臺(tái)的賬號(hào)
Dashboard password是web控制臺(tái)的密碼
token是客戶端連接服務(wù)端的密碼
搭建客戶端
由于客戶端的系統(tǒng)千奇百怪,能搭建客戶端的方式也不盡相同绞愚,就像如果你擁有群暉叙甸,那么使用礦神套件無(wú)疑是最簡(jiǎn)潔的方式,但在此處我們只講述普適方法位衩。
還是ssh連接到系統(tǒng)裆蒸,然后......
抄代碼,啟動(dòng)糖驴!
安裝客戶端
wget https://github.ioiox.com/stilleshan/frpc/raw/branch/master/frpc_linux_install.sh && chmod +x frpc_linux_install.sh && ./frpc_linux_install.sh
編輯配置
vim /usr/local/frp/frpc.ini
下面給出一個(gè)frpc的示例文件僚祷,包括了http,https贮缕,tcp隧道的配置
# frpc.ini 示例配置文件(帶有HTTP辙谜、HTTPS和TCP隧道的配置)
[common]
# 通用配置
# frps 服務(wù)器地址
server_addr = your_frps_server_ip #輸入你的服務(wù)器IP
# frps 服務(wù)器端口
server_port = 7000 #前文中的bind_port
# 通信密鑰,與 frps 中設(shè)置的一致
token = your_token #前文中的token
# HTTP 配置
[web]
type = http
local_port = 80
custom_domains = your_custom_domain.com
http_user = your_http_user #可以沒(méi)有
http_pwd = your_http_password #可以沒(méi)有
# HTTPS 配置
[secure_web]
type = https
local_port = 443
custom_domains = your_secure_domain.com
http_user = your_https_user #可以沒(méi)有
http_pwd = your_https_password #可以沒(méi)有
# 證書(shū)文件路徑
# ssl_cert = ./path/to/your/certificate.crt
# 證書(shū)密鑰文件路徑
# ssl_key = ./path/to/your/private_key.key
# TCP 隧道配置
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 更多的 TCP 隧道配置
# [custom_tcp]
# type = tcp
# local_ip = 127.0.0.1
# local_port = 8080
# remote_port = 6001
稍微嗶嗶兩嘴感昼,曾幾何時(shí)装哆,frpc.ini的配置一度是使用frp進(jìn)行穿透的最大勸退因素,雖然整體配置不難定嗓,但對(duì)于新手小白來(lái)說(shuō)可能還是有點(diǎn)臥槽的蜕琴,但現(xiàn)在嘛......
來(lái)來(lái)來(lái),chatgpt給我寫(xiě)個(gè)frpc.ini唄宵溅,我要巴拉巴拉巴拉.......
真香~
最后嘛凌简,在客戶端執(zhí)行
systemctl restart frpc
穿透完成!
不是那么好用但是也有點(diǎn)用的webui
在講搭建服務(wù)端的時(shí)候恃逻,我們?cè)岬竭^(guò)設(shè)置web管理界面的端口賬號(hào)密碼雏搂。
那么......這是個(gè)什么玩意兒呢藕施?
[圖片上傳失敗...(image-cb18c9-1704110284483)]
如圖所示,這玩意展示了服務(wù)端的一些信息畔派,而且铅碍,在proxies選項(xiàng)卡下還能查看每個(gè)隧道使用的具體流量,單從面板的角度來(lái)說(shuō)倒是不錯(cuò)了线椰。
但是嘛胞谈,相比nps家的管理面板,我也只能說(shuō)這玩意能用了憨愉,畢竟存在幾個(gè)明顯的缺點(diǎn)
1.面板全英文烦绳,完全不支持中文
2.只能查看信息,無(wú)法在管理面板進(jìn)行修改(這方面大力點(diǎn)贊nps)
本文原始發(fā)布地址:blog.050905.xyz/index.php/archives/12/