Frp內網穿透
Frp 是一個可用于內網穿透的高性能的反向代理應用举反,支持 tcp, udp 協(xié)議,為 http 和 https 應用協(xié)議提供了額外的能力几晤,且嘗試性支持了點對點穿透簇捍。
項目地址:https://github.com/fatedier/frp
安裝Frp
FRP 采用 Go 語言開發(fā),支持 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
默認配置中監(jiān)聽的是 7000 端口,可根據(jù)自己實際情況修改丧没。
啟動 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 服務端監(jiān)聽的端口
server_port = 7000
# Linu SSH服務
[ssh]
#網絡協(xié)議
type = tcp
#填寫客戶端主機IP
local_ip = 192.168.50.12
#Linux遠程端口
local_port = 22
#代理到服務端的端口這里我用6000
remote_port = 6000
# Windows遠程服務器
[rdp]
#網絡協(xié)議
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服務的所有配置漆际,這樣就能隨時隨地的訪問我們家中的電腦了。