Linux 系统 frp 内网穿透服务器搭建常见错误修复

2025-07-18 0 417 百度已收录

在 Linux 系统上搭 frp 内网穿透服务器时,你是不是也遇到过这些情况:输入启动命令后一片红叉报错,客户端死活连不上服务器,明明配置没错却提示 “connection refused”?别愁,这些问题其实很多人都遇见过。今天小编就把这些常见错误整理出来,附上详细的修复方法,一起往下看吧!

一、配置文件语法错误:启动就报错?先查这几点

刚写完 frps.ini 配置文件,一启动就提示 “invalid config”,是不是头都大了?这多半是配置文件的语法出了问题。

常见现象:

  • 启动命令执行后,终端显示 “parse config file failed: …”
  • 具体错误可能指向某一行,比如 “invalid section name”

错误原因 & 修复步骤:

错误类型 原因分析 修复方法
括号不匹配 配置文件里的 [section] 括号漏了右括号,比如写成 [common 检查所有 section(如 [common]、[ssh]),确保左右括号成对出现
参数拼写错误 把 “bind_port” 写成 “bindport”,少了下划线 对照 frp 官方文档,逐个检查参数拼写,重点看 “_” 是否遗漏
数值格式错 端口号写成字母,比如 “bind_port = abc” 端口号必须是数字(1-65535 之间),替换成正确数值

小编提醒:改完配置文件后,最好用 cat 命令再看一遍,比如 “cat frps.ini”,有时候肉眼漏看的错误,终端里能明显发现。

二、端口被占用:提示 “address already in use” 该咋办?

启动 frp 服务器时,终端突然弹出 “bind: address already in use”,这说明你设置的端口被其他程序占了。

为啥会这样?

Linux 系统里,每个端口同一时间只能被一个程序占用。比如你把 frp 的 bind_port 设为 80,而系统里的 nginx 已经在用 80 端口,就会冲突。

修复步骤:

  1. 先找出占用端口的程序:输入 “lsof -i: 端口号”,比如 “lsof -i:7000”,终端会显示占用该端口的进程 ID(PID)。
  2. 结束占用进程:如果是没用的程序,输入 “kill -9 PID”(PID 替换成实际数字)。
  3. 换个端口:要是进程有用不能关,就改 frps.ini 里的 bind_port,比如换成 7001,记得客户端配置也要同步修改。

小编之前就犯过这错,把端口设成了 22(SSH 默认端口),结果一启动就冲突,换个端口立马好了。

三、权限不足:“permission denied” 咋解决?

执行启动命令时,提示 “./frps: permission denied”,这是因为当前用户没有执行 frps 文件的权限。

现象:

  • 点击 frps 文件没反应,终端输入命令后直接报错。
  • 用 ls -l 命令查看,文件权限那一栏没有 “x”(执行权限)。

修复方法:

在终端里进入 frp 文件夹,输入 “chmod +x frps”,给文件加上执行权限。如果还不行,试试用 sudo 命令启动:“sudo ./frps -c frps.ini”,不过最好还是搞清楚权限问题,别总依赖 sudo。

四、防火墙拦截:端口通了却连不上?

服务器和客户端配置都对,可就是连不上,大概率是防火墙把端口挡住了。

怎么检查?

输入 “firewall-cmd –list-ports”(CentOS 系统)或 “ufw status”(Ubuntu 系统),看看 frp 用的 bind_port(比如 7000)有没有在开放列表里。

修复步骤:

  • CentOS 系统:输入 “firewall-cmd –zone=public –add-port=7000/tcp –permanent”,然后 “firewall-cmd –reload”。
  • Ubuntu 系统:输入 “sudo ufw allow 7000/tcp”,再 “sudo ufw reload”。
  • 要是用的云服务器,还得去控制台的安全组里开放对应端口,不然服务器防火墙放行了,云厂商那边还拦着。

小编提示:别嫌麻烦,每次改端口都要同步更新防火墙设置,不然前面的功夫全白费。

五、版本不兼容:客户端和服务器 “说不到一块”

客户端启动后提示 “version mismatch”,这是因为服务器和客户端的 frp 版本不一样。

现象:

  • 客户端日志里出现 “server version is x.x.x, client version is y.y.y”
  • 连接成功但数据传不出去,或者频繁断开。

修复方法:

去 frp 官网下载同一版本的服务器端和客户端,比如都用 0.48.0 版本。卸载旧版本,把新版本解压后替换掉原来的文件,配置文件可以保留,但最好重新核对一遍。

六、token 验证失败:“authentication failed”

Linux 系统 frp 内网穿透服务器搭建常见错误修复
连接时提示 “token is not correct”,说明客户端和服务器的 token 不一致。

为啥会这样?

  • 配置文件里 server 和 client 的 token 拼写不一样,比如一个是 “123456”,一个是 “12345”。
  • 复制粘贴时多了空格,比如 “token = 123456”(后面有空格)。

修复方法:

打开服务器的 frps.ini 和客户端的 frpc.ini,仔细对比 token 参数,确保完全一致,包括大小写和空格。建议直接复制粘贴,别手动输入。

七、日志文件缺失:出了错没记录?

想查错误原因,却发现没有日志文件,这是因为没在配置文件里设置日志路径。

该怎么办?

在 frps.ini 的 [common] 里加两行:
log_file = ./frps.log
log_level = info
这样启动后就会生成日志文件,出问题时打开 frps.log,里面会详细记录错误时间和原因,比终端提示清楚多了。

八、自启动配置错误:重启后 frp 没启动

设置了自启动,可服务器重启后 frp 没跑起来,多半是 systemd 服务文件写错了。

常见错误:

  • 服务文件里的 ExecStart 路径不对,比如写成 “/home/frp/frps”,实际文件在 “/home/user/frp/frps”。
  • 没加 “Restart=always”,导致程序崩溃后不会自动重启。

修复步骤:

打开服务文件(比如 /etc/systemd/system/frps.service),检查 ExecStart 的路径是否正确,确保能找到 frps 和配置文件。改完后输入 “systemctl daemon-reload”,再 “systemctl restart frps”,最后用 “systemctl status frps” 看看状态。

九、域名解析失败:用域名连接时提示 “unknown host”

Linux 系统 frp 内网穿透服务器搭建常见错误修复
配置里填的是域名,却提示 “could not resolve server address”,这是域名解析的问题。

原因:

  • 域名没正确解析到服务器 IP,或者解析还没生效。
  • 服务器 DNS 设置有问题,解析不了域名。

修复方法:

先用 ping 命令测试域名:“ping 你的域名”,看是否能解析到正确 IP。如果解析不对,去域名控制台检查解析记录;如果解析对了还不行,在服务器的 /etc/resolv.conf 里加个公共 DNS,比如 “nameserver 114.114.114.114”。

十、启动后立马退出:没日志没提示?

执行启动命令后,终端闪了一下就回到命令行,没任何提示,这可能是配置文件路径错了。

现象:

  • 输入 “./frps -c frps.ini” 后,没反应,也不报错。
  • 用 ps -ef | grep frps 命令查看,没有 frp 进程。

修复方法:

检查配置文件名称是不是 “frps.ini”,有没有写成 “frps.txt”。或者试试用绝对路径启动:“./frps -c /home/user/frp/frps.ini”,确保能准确找到配置文件。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

兔格号 SEO运维 Linux 系统 frp 内网穿透服务器搭建常见错误修复 https://www.tglzm.com/seo/wei-seo/2138.html

一个独行者,独揽万古

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务