我刚刚在我的服务器上安装了 Ubuntu Server 20.04,但是我在没有仔细观察的情况下执行了一个自动化脚本,这导致了一个非常奇怪的场景。
我还在该服务器上启用了多个网络服务器,但在备用端口上。在我执行它之前,我可以通过输入服务器的以太网地址和它的端口来轻松访问它们。但是在它之后,我只是不知道为什么它不起作用。以下是我可以提供的一些信息:
22(SSHD)、25(Postfix)、80 和 443(Apache) 等端口都运行良好。我的 Nginx 服务器监听所有其他端口,例如,如果我让它监听端口 30000,我将能够通过以下方式查看 Nginx 占用的端口:
lsof -i:40000
但是由于某种原因,在无法访问所有其他端口的同时,如果我停止 apache 并让 nginx 在 80 和 443 上进行监听,它会起作用。不过,如果我让 Nginx 在 81 和 444 上收听,那就不走运了。
这不是路由器问题。虽然,telnet Nginx address:port 没有响应。
从以太网访问不起作用,但如果我在 localhost 上这样做,比如我通过 ssh 和“telnet localhost 40000”登录到我的服务器,我可以获得 Nginx 的响应。
所有的问题都可能是由于 iRedmail 安装不小心造成的。我仍在挖掘它的安装脚本。
如果您有任何想法,请告诉我,真的不想为此重新安装整个服务器...提前致谢!
此问题是由 iRedmail 安装脚本中提供的 nftable 规则引起的。在安装结束时,脚本会询问您是否要应用 iRedmail 提供的规则。如果您接受,原始的 nftables.conf 将被备份和替换。备份文件位于 /etc/nftables.conf-[date]。
删除 iRedmail 提供的 nftables,并恢复备份。它将再次起作用。