我想在教室里使用 Ubuntu 10.10 服务器,这是一个计算机实验室,其带宽由本地有线 ISP 提供。没问题,虽然学校网络有一台我想使用的 IP 打印机。我无法通过有线 Internet 访问打印机。但是,我有两个网卡。
怎么可能同时使用两个网络?
eth0(静态 192.168.1.254)插入四端口路由器 192.168.1.1。四端口路由器的公共端是有线电视公司提供的互联网。我还将教室工作站插入了开关。交换机插入四端口路由器。整个教室都连接到有线互联网。
另一个网卡 eth1 可以插入墙上的以太网插孔吗?它使用学校网络,我可能会通过 DHCP 收到一个像 10.140.10.100 这样的 IP 地址,而打印机可能在 10.120.50.10 上。
我正在考虑在服务器上安装打印机,以便可以与工作站共享。但这是如何工作的?我可以将 eth1 插入学校网络并访问两个 LAN 吗?
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth1
iface eth1 inet dhcp
我在家里做了一个快速测试设置,有一个 10.0.1.0 网络和一个 192.168.43.0 网络(第一个是我常用的以太网 LAN,第二个是我的无线电话。)我可以 ping 任何一个网络都没有问题,所以我会期望计算机能够在两个网络上找到打印机,因为它会自动采用正确的网络接口。我有 99% 的信心相信你不会有任何问题(不要起诉我,以防其他 1%)。
我假设您没有在 Ubuntu 机器上本地设置任何路由。
如果您的目标 IP 地址与直接连接的接口共享地址空间,则默认情况下它应该路由到正确的 IP。
您将能够看到您的接口“拥有”哪些网络
ip route show
。例如,
在这种情况下,
192.168.1.x/24
地址 (eth0) 将是相同的网关192.168.1.x/24
。10.x.x.x
地址将成为其子网掩码下所有内容的网关10.x.x.x
。这实际上是您在培根的答案中看到的。它显示了网关和目标 IP 地址在同一网络中的 ping 测试——网络掩码完全匹配。192.168.43.102
与接口在同一/24
网络中(如255.255.255.0
网络掩码所示)。唯一的问题是对其他子网的混淆——连接到出站 ISP 路径的接口需要成为所有未直接连接的路由的“最后网关”。
你可以让它工作,但你应该做一个快速测试,以确保你可以获得你需要的资源。您可能会发现需要使用
route add
来添加默认路由。只是为了完成其他答案:如果您的 PC 无法连接到您的设备,您可以通过添加路由“强制”网络设备使用特定地址和/或子网,而不会弄乱默认路由。
在为我的一台 Wi-Fi 设备添加特定路线之前,这是我的路线:
请注意,它们都使用相同的子网,并且 ping 192.168.0.17(仅限 Wi-Fi 网络上的设备)失败(不确定这是否正常)。
使用
sudo ip -4 ro add 192.168.0.17 dev wlan0
,我添加了一个指定wlan0
应该用于 192.168.0.17 的路由。我现在可以使用 wlan0 接口连接到该主机,而其他一切仍然通过 eth0(这要快得多!)。删除新添加的路由就像替换为一样
add
简单del
。似乎也可以从图形网络管理器管理路由,尽管使用命令行要快得多。
我相信您在这里可能遇到的问题是,像学校这样的大型机构网络可能会使用多个子网。默认情况下,第二个网络接口只会成为 DHCP 分配给您的子网的首选路由。
您应该使用以下命令检查 DHCP 分配给 eth1 接口的子网掩码是什么:
要检查打印机是否属于 DHCP 为您分配的同一子网,您可以使用以下在线检查器:
https://tehnoblog.org/ip-tools/ip-address-in-cidr-range/
只需在第一个框中输入学校打印机的 IP 地址,在第二个框中输入包含上述命令中的 /number 部分的 IP 地址。
如果此工具显示打印机 IP 地址不在 CIDR 范围内,那么这就是您遇到的问题,您需要通过 eth1 接口手动添加静态路由。
为此,您可以通过使用以下命令检查 DHCP 服务器分配给您的默认路由来确定您需要在学校网络上使用的网关。
然后要将路由添加到打印机,您可以使用以下命令:
您可以节省每次都这样做,因为 /etc/network/interfaces 允许您配置要在网络接口启动时运行的命令,使用 up 选项后跟要运行的命令。如果您需要运行多个命令(例如,如果您需要添加多个路由),则可能会多次包含此选项。这是一个带有一个命令的示例:
请注意,这只会为打印机添加一条路由,如果您需要访问学校网络上的其他内部服务,您可能需要更宽的路由或多条路由。如果是这种情况,我建议与您学校的 IT 部门联系,因为他们应该能够告知您哪些地址范围应该在学校网络上可路由,以及每个地址范围使用哪个网关。然后,您可以根据需要使用以下任意数量的命令添加它们:
再次通过将它们添加到 eth1 的 /etc/network/interfaces 配置的末尾以下列形式自动执行此操作: