适用场景

本来本地机房有一条带固定ip的专线,但由于运营商升级设备的问题,需要临时断网几小时,这个时候为了业务的连续性,需要把域名的ip临时指向别的有固定ip的地方,例如阿里云。此时如果为了临时服务几个小时,把所有业务都迁云上也不现实,这时候就可以使用frp内网穿透反向代理到原来的服务器上,当然,本地服务器由于已经断网,可以临时通过4g,5g连进网内继续提供服务。

环境

假设本地服务器为A,ubuntu23.04, 做客户端,通过4g或别的宽带上网,阿里云服务器为B,做服务端 ,ubuntu23.04,对外提供ip出口。俩台机器都需安装frp,此处测试版本为frp_0.59.0。

安装

  1. 到github下载https://github.com/fatedier/frp/releases
  2. 各自解压
  3. 服务端配置

建一配置文件 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为管理界面登录使用,自定义


  1. 服务端启动
sudo nohup /home/frp_0.59.0_linux_amd64/frps -c /home/frp_0.59.0_linux_amd64/frps.ini &
  1. 客户端配置

建一配置文件 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 为阿里云对外开放的端口


  1. 客户端启动
sudo  nohup /home/frp_0.59.0_linux_amd64/frps -c /home/frp_0.59.0_linux_amd64/frpc.ini &

都启动完成后,可以在阿里云的ip:7500查看具体的映射情况

frp内网穿透反向代理,域名使用临时ip_linux

ngrok区别

ngrok也可以使用反向代理,但是默认是分配了域名的,对我们域名重指向不方便。