Closed NP-Prob closed 3 days ago
已解决,只做了这个改动:
将/etc/systemd/system/hysteria-server.service
文件中的
WorkingDirectory=~
改为:
WorkingDirectory=/etc/hysteria
即可。
不知道为什么,我其他机器上保持WorkingDirectory=~
不变是可以的。
发一下会出问题的这台机器上完整的 /etc/systemd/system/hysteria-server.service
看看?
以及下面这个命令的输出
echo ~root
发一下会出问题的这台机器上完整的
/etc/systemd/system/hysteria-server.service
看看?以及下面这个命令的输出
echo ~root
echo ~root
命令的输出是:
/root
省流: 只将官方脚本设置的:
WorkingDirectory=~
User=hysteria
Group=hysteria
改为了:
WorkingDirectory=/etc/hysteria
User=root
Group=root
以前的机器上我只改了User和Group的部分如下:
WorkingDirectory=~
User=root
Group=root
完整文件如下:
官方脚本安装完后的/etc/systemd/system/hysteria-server.service
文件:
[Unit]
Description=Hysteria Server Service (config.yaml)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
WorkingDirectory=~
User=hysteria
Group=hysteria
Environment=HYSTERIA_LOG_LEVEL=info
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
这次出问题的机器改为了:
[Unit]
Description=Hysteria Server Service (config.yaml)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
WorkingDirectory=/etc/hysteria
User=root
Group=root
Environment=HYSTERIA_LOG_LEVEL=info
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
之前改为以下内容即可:
[Unit]
Description=Hysteria Server Service (config.yaml)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
WorkingDirectory=~
User=root
Group=root
Environment=HYSTERIA_LOG_LEVEL=info
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
另外,我如果把WorkingDirectory=/etc/hysteria
改回WorkingDirectory=~
,问题复现。
如果用 WorkingDirectory=/root
的话是不是也会 permission denied, 能看下 ls -ld /root
的输出吗?
如果用
WorkingDirectory=/root
的话是不是也会 permission denied, 能看下ls -ld /root
的输出吗?
改成WorkingDirectory=/root
试了下,也 permission denied 了。
ls -ld /root
的输出如下:
dr-xr-x--- 5 root root 4096 Nov 28 00:59 /root
改回WorkingDirectory=/etc/hysteria
后恢复正常。
dr-xr-x--- 5 root root 4096 Nov 28 00:59 /root
你的 /root
目录没有写权限(没错, Linux 上的 root 用户并不能无视这种权限限制), 即使是 touch /root/testfile
也是会 permission denied 的。 chmod u+w /root
就好了。
dr-xr-x--- 5 root root 4096 Nov 28 00:59 /root
你的
/root
目录没有写权限(没错, Linux 上的 root 用户并不能无视这种权限限制), 即使是touch /root/testfile
也是会 permission denied 的。chmod u+w /root
就好了。
感谢解答!学到了!
其实当我看到dr-xr-x--- 5 root root 4096 Nov 28 00:59 /root
的时候,心里就大致知道是怎么回事了。之前没遇到过这种情况,也完全没往这方面想。😂
描述问题 启动hysteria2发生错误:
{"error": "open ./.hysteria-geoloader.dlpart.1644212360: permission denied"}
如何复现 安装流程如下:
安装
cd ~ && bash <(curl -fsSL https://get.hy2.sh/)
修改权限:
chmod a+w /etc/hysteria
修改配置:
/etc/hysteria/config.yaml
配置如下(已做脱敏处理):tls: cert: /etc/hysteria/cert/fullchain.pem key: /etc/hysteria/cert/privkey.pem
auth: type: password password: xxxxxxxxx
resolver: type: https https: addr: 8.8.8.8:443 timeout: 10s sni: dns.google insecure: false
acl: inline:
outbounds:
bandwidth: up: 100 mbps down: 100 mbps
speedTest: true
masquerade: type: proxy proxy: url: https://example.com/ rewriteHost: true
systemd[1]: Started hysteria-server.service - Hysteria Server Service (config.yaml). hysteria[256060]: 2024-11-26T10:29:56-05:00 INFO server mode hysteria[256060]: 2024-11-26T10:29:56-05:00 INFO downloading database {"filename": "geoip.dat", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"} hysteria[256060]: 2024-11-26T10:29:56-05:00 ERROR failed to download database {"error": "open ./.hysteria-geoloader.dlpart.1644212360: permission denied"} hysteria[256060]: 2024-11-26T10:29:56-05:00 FATAL failed to load server config {"error": "invalid config: acl.inline: error at line 1: open ./.hysteria-geoloader.dlpart.1644212360: permission denied"} systemd[1]: hysteria-server.service: Main process exited, code=exited, status=1/FAILURE systemd[1]: hysteria-server.service: Failed with result 'exit-code'.