介绍
之前在内网穿透&反向代理(重剑无锋)中介绍了如何使用frp搭建ssh穿透和单一的web服务穿透。
然而不止有一个服务需要映射到外网,这里有一个实验室的gitlab和一个react服务需要映射,所以需要进一步使用frp。
有一个重点是,需要一个域名。前面使用到的都是公网ip,形如x.x.x.x的数字,但是如果映射多个服务,就需要将多个服务以子域名的形式展现,使得外网可以访问。
准备域名
-
进入到阿里云控制台找到域名
image.png
- 在其中买一个域名,需要进行邮箱认证和实名认证流程。
-
成功买到后,在域名管理栏会出现刚刚购买的域名。
image.png
- 依次点击右边的解析按钮,解析设置按钮,添加记录,添加如下两条解析配置:
记录类型 | 主机记录 | 解析线路 | 线路值 |
---|---|---|---|
A | @ | 默认 | 公网ip |
A | * | 默认 | 公网ip |
至此域名则准备完成。
配置frp
为了安全和描述方便起见,假设我的域名叫wodeyuming.cn
配置aliyun公网服务器frps.ini
[common]
bind_port = 3455
vhost_http_port = 34556
subdomain_host = wodeyuming.cn
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = nimda
配置web server1,gitlab服务
[common]
server_addr = whut1208.cn
server_port = 3455
[sshwebserver]
type = tcp
local_ip = localhost
local_port = 22
remote_port = 34522
[gitlab]
type = http
local_port = 80
subdomain = gitlab
配置web server2,react服务
[common]
server_addr = whut1208.cn
server_port = 3455
[ssh]
type = tcp
local_ip = localhost
local_port = 22
remote_port = 34502
[flask-react]
type = http
local_port = 28081
subdomain = react
测试与运行
vhost_http_port 就是外网访问内网应用使用的端口号,这里配置的是34556。
gitlab服务的访问域名就是gitlab.wodeyuming.cn:34556
react服务的访问域名就是react.wodeyuming.cn:34556


如果把vhost_http_port设置为80,则需要在阿里云上做备案,否则会出现如下显示。

参考
subdomain设置
配置的相关解释
http://www.dkys.org/archives/720.html
https://yq.aliyun.com/articles/630646
网友评论