文章摘要
GPT 4
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结

基于Docker的FRP内网穿透部署

服务器搭建(FRPS)

  1. 创建配置文件
    创建存放目录
1
sudo mkdir /etc/data/docker/frp

创建frps.ini文件

1
nano /etc/data/docker/frp/frps.ini

frps.ini内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = admin23
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081


# 身份验证
token = 12345678
  1. 配置Docker
  • 服务器镜像:snowdreamtech/frps
  • 重启策略:always
  • 网络模式:host
  • 文件映射:/etc/data/docker/frp/frps.ini:/etc/frp/frps.ini
1
docker run --restart=always --network host -d -v /etc/data/docker/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
  1. 配置VPS防火墙策略
    服务端开放端口:
  • WebUI:7500
  • Sever: 7000
  • Other: 7080,7081

中转客户端配置(FRPC)

  1. 配置Docekr
  • 服务器镜像:snowdreamtech/frpc
  • 重启:always
  • 网络模式:host
  • 文件映射:/路径/frp/:/etc/frp/

配置文件示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[common]
# server_addr为FRPS服务器IP地址
server_addr = x.x.x.x
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 12345678

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2288

# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP
# local_port 为目标端口
# remote_port 为远程端口

[ssh]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18022

[unRAID web]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18088
  • 如果监听服务可以有IP限制的设置,需要允许的访问IP为中转内网设备的内网IP;
  • FRP由于端口会暴露在互联网上,虽然说使用方便但安全性较差;

基于Docker的Nginx-Proxy-Manager反向代理部署

vps客户端配置

  1. 创建挂载目录
    创建配置文件存放目录
1
sudo mkdir /etc/data/docker/npm/data

创建证书存放目录

1
sudo mkdir /etc/data/docker/npm/letsencrypt
  1. 配置docker
  • 服务器镜像:chishin/nginx-proxy-manager-zh(中文汉化版本镜像),jc21/nginx-proxy-manager(英文原版镜像)
  • 容器名:npm
  • 重启策略:always
  • 网络模式:host
  • 文件映射:数据data&ssl证书
1
2
docker run --restart=always --network host -d -v /etc/data/docker/npm/data:/data -v /etc/data/docker/npm/letsencrypt:/etc/letsencrypt --name npm chishin/nginx-proxy-manager-zh

  1. 服务端开放端口:
  • WebUI:81 (后面可以配置反向代理,可以关闭防火墙)
  • Http: 80
  • Https: 443