fatedier / frp

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Apache License 2.0
86.52k stars 13.38k forks source link

frp部署好后,通过IP+端口访问无法连接服务器端 提示ERR_CONNECTION_TIMED_OUT 已更新信息,求助 #2120

Closed kalonezero87 closed 3 years ago

kalonezero87 commented 3 years ago

[REQUIRED] hat version of frp are you using

Version: 0.34.3

[REQUIRED] What operating system and processor architecture are you using OS: Debian 10 CPU architecture: AMD64

[REQUIRED] description of errors 这个腾讯云的香港VPS真的要把我弄疯了。我之前在另外一个VPS部署frp是可以正常使用的。。考虑到腾讯云会更加稳定也想使用通过frp使用https,于是就在腾讯云香港VPS部署frp。目前发现的问题:

  1. 单独装frp是可以正常通过frp访问内网设备及打开frp的dashboard。安装BBR加速(各种加速 bbr plus)就没法通过frp访问内网设备了(通过7500端口访问dashboard可以打开页面,但是页面只有项目没有任何版本和数据信息)。提示是:ERR_CONNECTION_TIMED_OUT 2.只部署frp可以正常访问内网设备 ,安装宝塔面板后,就没法访问内网设备了。(通过7500端口访问dashboard可以打开页面,但是页面只有项目没有任何版本和数据信息)。 目前看这VPS有毒,只要部署其他服务,frp就没法使用,换句话说初始化VPS后,只装frp是正常的,不过访问起来感觉比原来的香港VPS要慢....不知道是不是另外一个开了BBR的缘故。 同时排除 系统问题。之前是DD了系统有这种情况。后俩用腾讯云自带的系统还是会出现这种情况。 错误信息: ERR_CONNECTION_TIMED_OUT confile

    frps.ini [common]

bind_addr = 0.0.0.0

bind_port = 7000

token = XXXXXXX

vhost_http_port = 8080

dashboard_addr = 0.0.0.0

dashboard_port = 7500

dashboard_user = admin

dashboard_pwd = XXXXXX

frpc.ini [common]

server_addr = XXX.XXX.XXX.XXX

server_port = 7000

token = 872828

[DSM]

type = tcp

local_ip = 127.0.0.1

local_port = 5000

remote_port = 6001

[Jellyfin]

type = tcp

local_ip = 127.0.0.1

local_port = 8096

remote_port = 7001

[Tinymediamanger]

type = tcp

local_ip = 127.0.0.1

local_port = 5800

remote_port = 8001

[Qbittorrent]

type = tcp

local_ip = 127.0.0.1

local_port = 8989

remote_port = 9010

[NextCloud]

type = tcp

local_ip = 127.0.0.1

local_port = 8888

remote_port = 9888 [Onlyoffice]

type = tcp

local_ip = 127.0.0.1

local_port = 8002

remote_port = 8003

[SSH]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6006

以下是运行systemctl status frps 得到的frp再服务器端的状态信息 ######################################## root@VM-4-9-debian:~# systemctl status frps ● frps.service - fraps service Loaded: loaded (/lib/systemd/system/frps.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-12-01 13:35:49 HKT; 11h ago Main PID: 28564 (frps) Tasks: 4 (limit: 993) Memory: 10.0M CGroup: /system.slice/frps.service └─28564 /root/frp/frps -c /root/frp/frps.ini

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. image

log file

以下是frp的log信息: https://pastebin.ubuntu.com/p/XDjDhBqJXP/

Steps to reproduce the issue 1.从https://github.com/fatedier/frp/releases 复制所需要版本的frp链接

  1. 用wget命令讲安装压缩包下载到root目录下,
  2. 解压缩,并将文件夹改名为frp 4.修改frps.ini,具体信息见上方贴的配置信息。 5.运行./frps -c frps.ini,显示端口被监听后 6.单独运行iptables -I INPUT -ptcp --dport 7000 -j ACCEPT 打开7000端口 7.运行vi /lib/systemd/system/frps.service, 并加入以下命令: [Unit]

Description=fraps service

After=network.target syslog.target

Wants=network.target

[Service]

Type=simple

ExecStart=/root/frp/frps -c /root/frp/frps.ini

[Install]

WantedBy=multi-user.target

7.运行systemctl start frps和systemctl enable frps 命令 8.重启vps 并通过ps auxw 查看frp是否正常运行。 9通过一键脚本安装BBR或者 宝塔面板后,无法访问内网服务,也打不开dashboard。

Supplementary information

Can you guess what caused this issue

Checklist:

kalonezero87 commented 3 years ago

在公司,回家再附上frpc.ini 。不过这两个ini和 frp的状态跟我另外一台机子是一样的。 腾讯云 香港VPS的系统是DD的,不知道是不是跟这个有关系........

Becods commented 3 years ago

请将v2ray关闭后重新贴上错误信息 请把dd包相关信息也一并贴上 确认在访问7500端口的时候frps已启动 需要复现步骤

此外,Linux Kernel 4.9+已默认集成bbr 亲测Debian 10内核4.19可使用以下方法开启

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr
kalonezero87 commented 3 years ago

