在docker中安装frp
侧边栏壁纸
  • 累计撰写 35 篇文章
  • 累计收到 87 条评论

在docker中安装frp

yan
yan
2024-06-16 / 0 评论 / 35 阅读 / 正在检测是否收录...

frp是一个好用的内网穿透项目:https://github.com/fatedier/frp
如果不使用docker安装frp,可以参考官方教程:https://gofrp.org/zh-cn/docs/setup/
如果用docker安装,可以方便管理,不用使用那些自启动脚本之类的
使用这个docker镜像来安装:https://hub.docker.com/r/snowdreamtech/frps

下面均采用linux和可以访问https://hub.docker.com/的服务器来安装

安装docker

wget -qO- get.docker.com | bash
docker -v  #查看docker版本
systemctl enable docker  # 设置开机自动启动

修改Docker配置(可选)(来自烧饼博客)

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘:

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

然后重启 Docker 服务:

systemctl restart docker

安装Docker-compose(可选)

Compose 是用于定义和运行多容器 Docker 应用程序的工具

sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version  #查看docker-compose版本

安装frps

sudo -i

mkdir -p /root/data/docker_data/frps
cd /root/data/docker_data/frps

vim docker-compose.yml

#输入下面的命令

version: '3.8' #此数字需要根据安装的docker-compose版本而定
services:
    frps:
        restart: always
        network_mode: host
        volumes:
            - './frps.toml:/etc/frp/frps.toml'
        container_name: frps
        image: snowdreamtech/frps
touch frps.toml

vim frps.toml

#输入下面的配置,仅参考

bindPort = 1443   #服务端监听端口
auth.method = "token"   #服务端连接身份认证,默认token
auth.token = "dsafja3fvz25ernca"   #服务端token密码

transport.tls.force = false  #是否只接受启用了TLS的客户端连接

#frp服务仪表板配置
#dashboard端口,启动成功后可通过浏览器访问如http://ip:9007
webServer.port = 9007
webServer.addr = "0.0.0.0" 
webServer.user = "admin1" 
webServer.password = "youareadmin1" 
#启动frps
docker-compose up -d

#docker ps 会显示正在运行的docker容器,frps会显示下面类似的
CONTAINER ID   IMAGE                   COMMAND                  CREATED       STATUS       PORTS NAMES
a9a1aa562935   snowdreamtech/frps      "/usr/bin/frps -c /e…"   2 hours ago   Up 2 hours         frps

需要根据自己的服务器放行相应的端口

#以ufw为例

sudo ufw allow 9007/tcp
sudo ufw allow 1443/tcp
sudo ufw reload

安装frpc

frpc根据情况在nas或其他设备上安装(依然选择snowdreamtech/frpc),下面是一份客户端配置参考,文件名frpc.toml

# frpc.toml
transport.tls.enable = true        # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "xxx.xxx.xxx.xxx"  #frps所在的设备IP
serverPort = 1443                 # 公网服务端通信端口

auth.token = "dsafja3fvz25ernca"             # 令牌,与公网服务端保持一致

[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"            # 需要暴露的服务的IP
localPort = 8989                # 将本地9000端口的服务暴露在公网的6060端口
remotePort = 8989                 # 暴露服务的公网入口,依然需要在服务端放行这个端口

参考:
1.https://blog.laoda.de/archives/frp-with-nginx-proxy-manager?cid=4423#73-%E5%AE%89%E8%A3%85nginxproxymanager
2.https://gofrp.org/zh-cn/docs/setup
3.https://hub.docker.com/r/snowdreamtech/frps

0

评论 (0)

取消