如何使用 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
posted @ 2025-08-29 20:58  江南烟雨梦  阅读(71)  评论(0)    收藏  举报