如何强制应用程序(如Firefox)使用某个网络接口?


20

我有两个接口:笔记本上的eth0和wlan0。

可能的用例:

  • eth0允许我访问Internet,而wlan0当前已连接到没有Internet连接的路由器。出于开发目的,默认情况下,我需要连接到wlan0,但是使用eth0进行浏览
  • eth0和wlan0都已连接到Internet。对于torrent应用程序,应使用eth0来提高速度,但为了笔记本的可移植性,SSH应该通过wlan0进行连接
  • eth0是有线连接,wlan0是无线连接。敏感数据应通过eth0进行传输,但其他流量也可以通过wlan0进行传输。

有没有一种方法可以强制应用程序(例如nc.traditionalfirefox)使用某个网络接口?example-wrapper eth0 program如果有这样的程序,也可以使用类似的包装器。如果可以在Firefox中(运行时)进行配置,那就太好了。如果可能的话,我想避免使用IPTables解决方案。


4
这也有助于多个互联网连接,其中一个在做洪流,而另一个在做冲浪。
iamgopal

您要基于协议/应用程序使用不同的路由,因此需要iptables。
若奥·平托

1
我不知道如果没有将第7层(应用程序)流量映射到特定端口的方法,或者没有基于某些更高级别的应用程序信息进行过滤(这需要进行流量检查)的方法,该怎么办?因此,虽然不需要iptables,但是任何涉及包装的解决方案都必须以某种方式与tcp或ip策略进行交互。我不知道如何在没有将流量定向到其他地方的第2层或第3层网络的情况下执行此操作。
belacqua 2011年

Answers:



1

您可以使用更复杂的连接标记和路由策略方法。
如果您的用户同时运行一种软件和另一种软件,则可以正常工作。
这样,您可以标记一个用户的连接并为其使用特定的路由表,而其他所有用户将使用默认的路由表。
了解所有内容的基本文档位于:http : //www.lartc.org/lartc.html
也是两个连接的示例,您可以在此处查看:https : //unix.stackexchange.com/questions/58635/iptables-通过不同接口设置标记路由不同的端口
您可以使用“所有者” iptables模块,该模块将标记连接以允许路由策略。


策略路由适用于不同的用户,但不适用于在一个用户下运行的应用程序(如OP中所述)。LD_PRELOAD似乎是要走的路(不是出于恶意程序/出于安全原因),也许有人可以详细说明Bob Lebins的帖子?
Lekensteyn

0

是一个示例解决方案。它使用SOCKS服务器,在当前计算机上设置以路由连接。每个应用程序应配置为使用每个服务器。


3
这看起来像HTTP代理,它是否可以与其他协议(例如两个netcat实例之间的连接)一起使用?
Lekensteyn 2011年

0

您还可以使用VMware工作站计算机共享不同的网络接口,我可以从一个接口下载很多内容,而将另一个留给我的Netflix使用。

您确实需要在VMware上同时设置ethX和wlanX,但是一旦配置完成,就可以下载或浏览了。

很顺利 您也可以使用防火墙绑定接口,这也很好用。


虽然它适用于此特定应用程序,但不幸的是,它无法与VM之外的其他应用程序一起使用,例如Firefox。
Lekensteyn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.