linux将在eth0和eth0.1之间使用哪个接口?

时间:2013-12-27 16:44:01

标签: linux interface ubuntu-12.04

我有一个VPS,其中配置了eth0,我想配置一个接口eth0.1,但我想知道我是否将配置这个新接口,数据流将在eth0和eth0.1之间划分?

我希望eth0 Ip address用于服务器上的所有数据流,如自定义编写脚本和eth0.1 Ip address,以便从浏览器访问它,因为我有Web服务器。

2 个答案:

答案 0 :(得分:1)

默认情况下,Linux会将所有数据包发送到子网的默认接口,这很可能是eth0

iproute2尝试通过在已接收数据包的同一接口上重定向数据包来解决此问题。

http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2

所以,为了回答你的问题,系统上的大多数数据包可能已经出去eth0(假设它是同一个子网)。

如果您设置alias界面,eth0.1(来自您的示例),任何程序都在所有接口上侦听,或者特别是eth0.1将能够接收该IP地址上的数据包。

答案 1 :(得分:0)

要添加辅助IP地址,请在接口名称上使用:分隔符。假设您已将eth0指定为11.22.33.44,并且您还希望它与11.22.33.55一起使用。那你就做:

ifconfig eth0:1 11.22.33.55

如果您不通过ip route命令触摸路由,则11.22.33.55将无法用作出站接口,除非您正在回答指向11.22的请求.33.55本身,所以还有两件事要做。

第一种方法是将您的网络服务器的收听地址设置为11.22.33.55,而不是'任何' IP或11.22.33.44。这取决于您的网络服务器,如果是apache,请查看Listen directive

第二件事,如果您使用域,则要设置DNS记录以指向11.22.33.55而不是11.22.33.44。请注意,因为根据目标端口,域名无法解析为其他地址,因此您需要为每个接口分配域名。另一种方法是直接使用IP地址11.22.33.44作为脚本内容,并仅使用域名作为网络服务器。

完成此操作后,您可以安全地使用tcpdump,iptables&物理和虚拟界面上的朋友。