首页 > 解决方案 > ip_nonlocal_bind=1 如何破坏应用程序?

问题描述

我有两个 Linux 虚拟机。他们都sshd在同一个 IP 上启动服务。当一台机器宕机时,您可以使用相同的 IP 登录另一台虚拟机。但是,其他 VM 将不会监听该 IP,因为它尚不存在。

我必须sshd手动重新启动服务。sshd但是,如果没有启动,我无法登录虚拟机。我通过设置找到了解决ip_nonlocal_bind方案1

我用谷歌搜索ip_nonlocal_bindkernel.org中的描述:

  ip_nonlocal_bind - BOOLEAN
  If set, allows processes to bind() to non-local IPv6 addresses, 
  which can be quite useful - but may break some applications.
  Default: 0

最后一行说but may break some applications,我担心这可能会破坏我在 VM 上运行的应用程序。

我的虚拟机主要充当路由器。

最后,我想知道:如何ip_nonlocal_bind破解应用程序?

标签: linuxnetworkinglinux-kernelipsysctl

解决方案


内核文档说这ip_nonlocal_bind 可能会破坏某些应用程序,因为顾名思义,它允许bind()在计算机本地以外的地址上。如果启用此设置,并且应用程序(错误地)假设入站地址是机器本地的,这可能会导致它崩溃或在任何情况下错误地处理连接。

文档说这可能会破坏某些应用程序,因为在引入设置之前(如果我没记错的话,在内核 v4.3 中)应用程序可以安全地假设绑定地址是本地的。

在您的情况下,我不会担心它,因为正如您所说,您的机器仅充当路由器,因此基本上整个路由工作都是由内核本身完成的。


推荐阅读