主要通過p2p技術(shù)來實現(xiàn)兩臺(也可以多臺)內(nèi)網(wǎng)電腦一個異地組網(wǎng),兩臺不同環(huán)境內(nèi)網(wǎng)電腦無法直接訪問這里我們就需要使用p2p技術(shù)來實現(xiàn)異地組網(wǎng)。
什么是異地組網(wǎng)?
異地組網(wǎng)可以將分布在不同物理位置的節(jié)點連接起來,形成一個統(tǒng)一的網(wǎng)絡(luò),使得這些節(jié)點可以像在同一個物理網(wǎng)絡(luò)中一樣進(jìn)行通信和數(shù)據(jù)交換。
日常使用作用是什么?
日常無非就是異地遠(yuǎn)程辦公,還有就是一些沒有后臺服務(wù)端的攝像頭實現(xiàn)遠(yuǎn)程查看,NAS等。
frp是什么?
frp 是一個專注于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用,支持 TCP、UDP、HTTP、HTTPS 等多種協(xié)議,且支持 P2P 通信。可以將內(nèi)網(wǎng)服務(wù)以安全、便捷的方式通過具有公網(wǎng) IP 節(jié)點的中轉(zhuǎn)暴露到公網(wǎng)。
原理解釋:
比如A主機(jī)是湖南主機(jī)(沒有外網(wǎng))要訪問在深圳B主機(jī)(沒有外網(wǎng))A主機(jī)壓根就不知道B主機(jī)ip地址也根本無法訪問,這時候在搭建一個Q云服務(wù)器(它是有外網(wǎng)ip的)A主機(jī)先去問云服務(wù)器B主機(jī)地址等到Q服務(wù)器再去問B主機(jī)再反饋給A主機(jī),兩個主機(jī)相互反饋建立通信不在依賴Q云服務(wù)器了,直到兩主機(jī)失去連接再次建立。

準(zhǔn)備工作
A主機(jī)(windows 10):安裝frp
https://objects.githubusercontent.com/github-production-release-asset-2e65be/48378947/1b69a80a-b405-4e56-91a2-284345ac5011?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240602T103352Z&X-Amz-Expires=300&X-Amz-Signature=6bd917b6cbdf030d541a926f3c6c7d6a83de12f3bdca389b5179816c80ac9a17&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=48378947&response-content-disposition=attachment%3B%20filename%3Dfrp_0.58.1_windows_amd64.zip&response-content-type=application%2Foctet-stream
B主機(jī)(windows 10:安裝frp
https://objects.githubusercontent.com/github-production-release-asset-2e65be/48378947/1b69a80a-b405-4e56-91a2-284345ac5011?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240602T103352Z&X-Amz-Expires=300&X-Amz-Signature=6bd917b6cbdf030d541a926f3c6c7d6a83de12f3bdca389b5179816c80ac9a17&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=48378947&response-content-disposition=attachment%3B%20filename%3Dfrp_0.58.1_windows_amd64.zip&response-content-type=application%2Foctet-stream
Q云服務(wù)器(centos7):安裝frp(本來是準(zhǔn)備使用家庭網(wǎng)絡(luò)開啟ipv6就不用購買一個便宜的云服務(wù)器了)
frp開源地址:https://github.com/fatedier/frp/releases
安裝frp
A主機(jī):
1.下載(A主機(jī)與B主機(jī)也是一樣的下載方式):
進(jìn)入開源地址:https://github.com/fatedier/frp/releases

找到frp_0.58.1_windows_amd64.zip 點擊下載

在 frpc.toml 文件中添加以下內(nèi)容,確保設(shè)置了正確的服務(wù)器地址和端口,共享密鑰 以及要訪問的 P2P 代理的名稱:
serverAddr = "39.99.x.x" #改成你的Q云服務(wù)器ip
serverPort = 7000
auth.token = "demo123321" #密鑰 可改
loginFailExit = false
[[visitors]]
name = "visitor_a"
type = "stcp"
serverName = "desktop_visitor"
secretKey = "demo123321" #密鑰1 可改
bindPort = -1
transport.useCompression = true
[[visitors]]
name = "visitor"
type = "xtcp"
serverName = "visitor"
secretKey = "demo123321" #密鑰2 可改
bindAddr = "127.0.0.1"
bindPort = 23389
transport.useCompression = true
keepTunnelOpen = true
fallbackTo = "no"
fallbackTimeoutMs = 100
啟動:
輸入cmd:

在 frpc.toml 文件中添加以下內(nèi)容,確保設(shè)置了正確的服務(wù)器地址和端口,共享密鑰 以及要訪問的 P2P 代理的名稱:serverAddr = "39.99.x.x" #改成你的Q云服務(wù)器ip
serverPort = 7000
auth.token = "demo123321" #密鑰 可改
loginFailExit = false
[[proxies]]
name = "desktop_b"
type = "stcp"
secretKey = "demo123321"
localIP = "127.0.0.1"
localPort = 3389 #你需要轉(zhuǎn)發(fā)本地端口
transport.useCompression = true
[[proxies]]
name = "desktop_b"
type = "xtcp"
secretKey = "demo123321"
localIP = "127.0.0.1"
localPort = 3389
transport.useCompression = true
如果配置文件報錯刪除注釋,utf-8編碼,使用好一點編輯器,不要使用文本編輯器打開。wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
tar -zxvf frp_0.58.1_linux_amd64.tar.gz
進(jìn)入frp_0.58.1_linux_amd64文件夾:cd frp_0.58.1_linux_amd64/
bindPort = 7000
auth.token = "demo123321"
這里以阿里云來設(shè)置,找到安全組再添加端口(7001,7000,3389,7500):


firewall-cmd --add-port=3389/tcp --add-port=7000/tcp --add-port=7001/udp --add-port=7500/tcp --zone=public --permanent

測試連接3389:

有些環(huán)境無法通過xtcp協(xié)議傳輸,需要使用stcp協(xié)議,理論來說A主機(jī)通過Q主機(jī)與B主機(jī)建立后流量不需要通過Q主機(jī)做轉(zhuǎn)發(fā)了,通過3389遠(yuǎn)程桌面管理來看速度確實比只有Q云服務(wù)器1M寬帶速度提升不少。
該文章在 2024/6/8 23:37:27 編輯過