工具使用:使用frp,反向代理內網到公網


1.為什么需要使用內網穿透式的反向代理

它可以幫助我們完成兩件事:1.幫我們把一個內網機器上的服務發布到外網上,這樣在給用戶演示的情況下很有用。2.在開發階段,如果我們集成了某種需要回調的第三方服務,可以讓我們很方便的調試回調功能是否正常。

可以實現內網反向代理的工具有很多,如:ngrok、lanproxy、goproxy、nps、frp。而我選擇使用frp,原因是用了一圈后,發現它的配置比較簡潔。

2.使用前提

一台有外網ip的主機,本例使用的centos 7.8,ip:123.45.56.78

如果需要使用域名訪問web服務,還需要准備域名,如本次示例:mm.agent.ztimage.com,並指向123.45.56.78

frp程序文件:https://github.com/fatedier/frp/releases,本次使用的版本 v0.34.3

2.服務端設置

下載並解壓

# wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

# tar -zxvf -C /usr/local/frp frp_0.34.3_linux_amd64.tar.gz

配置 frps.ini (windows和linux版的配置是一樣的)

[common]
bind_addr = 0.0.0.0 #綁定的服務IP
bind_port = 18080  #frp服務端口

dashboard_port = 10001 #frp統計web 端口,訪問此端口可以查看frp的各種指標和信息

dashboard_user = goodboy #統計web的登錄用戶名
dashboard_pwd = 123456 #統計web的密碼
vhost_http_port = 10002 #使用web轉發時,服務端監聽的端口號
max_pool_count = 50    #最大提供轉發的數量
token = imgoodboy    #客戶端連接時需要提供的token,也可以不設置

運行

# ./frps -c frps.ini

3.客戶端設置

配置 frqc.ini (windows和linux配置是一樣的)

[common]
server_addr = 123.45.56.78    #服務器ip
server_port = 18080       #frq服務端口號
token = imgoodboy        #服務器端需要的token,如果服務端不需要,這個可以不設置  

[ssh]
type = tcp #轉發協議
local_ip = 127.0.0.1 #本地提供ssh服務的ip
local_port = 22  #本地提供ssh服務的端口
remote_port = 10003 #遠程服務器所監聽的端口
 
[web01]
type = http    #轉發類型
local_port = 5000  #轉發至本地那個端口
custom_domains = mm.agent.ztimage.com #訪問域名  

運行

# ./frpc -c frpc.ini

 

在本實例中提供了兩種數據的轉發

ssh:當訪問 “123.45.56.78:1003"時,會轉發至本地 22端口上

web01: 當訪問 ”mm.agent.ztimage.com:10002“時,會轉發至本地5000端口

4.開機啟動

本示例是將 客戶端設為開機啟動,服務端同理,只需更改ExecStart參數即可。

新增systemd unit配置文件 frp.service ,放在位置/usr/lib/systemd/system或/lib/systemd/system

[Unit]
Description=frp service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target

  

# systemctl enable frp.service    #設為開機啟動

# systemctl daemon-reload     #重載服務配置

# systemctl start frp.service     #啟動frp服務

  


免責聲明!

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



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