如何使用 frp 在内网中搭建多个服务?
1、frp 服务端配置:
# frp 服务端默认监听 7000 端口(供家里/内网电脑使用)
bindPort: 7000
tcpmuxHTTPConnectPort: 7002 # 通过 7002 端口多路复用
#vhostHTTPPort: 80 # 开启 https,所以不需要 80 端口
vhostHTTPSPort: 443
# 开启 dashboard,可以实时查看 frp 服务端的状态
webServer:
addr: "0.0.0.0" # 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0
port: 7005 # 通过公网 ip 的 7005 端口来访问管理后台
user: "admin" # 用户名
password: "xxxxxxx" # 用户密码
tls:
keyFile: "/root/tls-cert/live/xxx.com/privkey.pem"
certFile: "/root/tls-cert/live/xxx.com/cert.pem"
2、frp 客户端配置:
# 服务器的 ip 和端口
serverAddr: "xxx.com"
serverPort: 7000
proxies:
# 开启第一个 ssh 服务
- name: "ssh-ubuntu-server" # 内网服务的名称(可任意)
type: "tcpmux" # 基于 tcpmux
multiplexer: "httpconnect"
customDomains: ["stock.xxx.com"]
localIP: "127.0.0.1" # 从公网访问内网服务的地址,默认为本机的 "127.0.0.1"
localPort: 22 # 从公网访问内网服务的端口,默认为本机的 22 端口(ssh-server)
#remotePort: 7001 # 公网通过 "ssh -o port=7001 root@x.x.x.x" 访问 frp 客户端的 ssh-server,即:frps 服务器的 7001 端口的数据都会被转发给内网的 ssh 服务
# 开启第二个 ssh 服务
- name: "gitlab-ubuntu-server" # 内网服务的名称(可任意)
type: "tcpmux" # 基于 tcpmux
multiplexer: "httpconnect"
customDomains: ["gitlab.xxx.com"]
localIP: "127.0.0.1" # 从公网访问内网服务的地址,默认为本机的 "127.0.0.1"
localPort: 2222 # 从公网访问内网服务的端口,默认为本机的 2222 端口(ssh-server)
#remotePort: 7001 # 公网通过 "ssh -o port=7001 root@x.x.x.x" 访问 frp 客户端的 ssh-server,即:frps 服务器的 7001 端口的数据都会被转发给内网的 ssh 服务
# 开启一个 stock web 服务
- name: "stock-ubuntu-server"
type: "https"
#localPort: 80
customDomains: ["stock.xxx.com"]
plugin:
type: https2http
localAddr: 127.0.0.1:8080
crtPath: /etc/letsencrypt/live/xxx.com/fullchain.pem
keyPath: /etc/letsencrypt/live/xxx.com/privkey.pem
hostHeaderRewrite: 127.0.0.1
requestHeaders:
set:
x-from-where: frp
# 开启一个 Jekins web 服务
- name: "jenkins-ubuntu-server"
type: "https"
#localPort: 80
customDomains: ["jenkins.xxx.com"]
plugin:
type: https2http
localAddr: 127.0.0.1:8081
crtPath: /etc/letsencrypt/live/xxx.com/fullchain.pem
keyPath: /etc/letsencrypt/live/xxx.com/privkey.pem
hostHeaderRewrite: 127.0.0.1
requestHeaders:
set:
x-from-where: frp
# 开启一个 Gitlab-CE web 服务
- name: "gitlab-ubuntu-server"
type: "https"
#localPort: 80
customDomains: ["gitlab.xxx.com"]
plugin:
type: https2http
localAddr: 127.0.0.1:8082
crtPath: /etc/letsencrypt/live/xxx.com/fullchain.pem
keyPath: /etc/letsencrypt/live/xxx.com/privkey.pem
hostHeaderRewrite: 127.0.0.1
requestHeaders:
set:
x-from-where: frp

浙公网安备 33010602011771号