一. 背景
現(xiàn)在有一臺ubuntu云服務(wù)器,我想通過內(nèi)網(wǎng)穿透將一臺內(nèi)網(wǎng)的主機(jī)當(dāng)成云服務(wù)器來使用(包括但不限于ssh、http和https服務(wù)),比如我想在外地通過ssh遠(yuǎn)程連接到一臺內(nèi)網(wǎng)沒有桌面的主機(jī)(可以是Ubuntu或者Windows,Windows配置類似),就可以使用frp內(nèi)網(wǎng)穿透, 配置起來非常方便快捷。
1.1 內(nèi)網(wǎng)穿透
內(nèi)網(wǎng)穿透是指,通過一些代理工具,允許你在內(nèi)網(wǎng)主機(jī)上運(yùn)行代理工具客戶端,通過連接到公網(wǎng)上運(yùn)行的代理服務(wù)器,將內(nèi)網(wǎng)主機(jī)的服務(wù)暴露到公網(wǎng)上,實(shí)現(xiàn)內(nèi)網(wǎng)穿透,讓外部用戶可以訪問內(nèi)網(wǎng)的服務(wù)。
常見的內(nèi)網(wǎng)穿透工具:
1.Ngrok
:Ngrok是一個簡單易用的內(nèi)網(wǎng)穿透工具,它可以將本地服務(wù)暴露到公網(wǎng)上,并提供一個臨時的公網(wǎng)地址供外部訪問。Ngrok支持多種協(xié)議和自定義子域名,但其免費(fèi)版功能有限,需要購買許可證來解鎖更多功能。
2.Frp
(Fast Reverse Proxy):Frp是一個快速的反向代理工具,用于將局域網(wǎng)中的內(nèi)部服務(wù)暴露給公網(wǎng),實(shí)現(xiàn)內(nèi)網(wǎng)穿透的功能。Frp是開源的,支持TCP、UDP、HTTP和HTTPS等協(xié)議,配置簡單,支持身份驗(yàn)證和加密功能。
3.SSH反向隧道
:SSH反向隧道是通過SSH協(xié)議建立一個安全的連接,將本地端口轉(zhuǎn)發(fā)到公網(wǎng)服務(wù)器,實(shí)現(xiàn)內(nèi)網(wǎng)穿透。SSH反向隧道是一種簡單、安全的方法,但對SSH服務(wù)有一定的依賴。
4.ZeroTier
:ZeroTier是一種虛擬局域網(wǎng)(SD-WAN)技術(shù),它可以將多個設(shè)備虛擬連接成一個局域網(wǎng),實(shí)現(xiàn)內(nèi)網(wǎng)穿透。ZeroTier支持多平臺,包括Windows、Linux、macOS、iOS和Android等。
1.2 Frp介紹
Frp(Fast Reverse Proxy)是一個快速的反向代理工具,它是一款基于Golang語言開發(fā)的開源項(xiàng)目,用于將局域網(wǎng)中的內(nèi)部服務(wù)暴露給公網(wǎng),實(shí)現(xiàn)內(nèi)網(wǎng)穿透的功能。
主要特點(diǎn)和用途:
1.內(nèi)網(wǎng)穿透:Frp允許你在內(nèi)網(wǎng)主機(jī)上運(yùn)行frpc客戶端,通過連接到公網(wǎng)上運(yùn)行的frps服務(wù)器,將內(nèi)網(wǎng)主機(jī)的服務(wù)暴露到公網(wǎng)上,實(shí)現(xiàn)內(nèi)網(wǎng)穿透,讓外部用戶可以訪問內(nèi)網(wǎng)的服務(wù)。
2.簡單易用:配置簡單,可以通過編輯ini配置文件來指定要暴露的內(nèi)網(wǎng)服務(wù)和端口號等信息。
3.多種協(xié)議支持:Frp支持多種協(xié)議,如TCP
、UDP
、HTTP
、HTTPS
等,適用于各種類型的服務(wù)。
4.安全性:Frp提供了身份驗(yàn)證和加密功能,可以保障數(shù)據(jù)傳輸?shù)陌踩浴?/p>
Frp由兩個組件組成:
(1)frps(Frp Server):運(yùn)行在公網(wǎng)服務(wù)器上,用于接受來自frpc客戶端的連接請求,并將請求轉(zhuǎn)發(fā)到內(nèi)網(wǎng)主機(jī)上的指定服務(wù)。
(2)frpc(Frp Client):運(yùn)行在內(nèi)網(wǎng)主機(jī)上,用于與frps服務(wù)器建立連接,并將本地服務(wù)的請求轉(zhuǎn)發(fā)到frps服務(wù)器上。
1.3 Frp配置流程
1.在公網(wǎng)服務(wù)器上配置frps,編輯frps.ini文件指定公網(wǎng)服務(wù)器的IP地址和端口號,以及認(rèn)證令牌等。
2.在內(nèi)網(wǎng)主機(jī)上配置frpc,編輯frpc.ini文件指定frps服務(wù)器的IP地址和端口號,以及要暴露的內(nèi)網(wǎng)服務(wù)的端口號等。
3.運(yùn)行frps服務(wù)器和frpc客戶端。
二. 云服務(wù)器配置
2.1 配置安全組
打開云服務(wù)器的7000、80和443端口:
2.2 編寫frps.ini
下載frp: https://github.com/fatedier/frp/releases
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
cd frp_0.37.1_linux_amd64/frps
[common]
# frps服務(wù)監(jiān)聽的IP地址和端口
bind_addr = 0.0.0.0
bind_port = 7000
# frps服務(wù)的令牌,用于客戶端登錄認(rèn)證
token = 12345678
# 以下是示例的端口映射配置,可以根據(jù)實(shí)際需求進(jìn)行添加或修改
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[http]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = example.com
[https]
type = https
local_ip = 127.0.0.1
local_port = 443
custom_domains = secure.example.com
# 更多端口映射配置可以繼續(xù)添加
三. 內(nèi)網(wǎng)主機(jī)配置
下載frp: https://github.com/fatedier/frp/releases
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
cd frp_0.37.1_linux_amd64/frps
3.1 編輯frpc.ini文件
[common]
# server_addr為FRPS服務(wù)器IP地址
server_addr = 124.xx.xxx.29
# server_port為服務(wù)端監(jiān)聽端口,bind_port
server_port = 7000
# 身份驗(yàn)證
token = 12345678
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# [ssh] 為服務(wù)名稱,下方此處設(shè)置為,訪問frp服務(wù)端的7000端口時,等同于通過中轉(zhuǎn)服務(wù)器訪問127.0.0.1的6000端口。
# type 為連接的類型,此處為tcp
# local_ip 為中轉(zhuǎn)客戶端實(shí)際訪問的IP
# local_port 為目標(biāo)端口
# remote_port 為遠(yuǎn)程端口
3.2 啟動服務(wù)并配置開機(jī)自啟動
如果僅僅想短暫啟動frp服務(wù):
./frpc -c frpc.ini
如果想要讓內(nèi)網(wǎng)主機(jī)每次開機(jī)都啟動穿透服務(wù):
sudo vim /etc/systemd/system/frpc.service
編輯內(nèi)容如下:
[Unit]
Description=frp client service
After=network.target
[Service]
Type=simple
ExecStart=xxxx/frp_0.37.1_linux_amd64/frpc -c xxxx/frp_0.37.1_linux_amd64/frpc.ini
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
執(zhí)行以下命令啟用frpc服務(wù):
sudo systemctl enable frpc.service
執(zhí)行以下命令啟動frpc服務(wù):
sudo systemctl start frpc.service
重啟電腦,等待30s后可使用以下命令檢查frpc服務(wù)的狀態(tài):文章來源:http://www.zghlxwxcb.cn/news/detail-614670.html
sudo systemctl status frpc.service
四. 參考文獻(xiàn)
b站司波圖博主的教程地址:https://gitee.com/spoto/natserver文章來源地址http://www.zghlxwxcb.cn/news/detail-614670.html
到了這里,關(guān)于使用云服務(wù)器和Frp(快速反向代理)框架快速部署實(shí)現(xiàn)內(nèi)網(wǎng)穿透的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!