图书馆和其他公共 Wifi 限制互联网访问某些端口,有时仅限于端口 80。我需要能够使用 ssh 和其他需要不同端口的程序。
我目前的解决方案是将网络绑定到手机上,完全绕过公共 wifi。但这样一来,所有流量都会经过手机,速度很慢。
有没有办法同时连接两个连接(通过蓝牙或 USB 连接到手机),然后选择哪些流量使用特定连接?理想情况下,所有内容都默认为一个连接,只有我手动配置的内容才会通过第二个连接(我的手机)退出。
我在使用 OSX 10.7.3 的 MacBook Air 上。
更新:
自然,我在发帖后找到了解决方案。连接到两个互联网连接,并确保“默认”连接在网络设置首选项窗格中的“设置服务顺序”菜单列表中的较高位置。单击手机网络连接的“高级”按钮,然后复制“路由器”IP 地址。然后在终端中输入“sudo route add [我们试图 ssh 进入的盒子的 IP] [用于手机连接的路由器 IP]”。
后续问题 1:如何才能轻松激活和停用此功能?有没有办法将这些特定路由配置为网络“位置”配置文件的一部分?还是我需要创建开/关脚本?
后续问题 #2:有没有办法根据目标端口而不是 IP 地址来执行此操作?路由不起作用。也许是某种本地运行的代理?
答案1
查看“route”。(转到终端并输入“man route”)。您可以强制某些流量流向特定接口
具体来说,route PRINT
与netstat -r
这显示了 tcpip 如何通过指定接口将目标 IP(及其子网掩码)路由到默认网关(以及到目标的跳数/度量)
例如:
route ADD someIp MASK 255.255.255.0 gatewayIp METRIC 1 IF {interfaceID}
每个接口都有一个 id,一共有四个。(使用ipconfig ifcount确切地知道,或者你可以使用网络设置-列出所有硬件报告以显示更易于阅读的相同信息列表。
本地主机 (lo0)、您的有线网络 (en0)、您的无线网络 (en1) 和您的电话 (??)。使用是否配置 查看每个接口的所有详细信息。
路由的接口 ID 是接口的索引。我马上就会回来介绍如何打印出来。嗯.. ipconfig 应该输出索引,但在 OSX 上却没有。仍在寻找...
更新:
在 OSX 上,该networksetup
命令可能有方法执行路由应该执行的操作。我个人对此并不熟悉,但它的选项都是不言自明的。