是否有可能强制IP源取决于源端口?

我有一个关于路由的问题。 我search了互联网,发现了一些提示,但无法使其工作。

我有一个2公有IP和相同的网关服务器。 假设1.1.1.1(eth0)和1.1.1.2(eth0:0),网关是1.1.1.254(network / 24)。

有一个IP 2.2.2.2/24的第二个服务器(不是我的)。

在这两台服务器之间,我有radius和http通量。

现在,从我的服务器到另一台服务器的所有stream量都来自IP 1.1.1.1。 另请注意,Radius监听IP 1.1.1.2和端口1812和1813(都是UDP)。

我想要做的是只有来自Radius端口的数据包通过源IP 1.1.1.2发送。 所有的HTTPstream量必须像以前一样从1.1.1.1开始。

在此先感谢您的帮助。

只要求你的radius服务器只绑定到1.1.1.2。 这样它将只与IP 1.1.1.2通信。 这正是为什么bind()是为了devise的。

请注意,在Linux上, bind()不限制可以使用哪个networking接口进行通信。 它只是限制可以使用的IP地址。

当然,如果一个客户端连接到1.1.1.1,它将被拒绝。 但是这个通讯无法正常工作:无论如何,如果你回复为1.1.1.2,那么联系1.1.1.1的主机将认不出这两个IP属于同一个主机。


另外你的postbuild议你使用ifconfig和接口别名。 请注意, ifconfig已经过时,接口别名被严重弃用。 内核具有本地function,可以在几年之后向接口添加多个IP地址,而这个接口别名只是旧应用(如ifconfig的兼容层。 请使用iproute2软件包中的ipìp addrip route会告诉你networking接口的真实configuration。

如果在接口上有主IP和从IP,默认情况下, 源自该机器的连接使用主IP。 我不认为你可以轻易改变。