经验分享 · 2023年2月27日

内网穿透frp提示start error: port unavailable的解决办法

使用frp进行内网穿透,远程调试node.js应用,启动frpc时出现 start error: port unavailable.

frpc.ini 配置节如下:

[HTTP8080]
privilege_mode = true
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8080
use_encryption = true
use_compression = true

以前碰到过在Linux服务器下无法穿透443的情况,是因为要想代理80 443端口,frps必须使用更高权限启动,

将frps.service中的User=nobody去掉就可以正常启动frps.service了。User使用nobody没有权限使用80、443端口资源,将User配置去掉,默认会使用root用户执行就有使用80、443端口的权限了。

而这次frps服务端运行在windows下面,即使用管理员身份启动也不解决问题。

最后发现8080端口被tomcat占用了,换个remote端口就可以了。配置改成如下:

[HTTP8080]
privilege_mode = true
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8081
use_encryption = true
use_compression = true

注意,这样远程访问就要使用8081端口了。