Docker FRP 内网穿透网速很慢可以看看有没有这个问题

之前在L站看到佬友发了个比较简单的FRP教程,我照做了,踩到坑了

公司服务器宽带10M,分别在我们这边和客户那边 ping 服务器测试延迟 20ms 左右,文件上传下载测试网速可达 1MB/s,不算快但对于 WEB 网页内网穿透够用了,不过穿透后客户访问速度十分感人,半天加载不出网页,查看网卡流量仅有 100kb/s 左右,宽带根本没有完全发挥作用

后经排查终于意识到,在用 docker 启动 frpc 容器时请尽可能用 HOST 网络模式启动,尤其是网络环境比较复杂的时候,让容器直接使用宿主机网络才能尽可能的提高穿透效果,修改之后带宽直接跑满

# docker run 的写法
docker run --net=host

# docker compose 的写法
network_mode: "host"

这么关键的问题,原作者居然没有作出说明,这里把它挂出来,简直是误人子弟!

2 个赞

我倒是觉得未必是这个问题

端口转发也只是一层nat,对于1000MB以下的速度,损耗应该都是可以忽略不计的.

docker也不至于有如此严重的缺陷

跟我们公司不良的网络环境有关系,我笔记本用网线,坐我旁边的同事连 WiFi,都是在同一个局域网,网络差的时候我 ping 同事都有可能丢包

你FRP还得套一层 docker干啥,
一个二进制一个配置文件 撑死再加一个service 。。还能干啥。。。

啥也不干,就图一个方便,一个 compose 下有很多通用的基础环境,例如 MySQL、Redis、队列啥的,frp 也在这个 compose 内,日后换机器啥也不用想,把整个 docker 目录直接拿走,一个 docker compose up -d 就完事儿了

看着官网好像没有frp的docker版本的介绍和安装说明,佬,这些写法是研究出来的吗还是怎么找出来的,比如/opt/frps的写法?

不太记得了,我刚才去看了一下官网,确实没看到 docker 启动的命令,所以我才说了上面这句话,文档对新人不是很友好

/opt/frps这个路径其实是我随便写的,-v 的功能是目录映射嘛,我把本地的目录映射到/opt/frps,后面启动 docker 的时候指定配置文件-c /opt/frps/frps.toml,你放到别的目录也可以,/etc/frps也是没有任何问题的,反正启动的时候是要指定配置文件的

1 个赞

小白问问,公网ip 去哪里找 :distorted_face:

你这么白的还是头一次见…

内网穿透服务是要搭建在有公网IP的服务器上的,所以首先你自己的电脑,或者你自己搭建的虚拟机是行不通的

如果你有一台服务器但不知道公网IP是多少的话,直接去问对应的厂商就行了,例如你是在阿里云买的服务器,去问阿里云的客服,这样比较方便

一般情况下官网会给出,若官网没给给出可以网上查或者直接去容器内部找(若软件时开源的可以直接去看构建脚本,里面会写的有)

没遇到过这个问题

1 个赞