我使用多个网络接口(LAN 和无线),并且我注意到有一种方法可以更改首选接口的顺序。如何使用有线网络(安全地)工作、查看电子邮件等,并使用无线 VLAN 访问其他内容(否则会被端口和 Websense 阻止)?
答案1
诀窍是调整路由表(不依赖于目标端口或源应用程序,但依赖于目标主机)。这假设您使用的是 Linux 或 OS X(如标签所示)。
假设您的默认网关是 1.2.3.4,并且您有一个可以在 6.7.8.9 上路由流量的 vpn。如果您希望邮件流量通过 6.7.8.9 路由,只需执行
sudo route add mail.myserver.com 6.7.8.9
某些版本的路由可能需要在地址和下一跳之间添加“gw”关键字。如果您想通过该下一跳创建整个网络路由,只需为目的地添加 CIDR 表示法中的网络掩码,例如
sudo route add 192.168.0.0/24 6.7.8.9
如果要查看现有路由表,请使用
netstat -nrl
or
ip route list
如果您使用的是 Windows,“net route”将带您完成大部分操作,但语法完全不同。
答案2
如果您只想同时激活两个 NIC,则可以在“系统偏好设置/网络”中设置服务顺序,方法是选择网络设备列表下方的齿轮。拖放您想要的顺序。
例如,我的 MBP 上始终启用以太网和 WiFi,并将以太网设置为高于 Wi-Fi。由于我在工作中使用以太网,因此我使用代理设置设置了该 NIC,而 Wi-Fi 则没有。当我回家时,无需调整任何设置。您也可以使用 来从终端执行此操作/usr/bin/networksetup -ordernetworkservices
。
但是,为了让活动和应用程序都使用非默认设置,我很幸运地按照@Andor 的建议做了一些更简单的调整。如果我希望应用程序不使用 Ether,我会将应用程序的代理设置设置为我的 Wi-Fi 适配器的 IP 地址。它将使用该接口退出,从而绕过公司代理和监控服务器。因此,如果 Ether 的地址为 1.2.3.4,并且在服务顺序中位于 Wi-Fi(5.6.7.8)之前,我的应用程序代理为 5.6.7.8。
答案3
对于 Mac,我使用一个简单的解决方案。它实际上是 @Andor 解决方案的实现。安装代理并配置您的应用程序以使用它:
我安装了鱿鱼人
在配置中添加以下行。您需要指定将用于私人应用程序的 IP,而不是
x.x.x.x
:tcp_outgoing_address x.x.x.x
启动 SquidMan 并配置您的应用程序以将其用作代理。
我花了一个小时在不同的页面上找到这些信息,所以我希望它能帮助其他人更快地完成它。
答案4
您可能需要使用低级 IO 控制函数 (ioctl)。特别是:
ioctl( socket, SIOCGIFADDR, ... ); // Get network interface address
和
ioctl( socket, SIOCSIFADDR, ... ); // Set network interface address
看本手册页更多细节。