docker-compose搭建FRP内网穿透

该文详细介绍了如何通过Docker构建FRPS和FRPC的镜像,配置DockerCompose文件来启动服务,实现内网设备通过公网IP访问。涉及到的步骤包括编写Dockerfile,设置暴露的端口,以及配置frps.ini和frpc.ini文件以进行服务器和客户端的连接设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、带有公网的服务器配置好frps,贴出dockerfile

FROM alpine:3.18

MAINTAINER "SYH"

#frp版本
ENV FRP_VERSION 0.49.0

#github因为某些原因可能无法下载,若无法下载,用kgithub代替,kgithub是国内的一个加速代理
RUN mkdir -p /frps \
    && cd /frps \
    && wget https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz \
    && mv frp_${FRP_VERSION}_linux_amd64.tar.gz frp.tar.gz \
    && tar -xzf frp.tar.gz -C ./ --strip-components=1  \
    && rm -f frp.tar.gz

#SERVER端口
EXPOSE 7000

#网页端管理端口
EXPOSE 7500 

WORKDIR /frps

ENTRYPOINT ["./frps","-c","frps.ini"]

2、构建frps镜像

docker build -f frps-0.49.0.dockerfile -t frps:0.49.0 .

3、通过docker-compose启动frps,贴出docker-compose.yaml

version: "2.3"
services:
  frps:
    image: frps:0.49.0
    container_name: frps
    restart: always
    #直接使用主机网络模式
    network_mode: host
    volumes:
      - ./frps/conf/frps.ini:/frps/frps.ini:ro

4、docker-compose up -d启动容器,第一次启动会失败,将frps.ini放入./frps/conf/目录下,然后重启frps容器,下面贴出frps.ini

[common]
bind_port = 7000
#这里填入的token客户端frpc会用到
token = xxx
#控制台账户
dashboard_user  = user
#dashboard 控制台密码
dashboard_pwd = password
#dashboard 控制台端口,启动成功后可通过浏览器访问如http://ip:7500
dashboard_port = 7500

上面是服务端frps的配置,需要有公网IP
----------------------------------------------------------这是一条分割线------------------------------------------------------------------
下面是客户端frpc的配置,以下配置在需要映射公网ip的内网设备中执行

1、一样先构建镜像,贴出dockerfile

FROM alpine:3.18

MAINTAINER "SYH"

#frp版本
ENV FRP_VERSION 0.49.0

#github因为某些原因可能无法下载,若无法下载,用kgithub代替,kgithub是国内的一个加速代理
RUN mkdir -p /frpc \
    && cd /frpc \
    && wget https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_386.tar.gz \
    && mv frp_${FRP_VERSION}_linux_amd64.tar.gz frp.tar.gz \
    && tar -xzf frp.tar.gz -C ./ --strip-components=1  \
    && rm -f frp.tar.gz

WORKDIR /frpc

ENTRYPOINT ["./frpc","-c","frpc.ini"]

2、构建frpc镜像,注意这里是frpc,不是frps

docker build -f frpc-0.49.0.dockerfile -t frpc:0.49.0 .

3、通过docker-compose启动frpc,贴出docker-compose.yaml

version: "2.3"
services:
  frpc:
    image: frpc:0.49.0
    container_name: frpc
    restart: always
    #直接使用主机网络模式
    network_mode: host
    volumes:
      - ./frpc/conf/frpc.ini:/frpc/frpc.ini:ro

4、docker-compose up -d启动容器,第一次启动会失败,将frpc.ini放入./frpc/conf/目录下,然后重启frpc容器,下面贴出frpc.ini

[common]
#frps的服务器配置,和上一份frps的配置需要一致
#服务器的公网ip
server_addr = 0.0.0.0
#服务器的端口
server_port = 7000
#服务器的token
token = xxx
#客户端也有管理页面,和服务端管理不一样,这个是直接本地ip+端口范围
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = user
admin_pwd = password

#需要映射服务名,需要唯一,建议把映射的本地端口以及远程目标端口写上,方便服务端控制台区分
[smaba-139to7001]
type = tcp
local_ip = 127.0.0.1
#需要映射的本地端口
local_port = 139
#远程目标端口
remote_port = 7001

[smaba-445to7002]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002

两边都设置好之后,以下是服务端管理界面的效果图:
在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值