适用场景
本来本地机房有一条带固定ip的专线,但由于运营商升级设备的问题,需要临时断网几小时,这个时候为了业务的连续性,需要把域名的ip临时指向别的有固定ip的地方,例如阿里云。此时如果为了临时服务几个小时,把所有业务都迁云上也不现实,这时候就可以使用frp内网穿透反向代理到原来的服务器上,当然,本地服务器由于已经断网,可以临时通过4g,5g连进网内继续提供服务。
环境
假设本地服务器为A,ubuntu23.04, 做客户端,通过4g或别的宽带上网,阿里云服务器为B,做服务端 ,ubuntu23.04,对外提供ip出口。俩台机器都需安装frp,此处测试版本为frp_0.59.0。
安装
- 到github下载https://github.com/fatedier/frp/releases
- 各自解压
- 服务端配置
建一配置文件 frps.ini
[common]
bind_port = 7000
token = your_token
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
max_pool_count = 100
token为认证使用,可以理解为连接密码
dashboard_user为管理界面登录使用,自定义
dashboard_pwd为管理界面登录使用,自定义
- 服务端启动
sudo nohup /home/frp_0.59.0_linux_amd64/frps -c /home/frp_0.59.0_linux_amd64/frps.ini &
- 客户端配置
建一配置文件 frpc.ini
[common]
server_addr = 11.111.11.11
server_port = 7000
token = your_token
[push]
type = tcp
local_ip = 127.0.0.1
local_port = 6667
remote_port = 6667
[test]
type = tcp
local_ip = 127.0.0.1
local_port = 6668
remote_port = 6668
server_addr 为阿里云的ip
token为认证使用,可以理解为连接密码
remote_port 为本地服务器的端口
local_port 为阿里云对外开放的端口
- 客户端启动
sudo nohup /home/frp_0.59.0_linux_amd64/frps -c /home/frp_0.59.0_linux_amd64/frpc.ini &
都启动完成后,可以在阿里云的ip:7500查看具体的映射情况
与ngrok区别
ngrok也可以使用反向代理,但是默认是分配了域名的,对我们域名重指向不方便。