5

我有一个ap0(应用程序0)为配置的接口系统网络化它被设计为由应用程序动态启用/禁用。我希望此应用程序绑定到与ap0(应用程序0)也。但是,如果应用程序禁用ap0(应用程序0)接口,那么它的绑定自然会失败。

有没有一种方法可以使我的应用程序保持绑定到它的地址,并使该地址保持可绑定ap0(应用程序0)上下浮动,但在上可用ap0(应用程序0)什么时候开始?我一直在尝试网络连接和桥接,但并不是很成功。

0

2个答案2

重置为默认值
10

如果应用程序支持它(或者如果它是你的应用程序,或者如果你愿意修补它),那么有一个设置超时旗帜IP_FREEBIND公司在Linux 2.4+(和FreeBSD)中,允许将套接字绑定到(当前)不存在的地址。这正好给出了您所要求的行为:当界面打开时,您的应用程序将在该地址上获得连接,但当它关闭时,不会出现错误情况。

例如,Apache的最新版本通过添加自由绑定选项指令。

  • 谢谢你。不幸的是,我似乎对绑定没有那种级别的控制。我使用的是Rust Warp库。不过,对我来说,在那个图书馆进行公关可能是一个很好的功能。也就是说,我也通过socat绑定,socat也不能容忍地址不可用。 评论 6月15日20:57
  • 4
    @ChristopherHunt你可以尝试设置sysctl选项net.ipv4.ip_nonlocal_bind新.pv6.ip_nonlocal_bind。启用它们基本上启用IP_FREEBIND公司用于系统上的所有套接字,因此不需要更改程序。 评论 6月15日22:04
  • @马塞尔·克鲁格我不知道!我认为把它变成一个答案是公平的。
    – 霍布斯
    评论 6月16日6:13

回答我自己的问题,这似乎确实有效,但我渴望学习任何其他方法:

  1. 我创造了一座桥,br0(棕色)-它有192.168.3.1和DHCP配置
  2. 我创建了一个虚拟接口,杜0,并将其与br0桥梁。
  3. 我创建了ap0(应用程序0)接口并将其与相同的br 0桥梁。

我现在可以做我想做的事了ap0(应用程序0)接口,它不会影响绑定到192.168.3.1.

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.