Frp內網穿透訪問局域網機器


Frp內網穿透

Frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支持了點對點穿透。
項目地址:https://github.com/fatedier/frp

安裝Frp

FRP 采用 Go 語言開發,支持 Windows、Linux、MacOS、ARM等多平台部署。
這里我用的是Centos 8,為了方便管理我們把解壓后的目錄重命名為 frp

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar xzvf frp_0.33.0_linux_amd64.tar.gz
mv frp_0.33.0_linux_amd64 frp

FRP 服務端配置

配置 FRP 服務端的前提條件是需要一台具有公網 IP的設備。

FRP 默認給出兩個服務端配置文件,一個是簡版的 frps.ini,另一個是完整版本 frps_full.ini。
通過frps.ini這個配置可以快速的搭建起一個 FRP 服務端。

$ cat frps.ini

[common]
bind_port = 7000 
默認配置中監聽的是 7000 端口,可根據自己實際情況修改。

啟動 FRP 服務端
$ ./frps -c ./frps.ini
2020/05/08 01:02:31 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
2020/05/08 01:02:31 [I] [root.go:209] start frps success

FRP 客戶端配置

編輯 frpc.ini

$ vim frpc.ini

[common]
#server_addr 為 FRP 服務端的公網 IP
server_addr = 192.168.50.11
#server_port 為 FRP 服務端監聽的端口
server_port = 7000
# Linu SSH服務
[ssh]
#網絡協議
type = tcp
#填寫客戶端主機IP
local_ip = 192.168.50.12
#Linux遠程端口
local_port = 22
#代理到服務端的端口這里我用6000
remote_port = 6000
# Windows遠程服務器
[rdp]
#網絡協議
type = tcp
#填寫客戶端主機IP
local_ip = 192.168.50.13
#Windows遠程端口,默認是3389
local_port = 3389
#代理到服務端的端口這里我用23389
remote_port = 23389
啟動 FRP 客戶端
$ ./frpc -c ./frpc.ini
2020/05/07 23:18:53 [I] [service.go:282] [adbfac88ab64d72f] login to server success, get run id [adbfac88ab64d72f], server udp port [0]
2020/05/07 23:18:53 [I] [proxy_manager.go:144] [adbfac88ab64d72f] proxy added: [ssh]
2020/05/07 23:18:53 [I] [control.go:179] [adbfac88ab64d72f] [ssh] start proxy success

我們查看服務端的提示

2020/05/08 07:18:49 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
2020/05/08 07:18:49 [I] [root.go:209] start frps success
2020/05/08 07:18:55 [I] [service.go:432] [adbfac88ab64d72f] client login info: ip [192.168.50.12:39836] version [0.33.0] hostname [] os [linux] arch [amd64]
2020/05/08 07:18:55 [I] [tcp.go:63] [adbfac88ab64d72f] [ssh] tcp proxy listen port [6000]
2020/05/08 07:18:55 [I] [control.go:445] [adbfac88ab64d72f] new proxy [ssh] success

可以看到我們的SSH服務已經成功連接到服務端的6000端口。

$ ssh root@192.168.50.11 -p 6000
The authenticity of host '[192.168.50.11]:6000 ([192.168.50.11]:6000)' can't be established.
ECDSA key fingerprint is SHA256:jwBjW8YC0VaFaTRTJaB8EJDuAZFZ6MBlh6pJbSVjngU.
Are you sure you want to continue connecting (yes/no)?

可以看到已經可以成功連接到服務器。

將服務添加至systemctl

這里以frp服務端為例

frp/systemd目錄下的frps.service復制到/etc/systemd/system/目錄下

$ cp /frp/systemd/frps.service /etc/systemd/system
復制配置文件和二進制文件到相對應的目錄
$ cp /frps /usr/bin
$ cp /frps.ini /etc/frp
重新加載服務配置
$ systemctl daemon-reload
設置為開機啟動
$ systemctl enable frps.service

到這里就完成了Frp服務的所有配置,這樣就能隨時隨地的訪問我們家中的電腦了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM