Docker实现frp内网穿透

💡 使用 Docker Compose 实现 FRP 内网穿透

FRP 是一款轻量高性能的反向代理应用,使用 Docker Compose 可以轻松部署 FRP 服务端(frps)和客户端(frpc)来实现内网穿透。以下是详细步骤和注释。

📦 安装 Docker 与 Docker Compose

# 更新软件包索引
sudo apt update

# 安装 Docker 和 Compose
sudo apt install docker.io docker-compose -y

# 启动并设置开机自启
sudo systemctl enable --now docker

🖥️ 配置 FRP 服务端(frps)

创建 docker-compose-frps.yml 文件:

version: '3'
services:
  frps:
    image: snowdreamtech/frps               # 使用 FRP 服务端镜像
    container_name: frps                    # 容器名称
    restart: always                         # 开机自动重启
    ports:
      - "7000:7000"                         # FRP 连接端口
      - "7500:7500"                         # 仪表板端口
      - "6000-6010:6000-6010"               # 映射穿透端口范围
    volumes:
      - ./frps.ini:/etc/frp/frps.ini        # 挂载配置文件

创建 frps.ini 配置文件:

[common]
bind_port = 7000                           # 接收客户端连接端口
token = your_secure_token                  # 连接认证令牌

dashboard_port = 7500                      # 仪表板端口
dashboard_user = admin                     # 仪表板用户名
dashboard_pwd = your_password              # 仪表板密码

启动服务端:

docker-compose -f docker-compose-frps.yml up -d

📡 配置 FRP 客户端(frpc)

创建 docker-compose-frpc.yml 文件:

version: '3'
services:
  frpc:
    image: snowdreamtech/frpc               # 使用 FRP 客户端镜像
    container_name: frpc                    # 容器名称
    restart: always                         # 开机自动重启
    network_mode: host                      # 使用主机网络,方便转发
    volumes:
      - ./frpc.ini:/etc/frp/frpc.ini        # 挂载配置文件

创建 frpc.ini 配置文件:

[common]
server_addr = your_server_ip               # 服务端公网 IP
server_port = 7000                         # 服务端监听端口
token = your_secure_token                  # 与服务端一致

[ssh]
type = tcp                                 # 使用 TCP 转发
local_ip = 127.0.0.1                       # 本地服务地址
local_port = 22                            # 本地端口(如 SSH)
remote_port = 6000                         # 映射到公网的端口

启动客户端:

docker-compose -f docker-compose-frpc.yml up -d

🔧 常用 Docker 管理命令

# 查看日志
docker logs frps
docker logs frpc

# 启停容器
docker start frps
docker stop frpc

# 删除容器
docker rm frps frpc

🔒 推荐安全配置(服务端)

[common]
allow_ports = 6000-6010                   # 限制可暴露端口范围
tls_enable = true                         # 启用 TLS 加密连接

通过以上配置,您就可以轻松在内网机器上通过公网服务器实现远程访问。适用于 SSH、Web、数据库等多种场景。

无标签