目录
意义
IPV4公网地址非常昂贵,大量的租用云主机价格也不菲。所以可以用少量的公有云资源与本地服务器组网,共同对外提供服务。公有云上的云主机提供前端服务和需要高可靠性的服务,而大量的worker服务则可以放在本地机房。
本方案就通过frp实现了前端在云上,后端在本地的web服务。
参考
使用frp配置内网访问(穿透)教程(超详细,简单)_Lisen’s blog-优快云博客_frp内网穿透
第一步:公有云服务器上配置frps
1、上传frp到公有云服务器
公有云服务器需要有EIP,记下这个IP地址,用于替代后续所有出现xxx.xxx.xxx.xxx的地方
winscp上传frp_0.38.0_linux_amd64.tar.gz到root目录
2、解压frp压缩包
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
frp_0.38.0_linux_amd64/
frp_0.38.0_linux_amd64/frpc_full.ini
frp_0.38.0_linux_amd64/frps.ini
frp_0.38.0_linux_amd64/frps_full.ini
frp_0.38.0_linux_amd64/LICENSE
frp_0.38.0_linux_amd64/frpc
frp_0.38.0_linux_amd64/systemd/
frp_0.38.0_linux_amd64/systemd/frps@.service
frp_0.38.0_linux_amd64/systemd/frpc.service
frp_0.38.0_linux_amd64/systemd/frps.service
frp_0.38.0_linux_amd64/systemd/frpc@.service
frp_0.38.0_linux_amd64/frpc.ini
frp_0.38.0_linux_amd64/frps
cd frp_0.38.0_linux_amd64/
3、修改frps配置文件
vim frps.ini
[common]
# frp监听端口
bind_port = 31000
# 授权码
token = 52010
# 这个token之后在客户端会用到
# frp管理后台端口,请按自己需求更改
dashboard_port = 31001
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
4、设置和启动frps服务
mkdir -p /etc/frp
cp frps.ini /etc/frp
cp frps /usr/bin
cp systemd/frps.service /usr/lib/systemd/system/
systemctl enable frps
systemctl start frps
5、配置云主机服务器安全组
6、 验证frp服务器端配置
访问:http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态
如:http://xxx.xxx.xxx.xxx:31001/,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd
登录之后界面如下:
到此,云主机服务器上的配置完成了一小半。
有云云主机还要访问内网服务器,所以,云主机还需要配置frpc。
第二步:公有云服务器上配置frpc
1、修改frpc配置文件
vim frpc.ini
[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 31000
token = 52010
[secret_web_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = secret_web
sk = abcdefg
# 绑定本地端口用于访问 ssh 服务
bind_addr = 127.0.0.1
bind_port = 8080
2、设置和启动frpc服务
cp frpc.ini /etc/frp
cp frpc /usr/bin
cp systemd/frpc.service /usr/lib/systemd/system/
systemctl enable frpc
systemctl start frpc
3、设置安全组
如果云主机没有代开8080端口,需要添加安全组
第三步:内网服务器上配置frpc
1、上传frp到内网服务器(同第一步公有云服务器操作)
2、解压frp压缩包(同第一步公有云服务器操作)
3、修改frpc配置文件
[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 31000
token = 52010
[secret_web]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 8080
4、设置和启动frpc服务
cp frpc.ini /etc/frp
cp frpc /usr/bin
cp systemd/frpc.service /lib/systemd/system/
systemctl enable frpc
systemctl start frpc
注意:这个地方cp frpc.service的目标目录有变化,我的内网服务器版本跟云主机不完全一样
5、测试
在内网服务器上启动web服务
在公有云服务器上curl
curl http://127.0.0.1:8080/runner/v1/status
在控制台上看到如下提示:
[GIN-debug] Listening and serving HTTP on :8080
[GIN] 2021/11/26 - 00:00:18 | 200 | 180.153µs | 127.0.0.1 | GET "/runner/v1/status"