我可以在 Ubuntu 下进行 iPhone USB 网络共享,它将被识别为 eth1 接口(我还有一个 eth0 互联网连接)。
我想要做的是,当 eth1 启动时,我想让它成为默认网关,如果 eth1 关闭,则返回使用 eth0 作为默认网关。
我该如何实现?我想要适用于 Windows 和 Ubuntu 的解决方案。
[编辑] Ubuntu 下的一个折衷解决方案是,我可以使用网络管理器将我的一个接口设置为“仅将此连接用于其网络上的资源”。 (在选定的连接下-> IPv4 ->“路由”)
答案1
最终找到了一些可行的解决方案:
- 对于 Windows,我们需要禁用默认本地连接的自动度量设置。因为默认连接的度量是 20,但我的 iPhone 网络共享的度量是 40,这使其不会成为默认网关。
要更改默认本地连接的度量,请尝试:打开本地连接的“属性”->“Internet 协议版本 4 属性”->“高级”->取消选中“自动度量”,并将其度量更改为大值,如 60。
连接iphone网络共享后,用“route print”命令检查,确保iphone的路由有较小的metric值,否则用上述方法将本地连接的metric值改大一些。
- 对于 ubuntu,一个可行的方法是使用网络管理器将本地默认连接设置为“仅将此连接用于其网络上的资源”。(在选定的连接-> IPv4 ->“路由”下)。这样,当 iphone 插入时,它将成为默认网关。
这样,默认连接只能访问本地网络。但和办公室一样,所有互联网访问都是基于内部代理,因此对于我的 Linux 环境来说,这是可以接受的。
答案2
我认为Windows中的一个解决方案是设置“网络适配器的绑定顺序”:
对于 Windows XP:http://www.windowsreference.com/windows-2000/change-network-adapter-priority-in-xp2000/ 对于 Windows Vista/7:http://www.windowsreference.com/windows-vista/change-network-adapter-priority-in-vista/