我如何指定我的计算机使用哪个网络接口?

我如何指定我的计算机使用哪个网络接口?

我有 Ubuntu LTS 版本 22.04。

我需要弄清楚如何指定我的机器中哪个接口用于网络流量。这是一台 Thinkpad w541 笔记本电脑。我需要能够创建虚拟 (VLAN) 接口并让我的计算机使用它们而不是“正常”接口。

假设我需要能够访问计算机上的 VLAN 6。我在终端中有一个接口。如果我运行ifconfig,我会看到enp0s25.6具有有效网络地址的接口,以及正常enp0s25接口、无线接口和接口loopback

但我的电脑总是选择使用界面enp0s25

我怎样才能让它使用enp0s25.6虚拟接口?我使用高级网络设置 GUI 创建了 VLAN 接口。它没有提供任何实际使用它的选项。普通 GUI 设置没有提到任何有关 VLAN 的信息,所以我认为我需要终端。

答案1

发送网络数据包时,您的计算机会根据发送数据包的地址和路由表选择网络接口。

通常,您将运行 DHCP 协议来自动配置您的“主”接口,从中您的计算机将了解到它通过某个路由器连接到整个互联网,并且它将了解该路由器的地址。您也可以手动指定此路由器的地址。该设置通常称为“默认网关” - 我不知道 Ubuntu 是否也这样称呼它。

此信息进入路由表,可以使用命令查看ip route。典型的家用计算机将有几个特定路由,用于反映其直接连接的网络的特定地址范围,告诉它将发往这些地址的数据包直接发送到这些网络,然后是一个0.0.0.0/0反映整个互联网的条目,告诉它将发往任何地址的数据包发送到您的家用路由器。更具体的路由优先,因此0.0.0.0/0(最不具体的路由)不包括具有特定条目的直接连接网络。

如果多个接口使用 DHCP 或配置了默认网关,那么您0.0.0.0/0的路由表中将有多个条目,并且会任意选择一个(基于某种接口属性,并且它永远不是您想要的那个)所以您可能需要取消配置您不想使用的那些。

相关内容