目标
使用公网IP或域名可以访问,部署在内网(本机)的Tomcat服务
原理图
准备环境
- FRP使用0.27.0版本:地址
- 阿里云ECS,需要其公网IP
- 服务器使用:Ubuntu18.04 64位系统
- 客户端使用:Win10 64专业版系统/Mac OS12.14
配置阿里云
- 购买ECS,安装Ubuntu18.04 64位系统
- 查看ECS公网IP地址,保存备用
配置服务器
- 进入ubuntu,在根目录创建app文件夹,进入app文件夹
sudo cd /
sudo mkdir app
sudo cd /app
- 下载FRP软件,创建frp文件夹,并将其解压到frp文件夹
sudo wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz
sudo mkdir frp
sudo tar -zxvf frp_0.27.0_linux_amd64.tar.gz -C frp
- 进入frp文件夹,使用vim编辑frps.ini
sudo cd frp
vim frps.ini
- frps.ini内容如下
[common]
# 绑定端口
bind_port = 7000
- 启动服务,保证在/app/frp/目录下
# 启动服务,如果出现success,表示服务启动成功
./frps -c ./frps.ini
- 后台启动服务
nohup ./frps -c frps.ini >/dev/null 2>&1 &
- 停止服务
# 找到frps进程号
ps -aux|grep frp| grep -v grep
# 使用kill命令杀死服务
kill -9 进程号
配置客户端
安装并启动Tomcat服务
- 安装Tomcat,这里使用Docker安装
docker pull tomcat
- 启动Tomcat,使用Docker启动,并暴露8080访问端口
docker run -it -p 8080:8080 tomcat
- 使用本地浏览器访问http://localhost:8080,能看到Tomcat页面,表示Tomcat启动成功。
安装FRP客户端
[common]
# 服务器IP地址,阿里云ECS公网IP地址
server_addr = 19.107.37.33
# 对应frps.ini中的bind_port设置的端口
server_port = 7000
# server_id为服务取一个名字,全局唯一
[server_id]
# 请求类型,可以是http或是https或tcp
type = tcp
# 本地服务暴露的端口和刚才Docker启动的Tomcat暴露的端口对应
local_port = 8080
# 外网暴露端口
remote_port = 10750
- 启动FRP客户端,启动CMD进入frpc所在文件夹
# window启动客户端,当最后一行出现success表示启动成功
C:\Program Files\frp\frpc.exe -c C:\Program Files\frp\frpc.ini
# Mac启动客户端
./frpc -c ./frpc.ini
- 此时便可使用阿里云公网IP加端口访问内网部署的Tomcat服务
http://19.107.37.33:10750