内网穿透 frp 0.61 docker部署流程

简介

frp分为frps和frpc,前者是服务端,后者是客户端,frp可以转发多种流量,但本文章仅说明最常用的两种流量转发,即TCP和HTTP。

TCP可以近似看做端口转发,直接将端口的流量进行透明数据转发,而HTTP则近似于nginx反向代理,所以服务端可以只用一个端口根据域名将不同的网站转发到不同的后端

Frps配置

docker-compose配置

version: '3.3'
services:
  frpc:
    image: snowdreamtech/frpc:0.61
    container_name: frpc
    restart: always
    network_mode: host
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./conf:/etc/frp:ro
      - ./logs:/frp/logs
      - /root/.acme.sh/xxxxxx:/etc/ssl #证书路径自行配置

frps.toml配置

# 连接配置
## 连接服务端的地址
serverAddr = "x.x.x.x" #服务端IP
## 连接服务端的端口
serverPort = 7000

# 鉴权配置
## 鉴权方式
auth.method = "token"
## Token
auth.token = "*********"

# 日志日志
## 日志路径
log.to = "/frp/logs/frpc.log"
## 日志级别
log.level = "info"
## 日志文件最多保留天数
log.maxDays = 30
## 禁用标准输出中的日志颜色
log.disablePrintColor = false

includes = ["/etc/frp/confd/*.toml"]

以上配置中token、域名和password需要自行修改,域名填一级域名即可,后面HTTP反向代理会用到此域名的二级域名用于区分不同的网站

Frpc配置

docker-compose配置

[[proxies]]
### 连接名称
name = "Home Assistant"
### 连接类型
type = "tcp"
localIP = "192.168.101.194"
localPort = 8123
remotePort = 8122
### 是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输
transport.useEncryption = false
### 是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输
transport.useCompression = false

frpc.toml配置

# 连接配置
## 连接服务端的地址
serverAddr = "x.x.x.x" #服务端IP
## 连接服务端的端口
serverPort = 7000

# 鉴权配置
## 鉴权方式
auth.method = "token"
## Token
auth.token = "*********"

# 日志日志
## 日志路径
log.to = "/frp/logs/frpc.log"
## 日志级别
log.level = "info"
## 日志文件最多保留天数
log.maxDays = 30
## 禁用标准输出中的日志颜色
log.disablePrintColor = false

includes = ["/etc/frp/confd/*.toml"]

自行修改配置,与服务端对应,然后在/etc/frp中新建/confd文件夹,以后需要添加配置在此文件夹内新建xxx.toml即可,以下给出TCP和HTTP的toml示例:ha.toml

[[proxies]]
### 连接名称
name = "Home Assistant"
### 连接类型
type = "tcp"
localIP = "192.168.101.194"
localPort = 8123
remotePort = 8122
### 是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输
transport.useEncryption = false
### 是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输
transport.useCompression = false
  • localIP表示本地局域网IP
  • localPort表示本地端口
  • remotePort表示远程端口,按以上示例即访问服务端IP:8122->本地:8123
## HTTP 连接
[[proxies]]
### 连接名称
name = "EMBY"
### 连接类型
type = "https"
### 子域名列表,用户访问服务端此域名的流量会被转发到对应的本地服务
subdomain = "emby"
### 是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输
#transport.useEncryption = false
### 是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输
#transport.useCompression = false

[proxies.plugin]
type = "https2http"
localAddr = "192.168.101.236:8091"

# HTTPS 证书相关的配置
crtPath = "/etc/ssl/*.abc.com.cer"
keyPath = "/etc/ssl/*.abc.com.key"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"

此类型为https,subdomain表示二级域名,如示例即emby.abc.com,localAddr即局域网中需要反代的ip:端口,下面证书按照自己映射的填写,建议申请通配符域名证书,最后浏览器输入emby.abc.com:4443即可成功访问(注意服务端中http和https的端口不同)

相关文章

如何搭建内网服务器:详细教程

#如何搭建内网服务器#在企业办公、家庭网络或特定开发环境中,搭建内网服务器可以提供更高效、安全的资源共享和服务部署方式。本文将介绍如何在本地网络环境中搭建一台内网服务器,包括所需的硬件、软件配置及端口...

nginx应用场景梳理以及使用

在这种情况下,如果文件大小为 10 兆字节(10 MB),并且使用的带宽大小为 10 兆比特每秒(10 Mbps),我们需要先确认单位。通常文件大小以字节(bytes)表示,而带宽通常以比特(bits...

也谈谈内网穿透,带你一步步体验FRP!

我们家庭宽带基本都是基于NAT,并没有提供公网IP,那么想从公网(Internet)访问家里电脑起的某个端口或服务该怎么办?那就来试试FRP这款内网穿透工具吧!为啥要内网穿透?比如你在家里电脑搭配了N...

Nginx配置太麻烦?我用这个开源可视化面板一键搞定!

在日常开发和运维中,Nginx几乎是每个技术人都绕不开的一环。但提到它的配置,很多人就开始头疼——各种虚拟主机、反向代理、HTTPS、证书续签,错一个分号都可能导致服务挂掉。于是,我开始寻找一种能“可...

IPTV EPG服务迁移到家庭内网,华硕路由器部署Java及Web服务器指南

为了方便使用像Tivimate、Kodi、天光云影、DIYP或者TVBox类(酷9、影视等)的电视应用使用电子节目单(EPG)观看家里的IPTV的电视直播及回看,建了一个北京IPTV的电子节目单(EP...

最好用的内外网测速工具, speedtest 服务器搭建指南

大家好, 我是可爱的排骨目录一. speedtest 简介.二. 安装到 Windows. 难度 ★★三. 安装到 Linux. 难度 ★★★★★四. 安装到 群晖 DSM. 难度 ★五. 使用 Do...