我的网络服务无法重新启动,首先是在进行一些配置后,然后是在重新启动后。我想知道为什么以及如何解决这个问题。
由于我对 Linux 相当陌生,尤其是在复杂的配置方面,我将尝试解释一下我是如何陷入困境的。我有一个运行 Debian 9 的虚拟机。在它上面,我安装了 Nginx,试图为 Python Web 应用程序运行 Gunicorn 和 Flask。我设法设置了一个简单的服务器并安装了 SSL 证书。甚至 Gunicorn 也在子域上工作。但由 Certbot 自动安装和配置的证书不包含此子域。所以我删除了证书,重新配置服务器以允许安装另一个证书,这一次是一个certonly
- 我认为我的配置是正确的。证书已安装,但大约在那时我的服务器完全停止响应,就好像它阻止了所有流量一样。
尝试了多种配置,从完整的子域配置到最低限度的默认配置,所有这些配置都nginx -t
顺利通过并重新启动,ufw
允许所有正确的端口,即 80、443 和 2222,我将其用于 ssh。但是,curl my_machine.net
拒绝连接并nmap
仅显示 ssh 端口。
下面是 的日志journalctl -xe
,应该提供任何信息。我可以从哪里开始调试?我很确定是 Nginx、Certbot 或其他一些不是由我触发的事件(至少是故意的)引发了这个问题。systemctl --all
显示没有其他服务失败,尽管有些服务的条件失败了,这似乎是正常情况。
-- Unit networking.service has begun starting up.
Jul 08 18:33:13 my_machine.net ifup[989]: RTNETLINK answers: File exists
Jul 08 18:33:13 my_machine.net ifup[989]: ifup: failed to bring up eth0
Jul 08 18:33:13 my_machine.net systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Jul 08 18:33:13 my_machine.net systemd[1]: Failed to start Raise network interfaces.
-- Subject: Unit networking.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit networking.service has failed.
--
-- The result is failed.
Jul 08 18:33:13 my_machine.net systemd[1]: networking.service: Unit entered failed state.
Jul 08 18:33:13 my_machine.net systemd[1]: networking.service: Failed with result 'exit-code'.
Jul 08 18:33:13 my_machine.net sudo[982]: pam_unix(sudo:session): session closed for user root
Jul 08 18:33:21 my_machine.net kernel: [UFW BLOCK] IN=eth0 OUT= MAC=long_address SRC=short_address
Jul 08 18:33:26 my_machine.net sudo[1007]: my_user : TTY=pts/0 ; PWD=/home/my_user ; USER=root ; COMMAND=/bin/journalctl -
Jul 08 18:33:26 my_machine.net sudo[1007]: pam_unix(sudo:session): session opened for user root by my_user(uid=0)
冒险
- 再次重新启动后
dhclient -r
,会显示不同的错误:RTNETLINK answers: Permission denied
。 /etc/sysctl.conf
显示net.ipv6.conf.all.disable_ipv6 = 1
,但在编辑此类文件之前,我想确定这对系统有什么确切影响- 我确实有一般的互联网连接,从 ssh 和向外卷曲可以明显看出,例如
google.com
- 对于它的价值,
ping my_machine.net
有效,但我想这应该 - 的输出
ip route
是:default via xx.xx.xx.1 dev eth0 onlink
xx.xx.xx.0/24 via xx.xx.xx.1 dev eth0
答案1
所以啊。我重新安装并重新配置。一切都很顺利,直到我再次开始添加子域。类似的不倾听的问题也出现了。不过这次networking
还好。
事实证明,从sites-available
到 的sites-enabled
符号链接站点ln -s
需要完整的绝对路径。我用的是相对的。所以没有包含任何网站。虽然不能解决 dhclient/ifup 问题,但它确实为我解决了这个问题。