Giter VIP home page Giter VIP logo

frp's Introduction

frp

frp frp

Docker Image packaging for Frp.

(amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le,riscv64, s390x)

Usage

start frps

docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

start frpc

docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc

Quick reference

  • Where to file issues:

https://github.com/snowdreamtech/frp/issues

  • Maintained by:

snowdream [email protected]

frpc:

amd64, arm32v6, arm32v7, arm64v8

frps:

amd64, arm32v6, arm32v7, arm64v8

  • Supported Tags:

Frps

Frpc

Contact (备注:frp)

Website

  1. fatedier/frp
  2. Snowdream Tech
  3. ITCoder

License

MIT

frp's People

Contributors

github-actions[bot] avatar penndu avatar snowdream avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frp's Issues

error

image
docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:75: mounting "/etc/frp/frps.ini" to rootfs at "/etc/frp/frps.ini" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

Docker版本老是重启

日志是

date stream content
2021-04-06 14:07:53 stdout dial tcp 39.96.52.60:7010: connect: no route to host
2021-04-06 14:07:53 stdout 2021/04/06 14:07:53 �[1;33m[W] [service.go:104] login to server failed: dial tcp 39.96.52.60:7010: connect: no route to host�[0m
2021-04-06 14:07:47 stdout dial tcp 39.96.52.60:7010: connect: no route to host
2021-04-06 14:07:47 stdout 2021/04/06 14:07:47 �[1;33m[W] [service.go:104] login to server failed: dial tcp 39.96.52.60:7010: connect: no route to host�[0m

创建镜像报错

docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/etc/frp/frps.toml" to rootfs at "/etc/frp/frps.toml": mount /etc/frp/frps.toml:/etc/frp/frps.toml (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

用一个容器添加命令,链接不同服务器。

你好,我想只用一个容器,如何添加启动命令来链接不同的服务器呢?
配置文件有三个,我已经link到容器内了。但是不知道如何修改容器的启动命令,谢谢指教。

Upgrade to 0.39.0

Please upgrade the FRP library to latest 0.39.0
Also please use latest Alpine to fix the security Vulnerabilities present in old alpine

构建多CPU架构支持的Docker镜像

参考资料:

  1. 构建多CPU架构支持的Docker镜像 https://blog.csdn.net/dev_csdn/article/details/79138424
  2. Docker Multi-Architecture Images https://medium.com/@mauridb/docker-multi-architecture-images-365a44c26be6
  3. 多架构 CPU docker 镜像构建 http://liupeng0518.github.io/2019/03/28/docker/Multi%20Architecture%20Docker%20Builds/
  4. x86 下制作 ARM Docker 镜像,Docker Hub、Travis 自动构建 https://lantian.pub/article/modify-computer/build-arm-docker-image-on-x86-docker-hub-travis-automatic-build.lantian
  5. Advanced options for Autobuild and Autotest https://docs.docker.com/docker-hub/builds/advanced/
  6. 使 DockerHub 的 Autobuild 自动构建 ARM / 其他 架构的镜像 https://thinkalone.ga/Docker-ARM.html
  7. Leverage multi-CPU architecture support https://docs.docker.com/docker-for-mac/multi-arch/
  8. Running and building ARM Docker containers in x86 https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/
  9. Building ARM images on DockerHub https://daehne.net/docker/dockerhub/github/2018/12/09/building-arm-images-on-docker-hub.html
  10. Create and use multi-architecture docker images https://blog.csdn.net/dev_csdn/article/details/79138424
  11. Image Manifest V 2, Schema 2 https://docs.docker.com/registry/spec/manifest-v2-2/
  12. docker manifest https://docs.docker.com/engine/reference/commandline/manifest/

参考项目:

  1. manifest-tool https://github.com/estesp/manifest-tool
  2. qemu-user-static https://hub.docker.com/r/multiarch/qemu-user-static/
    https://github.com/multiarch/qemu-user-static/releases/
  3. docker-alpine https://github.com/alpinelinux/docker-alpine
  4. frp https://github.com/fatedier/frp/releases
  5. official-images https://github.com/docker-library/official-images#architectures-other-than-amd64

应该使用CMD来传递frp参数, 而不是放在ENTRYPOINT里, 方便用户覆盖

按照现在的写法

ENTRYPOINT /usr/bin/frpc -c /etc/frp/frpc.toml

在k8s中覆盖参数的话, 需要一同覆盖程序位置:

containers:
    - command:
        - /usr/bin/frpc
        - '-c'
        - /etc/frp/frpc.yml

这样需要确定frpc的位置, 日后如果frpc位置更改就会破坏容器配置.
如果使用CMD来传递参数:

ENTRYPOINT /usr/bin/frpc
CMD -c /etc/frp/frpc.toml

可以不用关心frpc executable在哪, 直接覆写参数即可

containers:
    - args:
        - '-c'
        - /etc/frp/frpc.yml

dockerhub上的命令有错误

编写配置文件,目前支持的文件格式包括 TOML/YAML/JSON,旧的 INI 格式仍然支持,但已经不再推荐——官网上的话

我通过阅读 Dockerfile 的文件发现里面

RUN cd /root \
    &&  wget --no-check-certificate -c https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz \
    &&  tar zxvf frp_${FRP_VERSION}_linux_amd64.tar.gz  \
    &&  cd frp_${FRP_VERSION}_linux_amd64/ \
    &&  cp frpc /usr/bin/ \
    &&  mkdir -p /etc/frp \
    &&  cp frpc.toml /etc/frp \
    &&  cd /root \
    &&  rm frp_${FRP_VERSION}_linux_amd64.tar.gz \
    &&  rm -rf frp_${FRP_VERSION}_linux_amd64/ 

ENTRYPOINT /usr/bin/frpc -c /etc/frp/frpc.toml

使用的是 frpc.toml 打成镜像

但是,您在 DockerHub 上的文档说明似乎还没有更新,生成容器的命令行如下:
start frps

docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

start frpc

docker run --restart=always --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc

这对我产生了比较大的困扰,我把所有的流程都过了一遍才找到问题,最后才发现原来是我命令错了,我一直在改我的我的配置!

如何设置计划重启

/etc/crontabs # cat root

do daily/weekly/monthly maintenance

min hour day month weekday command

*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
0 4 * * * /sbin/reboot >/dev/null 2>&1 这是设置重启但没有执行
这个应该怎么设置呢

2024-03-26 07:01:32.262 [W] [client/service.go:297] connect to server error: dial tcp 127.0.0.1:7000: connect: connection refused

[common]
server_addr = XXXX
server_port = 7000
tls_enable = false
user = YYYYYYYYYYYYYYYYYYY
token = ZZZZZZZZ

[derpertcp]
type = tcp
local_ip = 127.0.0.1
local_port = 443
remote_port = 44300

[derperudp]
type = udp
local_ip = 127.0.0.1
local_port = 3478
remote_port = 34780
上面的内容是frpc.ini的内容
使用如下命令创建docker
docker run --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc

启动报connect to server error: dial tcp 127.0.0.1:7000: connect: connection refused
其中server_addr user token 为了保密用 X Y Z等字符替换

可以不挂载ini文件而是挂载volume目录吗?

是否可以读取docker创建的volume中的ini文件,此volume目录已挂载到frp中。

version: "2.1"

services:
  frpc:
    restart: always
    network_mode: host
    volumes:
      - frpc_data:/frp

    container_name: frpc
    image: snowdreamtech/frpc


volumes:        
  frpc_data:
 

容器启动出错

运行 后出现下面错误
image
google搜索后发现/etc/frp目录下面的frps.ini是创建的一个文件夹,于是删除了frps.ini这个文件夹,重新新建了文件名为frps.ini的文件,再停止删除容器后,容器启动不起来。
在去查看/var/lib/docker/overlay2/xxx目录/merged" 发现merged目录不存在,这是什么原因呢?请大佬帮忙看下。
使用的系统是 Debian 4.9.272-1 (2021-06-21) x86_64 GNU/Linux

windows下端口无法映射至宿主机

本地环境为win10,直接使用frp可正常使用

docker容器开启正常:
image

Docker启动命令:
docker run --network host --restart always -d -v E:\frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

但是宿主机无法获取容器端口映射,7500管理界面端口无法访问。
求助是什么原因造成的,猜测可能和windows防火墙有关?

docker版本启动失败

x86架构,我用以下命令启动的frps:
docker run -d
--restart always
--network host
--name frps
-v frps.ini:/etc/frp/frps.ini
snowdreamtech/frps

$ cat frps.ini
[common]
bind_port=7003
dashboard_port=7004
dashboard_user=xxx
dashboard_pwd=xxx

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed8af45d79cc snowdreamtech/frps "/bin/sh -c '/usr/bi…" About a minute ago Restarting (1) 36 seconds ago

$ docker logs frps
create server listener error, listen tcp 0.0.0.0:443: bind: address already in use
create server listener error, listen tcp 0.0.0.0:443: bind: address already in use
create server listener error, listen tcp 0.0.0.0:443: bind: address already in use

如上所示,我在启动容器之后出现了错误,说是我的443端口被占用,但是我这个服务器的443端口确实需要使用,也不需要frp映射443端口,请问有解决办法吗?

容器连接上后,过段时间面板显示wait

如题,服务器是下载文件自行配置的,另一台主机连接服务器并没有问题,在这台主机上因为不方便设置开机自启,使用了docker来配置frpc,但是过一段时间就会断开连接,进入面板发现状态提醒为wait start。

docker 启动容器成功但是frps.ini配置没有生效

docker logs frps
2023/11/07 01:49:55 [I] [root.go:102] frps uses config file: /etc/frp/frps.toml
2023/11/07 01:49:56 [I] [service.go:200] frps tcp listen on 0.0.0.0:7000
2023/11/07 01:49:56 [I] [root.go:111] frps started successfully
2023/11/07 02:03:45 [I] [root.go:102] frps uses config file: /etc/frp/frps.toml
2023/11/07 02:03:45 [I] [service.go:200] frps tcp listen on 0.0.0.0:7000
2023/11/07 02:03:45 [I] [root.go:111] frps started successfully
2023/11/07 02:09:12 [I] [root.go:102] frps uses config file: /etc/frp/frps.toml
2023/11/07 02:09:12 [I] [service.go:200] frps tcp listen on 0.0.0.0:7000
2023/11/07 02:09:12 [I] [root.go:111] frps started successfully

无法启动多docker 客户端

我在启动一个docker 服务之后,另外有两个服务器中各自启动了客户端的docker,但是似乎只能有一个能远程访问,另一个一直提示“The page you visit not found.”, 反正就是哪个先启动,就哪个能够访问有效。这个是什么道理呢?
谢谢!

please update the README for docker repository, it is misleading

please change -v /etc/frp/frps.ini:/etc/frp/frps.ini to -v /etc/frp/frps.toml:/etc/frp/frps.toml.

today my frp service always unstable, so i update the frps version.
After execute the docker command which locate in README. I found the service no effect, after i read offical docs and inspect the docker container. i found the default config use frps.toml. but i still use my old version .ini config file, so it no effect.

docker安装frp启动失败

群晖DSM版本为:DSM7.2;
frp版本:0.52.1;
docker安装镜像后启动容器时自动关闭,提示'意外停止',并且无日志数据

配置证书一直提示无法找到

客户端配置:

version: "3"
services:
    frps:
        restart: always
        network_mode: host
        volumes:
            - /share/Docker/frpc-base/:/etc/frp/
            - /share/Docker/frpc-base/frpc.toml:/etc/frp/frpc.toml
        container_name: frpc-base
        image: snowdreamtech/frpc:0.57.0

无论是否删除 - /share/Docker/frpc-base/:/etc/frp/ 均找不到

config:

[[proxies]]
name = "nas"
type = "https"
localIP = "127.0.0.1"
localPort = 5000
customDomains = ["nas.devwiki.net"]


[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:5000"
# HTTPS 证书相关的配置
keyPath = "nas.devwiki.net.key"
crtPath = "nas.devwiki.net.crt"
hostHeaderRewrite = "nas.devwiki.net"
requestHeaders.set.x-from-where = "frp"
requestHeaders.set.x-forwarded-protol = "https"
requestHeaders.set.x-forwarded-port = "443"

运行结果:

frpc-base | 2024-04-23 14:32:04.515 [W] [client/control.go:168] [aac6322f6d0276fa] [nas] start error: gen TLS config error: open nas.devwiki.net.crt: no such file or directory

image

每次重新启动容器时 run id 会变化, 导致端口冲突?

2020/03/11 15:25:09 [W] [control.go:255] [b2f8a180d295ca80] write message to control connection error: stream closed
2020/03/11 15:25:09 [E] [control.go:147] [b2f8a180d295ca80] work connection closed before response StartWorkConn message: EOF
2020/03/11 15:25:20 [I] [service.go:250] [a6e6576b0c85764c] login to server success, get run id [a6e6576b0c85764c], server udp port [0]
2020/03/11 15:25:20 [I] [proxy_manager.go:144] [a6e6576b0c85764c] proxy added: []
2020/03/11 15:25:20 [W] [control.go:162] [a6e6576b0c85764c] [
] start error: port already used
2020/03/11 15:25:20 [W] [control.go:162] [a6e6576b0c85764c] [******] start error: port already used

frp需要更新

frp 中 .ini 配置文件已经被废弃;需要升级以支持 .toml 配置文件

弃用了ini,docker的拉取命令是否要更改toml

昨天弄了一天,我说怎么重装系统安装frp0.52.1连不上了,而且有报80被占用,原来新版弃用了。
我把ini改为toml,就不占用了
docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
对照新版的变量修改后,我发现日志监听端口依旧默认7000,去看了下frp里有人提到了旧版变量才生效。

2023/10/20 09:09:10 [I] [root.go:102] frps uses config file: /etc/frp/frps.toml
2023/10/20 09:09:10 [I] [service.go:200] frps tcp listen on 0.0.0.0:7000
2023/10/20 09:09:10 [I] [root.go:111] frps started successfully
WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
2023/10/20 09:10:10 [I] [root.go:102] frps uses config file: /etc/frp/frps.toml
2023/10/20 09:10:10 [I] [service.go:200] frps tcp listen on 0.0.0.0:7777
2023/10/20 09:10:10 [I] [root.go:111] frps started successfully
WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
2023/10/20 09:11:08 [I] [root.go:102] frps uses config file: /etc/frp/frps.toml
2023/10/20 09:11:09 [I] [service.go:200] frps tcp listen on 0.0.0.0:7777
2023/10/20 09:11:09 [I] [service.go:261] http service listen on 0.0.0.0:7778
2023/10/20 09:11:09 [I] [service.go:276] https service listen on 0.0.0.0:7779
2023/10/20 09:11:09 [I] [service.go:312] Dashboard listen on 0.0.0.0:7780
2023/10/20 09:11:09 [I] [root.go:111] frps started successfully
2023/10/20 09:11:30 [I] [dashboard_api.go:73] Http request: [/api/serverinfo]
2023/10/20 09:11:30 [I] [dashboard_api.go:66] Http response [/api/serverinfo]: code [200]

目前用旧版的变量就没问题了,可以访问后台了。
[common]
bind_port = 7777
vhost_http_port = 7778
vhost_https_port = 7779
bindAddr = 0.0.0.0
dashboard_port = 7780
dashboard_user = admin
dashboard_pwd = admin
token = g111111

Ubuntu 21.04每次开机启动,frpc都工作不正常,需要手动重启下container才能正常

Ubuntu 21.04每次开机启动,frpc都工作不正常,需要手动重启下container才能正常
日志如下:
2021/04/29 13:26:54 [E] [control.go:158] [b3a619eb500415cc] work connection closed before response StartWorkConn message: EOF
2021/04/29 13:26:54 [E] [control.go:158] [b3a619eb500415cc] work connection closed before response StartWorkConn message: EOF
2021/04/29 13:26:54 [E] [control.go:158] [b3a619eb500415cc] work connection closed before response StartWorkConn message: EOF
2021/04/29 13:26:54 [E] [control.go:158] [b3a619eb500415cc] work connection closed before response StartWorkConn message: EOF
2021/04/29 13:26:54 [E] [control.go:158] [b3a619eb500415cc] work connection closed before response StartWorkConn message: EOF
2021/04/29 13:34:43 [W] [service.go:104] login to server failed: lookup xxxxxx.com on 127.0.0.53:53: server misbehaving

感觉是因为黑体部分,开机后网络还没有ready,所以把域名(域名由于隐私改成xxxx.com了)解析到127.0.0.53了,然后就连不上服务器,但又不会自动去retry。
怎么优雅地解决这个问题呢?而不是每次都需要手动重启一下。

docker: Error安装出现错误是什么原因?

docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: rootfs_linux.go:59: mounting "/etc/frp/frps.ini" to rootfs at "/var/lib/docker/overlay2/c0c54fc57d0f1d2af10c1eafa8c40832725cad331dc2862f15cdd1adc9ae613b/merged/etc/frp/frps.ini" caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

求助大神:找不到frpc, 找不到frpc.ini

大神你好,我的NAS是QNAP 212P3,应该是ARM64的机器,最近折腾了好几天frpc,但就是不成功,要么就是找不到frpc,要么就是找不到frpc.ini,也曾尝试直接用winscp将frpc复制到/usr/bin,将frpc.ini复制到/etc/frp,但始终不能成功启动。能否指导一下正确的安装方法?包括如何映射正确的共享文件夹?非常感谢!!!
40360A04-23AB-413D-A71A-9778CC777059
33EC32EE-AD23-41F3-A3F7-7DC5DCD5F507
82011E85-882F-48BC-8F54-101A22AB2D3F

docker frpc container launch param error

The docker launch cmd is docker run --restart=always --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
however, the args in container is "/usr/bin/frpc -c /etc/frp/frpc.toml", this will cause container always restarting.
please fix it.

    {
        "Id": "f2156d815a9a1c59e1445177ba071eccb2915ef76a3b78bbc238328747ba9d6e",
        "Created": "2023-10-18T08:39:19.240268069Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "/usr/bin/frpc -c /etc/frp/frpc.toml"
        ],
        "State": {
            "Status": "restarting",
            "Running": true,
            "Paused": false,
            "Restarting": true,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-10-18T08:40:11.985570198Z",
            "FinishedAt": "2023-10-18T08:40:12.039484257Z"
        },```

如何将本地的多个web内网穿透到云服务器上的frps

云服务器上的设置

frps.ini

[common]
bind_port = 7000
vhost_http_port = 8080

本地web1

frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = 23.23.23.23

本地另外一台机器上web2,这里怎么设置呢?

frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = 23.23.23.23

请问snowdreamtech/frpc的配置语法有吗?现在网上教程五花八门,容器竟然不能识别type = http

请问snowdreamtech/frpc的配置语法有吗?当使用type = http的时候,容器无法成功运行。使用 type = tcp则OK,但加上plugin相关参数时,也常常导致运行出错。

Is there any configuration syntax for snowdreamtech/frpc? When using type=http, the container cannot run successfully. Using type=TCP is OK, but adding plugin related parameters often leads to runtime errors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.