请将v2ray关闭后重新贴上错误信息 请把dd包相关信息也一并贴上 确认在访问7500端口的时候frps已启动 需要复现步骤

此外,Linux Kernel 4.9+已默认集成bbr 亲测Debian 10内核4.19可使用以下方法开启

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

首先,谢谢你的回复。复现是指我的每一步的操作么?我用来科学上网是部署在另外一台VPS的。这台我只是frp+博客。 1.直连访问这台VPS的话提示ERR_CONNECTION_TIMED_OUT 连接超时。

  1. DD包的话,我是通过一键脚本,脚本如下: wget --no-check-certificate -O AutoReinstall.sh https://git.io/AutoReinstall.sh && bash AutoReinstall.sh 3.执行systemctl status frps 的信息 已经贴在上面了。frp已经启动了。 4.复现步骤,这个可以详细说下么,我程度有点差。 5.BBR是可以开的,一开就会出现现在的情况,BBR原本,魔改 BBR plus 我都试过了。一开就没法访问了。 我其实有点怀疑DD的系统,我想试试腾讯云自带的系统再试试,排除系统的干扰。
fatedier commented 3 years ago

@kalonezero87 这样的网络问题可能不是简单描述一下就能看出问题所在的了,最好还是找周围比较精通网络的同学帮你登录机器详细排查一下,可能需要依赖一些工具命令抓包做分析才能推测出结果。

一些简单的定位方法:

  1. 本地搭建 frpc 和 frps,frpc 通过 127.0.0.1 连接本地的 frps ,测试是否正常。这一步可以排除是否是配置或其他原因导致问题。
  2. 将 frpc 连接 frps 的 protocol 设置为 kcp,底层是 UDP,这样应该不会走 BBR 的 TCP 栈,这样确认是否和 BBR 这一层是相关的。
  3. 在服务器上搭建一些其他服务,比如 nginx,访问看是否有异常。

通常就是控制变量,找到可能的问题点。具体想排查原因,还是要通过抓包分析定位问题。

kalonezero87 commented 3 years ago

@kalonezero87 这样的网络问题可能不是简单描述一下就能看出问题所在的了,最好还是找周围比较精通网络的同学帮你登录机器详细排查一下,可能需要依赖一些工具命令抓包做分析才能推测出结果。

一些简单的定位方法:

  1. 本地搭建 frpc 和 frps,frpc 通过 127.0.0.1 连接本地的 frps ,测试是否正常。这一步可以排除是否是配置或其他原因导致问题。
  2. 将 frpc 连接 frps 的 protocol 设置为 kcp,底层是 UDP,这样应该不会走 BBR 的 TCP 栈,这样确认是否和 BBR 这一层是相关的。
  3. 在服务器上搭建一些其他服务,比如 nginx,访问看是否有异常。

通常就是控制变量,找到可能的问题点。具体想排查原因,还是要通过抓包分析定位问题。

哇~fatedier本人亲自回答了。 1.配置是应该没有问题的,因为是我从正在运行的frp的vps上复制过来的(VPS上安装并运行了BBR和梯子) 2.这个我真的可以试试,不过BBR对于我来说不是必须的。宝塔面板才是,或者说里面的nginx才是。 3.就目前情况,如果同时装其他服务,BBR和宝塔面板都是正常运行,就frp不正常。可能我这个情况太稀少了。

kalonezero87 commented 3 years ago

又尝试了centos 8.0 配置完frp一切正常。在安装好宝塔面板的一瞬间....还没有进去安装各种服务。frp无法访问内网的设备了..

kalonezero87 commented 3 years ago

这种提示错误,是正常的么,使用中还是能穿透内网的 2020/12/03 14:11:15 [W] [http.go:86] do http proxy request error: no such domain: 101.32.74.251 / 2020/12/03 14:12:44 [I] [proxy.go:103] [de9b4e02baf9be08] [Jellyfin] get a new work connection: [125.127.10.123:12008] 2020/12/03 14:18:50 [W] [http.go:86] do http proxy request error: no such domain: 101.32.74.251 /.env 2020/12/03 14:18:50 [W] [http.go:86] do http proxy request error: no such domain: 101.32.74.251 / 2020/12/03 14:18:51 [W] [vhost.go:147] get hostname from http/https request error: Unknown error 2020/12/03 14:24:22 [W] [http.go:86] do http proxy request error: no such domain: 101.32.74.251 /config/getuser 2020/12/03 14:33:12 [I] [dashboard_api.go:180] Http request: [/api/proxy/tcp] 2020/12/03 14:33:12 [I] [dashboard_api.go:174] Http response [/api/proxy/tcp]: code [200] 2020/12/03 14:33:16 [I] [dashboard_api.go:180] Http request: [/api/proxy/tcp] 2020/12/03 14:33:16 [I] [dashboard_api.go:174] Http response [/api/proxy/tcp]: code [200] 2020/12/03 14:44:43 [W] [vhost.go:147] get hostname from http/https request error: Unknown error

kalonezero87 commented 3 years ago

BBR的问题,升级debian内核,开启自带BBR不影响FRP。与宝塔面板冲突是宝塔面板接管了vps的防火墙,打开端口后就可以了。但是....我感觉有点误打误撞成功的,不知道重来一次会不会成功....