本帖最后由 hothduser 于 2011-3-28 16:27 编辑
你这个要在路由上解决,TCP的3次握手决定了单个连接的IN/OUT IP必须是一样的(至于从哪块网卡走是另外一回事)。
bind_ip是指本地监听ip,比如你有2个IP,分别为1.2.3.4和2.3.4.5,µTorrent 监听端口12345,如果bind_ip为1.2.3.4则所有发到1.2.3.4:12345的数据都会被µTorrent 收到,而发到2.3.4.5:12345的数据不会被µTorrent 收到(即使数据到达了你的电脑,也会被操作系统抛弃掉,因此也会占用运营商提供给你的带宽)。换句话讲,bind_ip解决的是如果数据包已经到达你的电脑,是否将其给µTorrent 的问题。
outgoing_ip是指你只使用指定接口发送数据。假设你有两个接口分别是A和B,并指定A为outgoing_ip,那么所有你发起的连接的源IP都是A,因此对方的回复也是发到A上的(假设你没有在ISP处修改路由表),由于你同时也是用A连接的种子服务器,因此当别人主动连接你的时候也是连接的A。另一个接口也就闲置了。
再者,TCP连接本身是双工,即一个连接可以同时上传下载,而你只能做到指定连接从指定接口走。因此双网卡 用一个传入 另一个传出及只强制一个传入 2个传出均不可行。
不过你也不是什么都不能做,上传有两种,一种是你自己主动发起连接,连接后上传,另一种是由别人连接你,然后上传,对于第二种上传,你只能提供一个IP供别人连接,因此这种上传只会在一个网卡上出现,而第一种上传你可以自主选择从哪个网卡发起,不过这种连接发起的主要目的是下载,上传只是顺便。你可以通过控制第1/2种上传,来控制不同网络接口的上传负载(控制主动发起连接的上传同时也会影响下载负载),如果你使用了qos,则可以在不影响下载的前提下控制上传 |