說明
參考網絡上其他人文章。將他人技術文章親自測試并總結補充。
實現內網穿需要有一臺公網服務器,域名。(本文將公網服務器稱為服務端,內網服務器稱為客戶端)
(需要開啟相關的端口。相關端口沒開通,訪問就會失敗。)
frp下載地址:http://getfrp.yzxx-soft.com/
https://github.com/fatedier/frp
本文使用軟件:frp_0.8.1_linux_amd64.tar.gz
本文使用系統:centos7(公網一臺,內網一臺),其他系統配置類似
本文使用a.com代替實際域名,10.10.10.10代替實際公網ip,實際中請使用自己的域名和ip并解析到服務端
主域名:a.com
公網服務器ip:10.10.10.10
內網服務器ip:192.168.198.229
centos7 frp安裝和配置(其他系統配置類似)
- 將軟件下載到服務器和客戶端(服務端和客戶端相同)
解壓frp軟件包
tar -zxvf frp_0.8.1_linux_amd64.tar.gz
進入解壓后的文件夾
cd frp_0.8.1_linux_amd64
文件說明
frps.ini
: 服務端配置文件
frps
: 服務端軟件
frpc.ini
: 客戶端配置文件
frpc
: 客戶端軟件
- 修改服務端配置
修改服務端frps.ini
vi frps.ini
修改如下內容(由于本文為測試,所以將原配置文件清空),或對照如下修改。
[common]
bind_port = 7000
vhost_http_port = 80
[ssh]
listen_port = 6000
auth_token = 123
[web]
type = http
custom_domains = test1.a.com
auth_token = 123
[web2]
type = http
custom_domains = test2.a.com
auth_token = 123
開啟服務端服務(在frp_0.8.1_linux_amd64目錄下)
./frps -c ./frps.ini
服務端出現如下啟動成功
配置說明
[common]
必須設置
bind_port
是自己設定的frp服務端端口
vhost_http_port
是自己設定的http訪問端口
[ssh]
ssh反向代理(不是必須設置)
listen_port
是自己設定的ssh訪問端口
auth_token
用于身份認證(以下皆是)。
[web]
http反向代理[]里的內容可以自己設定,但是客戶端和服務端必須要對應(如[aaa],[bbb]);
type
為服務類型,可以設為http,https
custom_domains
為要映射的域名,記得域名的A記錄要解析到外網主機的IP。
[web2]
同上(可設置多個)
- 修改客戶端配置(win系統找到相應配置文件進行類似配置)
修改服務端frpc.ini
vi frpc.ini
修改如下內容(由于本文為測試,所以將原配置文件清空),或對照如下修改。
[common]
server_addr = 10.10.10.10
server_port = 7000
auth_token = 123
[ssh]
local_port = 22
[web]
type = http
local_port = 80
[web2]
type = http
local_port = 8080
開啟客戶端服務(在frp_0.8.1_linux_amd64目錄下)
./frpc -c ./frpc.ini
客戶端出現如下啟動成功
配置說明
[common]
必填
server_addr
frp服務端的ip(也就是外網主機的IP)
server_port
frp服務端的bind_prot。
[ssh]
local_port
客戶端ssh端口。
[web]
type
對應服務端配置
local_port
客戶端訪問端口。
[web2]
同上
測試(本文中客戶端已經裝了Nginx服務)
- http測試
訪問內網http://192.168.198.229
訪問域名http://test1.a.com
-
ssh連接內網機器測試(linux系統)
連接設置
連接結果
- win系統也可通過tcp遠程桌面連接,只需要把客戶端端口改成win遠程默認端口:3389。
后臺啟動(使用nohup,以服務端為例子,客戶端類似)
啟動(進入frp目錄)
nohup ./frps -c ./frps.ini & #啟動服務端 帶&符號
啟動后會返回相關的pid
關閉
kill 19619 #輸入你系統中返回的pid
kill -9 $(pidof frps) #或者使用這個命令關閉,$(pidof frps)中frps為進程名稱客戶端為frpc
查看狀態
netstat -antpl #看到7000端口說明后臺啟動成功(配置文件中配置的frp服務端口)