You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Endlessh配置端口不生效、权限命令执行失败及安装方式疑问咨询

Endlessh配置端口不生效、权限命令执行失败及安装方式疑问咨询

我来一步步帮你理清遇到的这几个问题:

1. 配置Port 22后仍监听2222的原因

你一开始修改了/etc/endlessh/config里的端口设置,但系统服务并没有立刻读取新配置——因为systemd需要重新加载服务配置才能识别修改。你后来执行systemctl daemon-reload后端口22生效,就是因为这个命令让systemd重新加载了所有服务配置,包括你在/etc/systemd/system/endlessh.service里做的修改,覆盖了默认的/lib/systemd/system/endlessh.service的设置。

另外补充一点:apt安装的Endlessh默认会使用/lib/systemd/system里的服务文件,当你在/etc/systemd/system下创建或修改同名服务文件时,systemd会优先读取这个自定义配置,这也是你修改服务文件后能生效的原因。

2. setcap命令执行失败的解决方法

你执行的命令里指定的路径/usr/local/bin/endlessh是错误的——通过apt install安装的软件,二进制文件通常放在/usr/bin目录下,而不是/usr/local/bin(这个路径一般用于手动编译安装的软件)。

你可以先执行以下命令确认Endlessh的实际路径:

which endlessh

不出意外会返回/usr/bin/endlessh,然后用这个正确路径执行setcap命令即可:

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/endlessh

3. 为什么多数教程推荐从Git编译而非apt安装?

主要有这几个原因:

  • 版本更新问题:Linux发行版的软件仓库里的包版本往往不是最新的,而从Git编译可以获取Endlessh的最新功能、修复和特性,适合追求最新版本的用户。
  • 自定义编译选项:编译时可以根据自己的需求开启或关闭某些功能,比如自定义默认端口、日志选项等,而apt安装的包是预编译好的,配置灵活性有限。
  • 历史原因:Endlessh早期并没有被收录到很多发行版的官方仓库中,当时用户只能通过编译安装,这些旧教程被广泛传播,即便后来apt支持了安装,很多教程也没有及时更新。
  • 发行版兼容性:部分小众发行版的仓库可能还没有收录Endlessh,编译安装是通用的解决方案。

备注:内容来源于stack exchange,提问作者nooboverflow

火山引擎 最新活动