frps.service配置如下

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c ./frps.ini  --log_file ./frps.log
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

通过systemd启动frps服务后

想代理tcp 80、443端口,但是一直报错port unavailable,其他tcp端口9000、9001等都能正常被代理。

 [control.go:447] [54351724c0c3c4be] new proxy [nginx_80] error: port unavailable
 [control.go:447] [54351724c0c3c4be] new proxy [nginx_443] error: port unavailable

然后我手动执行/usr/bin/frps -c ./frps.ini  --log_file ./frps.log命令,启动frps,发现80、443端口可以被正常代理了。

原来是systemd搞得鬼,将frps.service中的User=nobody去掉就可以正常启动frps.service了。

解释:

User使用nobody没有权限使用80、443端口资源,将User配置去掉,默认会使用root用户执行就有使用80、443端口的权限了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