Linux ip_非本地_bind=1如何中断应用程序?

Linux ip_非本地_bind=1如何中断应用程序?,linux,networking,linux-kernel,ip,sysctl,Linux,Networking,Linux Kernel,Ip,Sysctl,我有两个Linux虚拟机。它们都在同一IP上启动sshd服务。当一台机器停机时,您可以使用相同的IP登录到另一个VM。但是,另一个VM将不会侦听该IP,因为它不存在 我必须手动重新启动sshd服务。但是,如果sshd未启动,我无法登录VM。我通过将ip\u nonlocal\u bind设置为1找到了一个解决方案 我用谷歌搜索了ip\u nonlocal\u bind中的描述: 最后一行是,但可能会破坏一些应用程序,我担心这会破坏我在虚拟机上运行的应用程序 我的虚拟机主要充当路由器 最后,我想知

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

我必须手动重新启动
sshd
服务。但是,如果
sshd
未启动,我无法登录VM。我通过将
ip\u nonlocal\u bind
设置为
1
找到了一个解决方案

我用谷歌搜索了
ip\u nonlocal\u bind
中的描述:

最后一行是
,但可能会破坏一些应用程序,我担心这会破坏我在虚拟机上运行的应用程序

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


最后,我想知道:
ip\u nonlocal\u bind
如何中断应用程序?

内核文档说,
ip\u nonlocal\u bind
可能会中断一些应用程序,因为顾名思义,它允许对机器非本地的地址执行
bind()
。如果启用此设置,并且应用程序(错误地)假设入站地址是机器的本地地址,则可能导致机器崩溃或在任何情况下错误地处理连接

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

在您的情况下,我不会担心这个问题,因为正如您所说的,您的机器只是作为一个路由器,所以基本上整个路由工作都是由内核本身完成的

  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