是否可以合并我的ISP和手机Internet访问?我想拆分下载和上传[重复]


12

我想使用我的ISP仅用于下载,而我的手机4G连接仅用于上传。这是因为我的ISP的上传速度很慢,但是下载还可以,而且我的4G上传又好又免费(我只为下载付费)。

一台PC,两个连接:用于下载的ISP和用于上传的4G。这样做的话,我将支付与今天相同的价格,但是将我的上传速度从0.1 Mbit / s增加到大约60 Mbit / s。


是的,它是重复的,还有更多类似的问题,包括我几个星期前提出的问题,但它们似乎从未得到直接的答案!
左撇子

因此,由于他们似乎没有得到直接的答案,所以我让这个想法活了下来。我看过其他人,即使经过1000次观看,他们也没有解决问题。
FreddyJoe 2015年

1
@Lefty:如果您想提请注意您的问题,请提供赏金。
卡兰2015年

没有某些软件可以执行此操作吗?我觉得我读了大约一个月的相关内容
乔恩(Jon)

1
您知道,这个问题实际上不同于该问题所链接到并声称是重复的问题。这些是关于一般合并连接的问题,这个问题远不止于此。
Matt H

Answers:


8

尽管实际上不可能分开连接之间的上载和下载(如其他答案中的详细描述),但还是可以进行手动解决。

您可以操纵默认连接,并根据要启动的任务进行切换。Windows上的默认连接是第一个连接的接口,其顺序由Metric计算(它倾向于将无线放在电缆上方)。

您可以在网络连接的高级设置中使用手动顺序轻松地覆盖指标:如何在Windows中更改默认连接。(从XP到8.1的工作原理相同,差异不大或没有差异)

大多数现代程序使用系统提供的默认连接,建立连接后(应该)将其保留在该连接上。通常,这意味着程序将使用启动时默认的连接。通过在打开连接之前切换默认连接,您可以根据任务切换连接,并保持两个连接同时打开。

请记住,某些程序(例如下载/上传管理器)将按任务而不是按会话打开连接,因此您的里程可能会有所不同。


8

这是不可能的。确认是传输控制协议的组成部分。如果您在两个接口之间分别拆分传入和传出数据,则将固有地禁用该协议的确认组件。

TCP是面向连接的协议,这意味着建立并维护连接,直到两端的应用程序完成消息交换为止。它确定如何将应用程序数据分解为网络可以传递的数据包,如何将数据包发送到网络层以及从网络层接受数据包,管理流控制以及(因为它旨在提供无错误的数据传输)处理重发丢失或乱码的数据包以及所有到达的数据包的确认。在开放系统互连(OSI)通信模型中,TCP覆盖第4层的一部分(传输层)和第5层的一部分(会话层)。

路由器可以在单独的接口之间实现网络负载平衡,但是通常在哈希上运行。这意味着将基于散列算法在给定的接口上建立连接,并在该接口上维护该连接直到终止。即使使用昂贵的路由器,也需要每个接口来维持建立的连接,直到完成。


增加:可能,但是实现的范围使其不切实际。此外,即使您设法将所有流量转移到移动网络,您认为距ISP更新服务条款还需要多长时间?某处可能已经有一项合理使用政策。这是要求。

  • 通过移动系链发送的流量的欺骗源IP与通过您的ISP连接发送的流量的欺骗源IP匹配,以便它通过ISP con返回。可以使用iptables完成。
  • 通过移动Teather路由本地流量。类似于:“路由添加192.168.0.0/16掩码255.255.0.0 [移动网络的外部IP]。也许运行DDNS,以免您不得不经常更新它。

http://lartc.org/howto/lartc.rpdb.multiple-links.html

https://sandilands.info/sgordon/address-spoofing-with-iptables-in-linux

如果您想扩大ISP的规模,可以考虑使用BGP进行非对称路由。


11
这是鲍尼 在这个答案中几乎没有什么是真正错误的,但是所有这些都是完全不相关的。
Ben Voigt,2015年

1
某种形式的隧道解决不了吗?确认仍然必须沿不希望的方向进行,但大多数数据不需要这样做。而且通过UDP进行隧道传输甚至可以避免确认,对吗?
Artur Gaspar 2015年

1
@ArturGaspar:确认只是设置了ACK标志的TCP数据包,它们遵循与所有TCP数据包相同的规则。并且没有“必须朝不希望的方向前进”。IP数据包就像信封一样-您可以写回信地址,将其带到任何邮局,然后将其放入框中。不必将它们放在自己的盒子里-想想度假时会寄出多少张明信片。IP数据包的捕获是反向路径过滤,它专门用于检测和防止这种情况(请注意,纸质邮件上也可能存在回信地址欺骗)
Ben Voigt 2015年

1
该声明中的主张是:“如果在两个接口之间分别拆分传入和传出数据,则将固有地禁用协议的确认组件。” 是完全错误的部分之一。TCP确认在端点之间起作用,并且数据包采用的路径根本无关紧要(只要不超过生存时间),并且当然不必匹配。
Ben Voigt

1
无法拆分传入和传出数据?带有拨号上传功能的卫星宽带下载在澳大利亚已经销售多年。Google“具有地面传输功能的单向接收”
JumpingJezza,2015年

4

可以同时使用两个Internet来共享下载/上传的负载,但始终只能按连接进行。因此,一个TCP(或UDP)连接只能通过一个链接进行。在另一个答案中也提到了这一点-对于传出的TCP数据包,您必须接收确认数据包,并且这些数据包必须通过同一接口。

例如,您可以在进行大型youtube上传之前手动更改路由表,以通过互联网以更快的上传速度转移所有youtube流量,然后再将其改回。但是,由于youtube使用许多不同的IP地址(在IP上而不是在主机名上进行路由),这将非常困难。但是对于某些公司的FTP服务器,它是可行的。

对于从ISP获得IP地址的所有家庭Internet访问都是如此。因此,在第一个ISP上获得IP 1.2.3.4,但是在手机上获得电话网络运营商的IP,例如5.6.7.8。整个连接(传出和传入数据)必须仅使用这些IP地址之一。

对于商业和服务器托管Internet,您可以获得一个IP地址,该IP地址独立于ISP,因此您可以同时使用更多Internet连接。


您始终可以使用本地HTTP或SOCKS代理,而不用手动编辑路由表。这样,您可以简单地通过浏览器插件(例如FoxyProxy)将两个连接完全分开。
sleblanc 2015年

有趣的建议,但我认为您不能在代理配置中指定源ip(因为传出网络接口由源ip选择)。
Marki555

2

您将必须具有覆盖(隧道)连接,该连接支持上游和下游流量的不同端点。我知道的唯一本地支持的协议是LISP(定位符分隔协议)。如果您可以在附近找到LISP ISP,那么除了当前连接之外,您还可以从他们那里购买服务。不过,它可能不是免费的。


2

从技术上讲,此功能固有地内置于基于IP(必须具有可公开路由的IP地址)的所有网络中,并且仅通过更改客户端路由表即可激活。用于ISP自己的本地网络的最可能的流量将继续通过该接口发送,而所有其他流量将通过默认网关流出。

必须进行匹配以进行确认的“源” IP地址和其他所有工作都是根据通过其发送数据的套接字来选择的,除了接口受限制的套接字的异常情况外,它根本没有任何事可做。与用于传输数据的接口。(与说源IP选择传出网络接口的评论相反,实际上只有路由表才有影响)。

但是,路由仅依赖于目标地址已被用于恶意目的(数据包欺骗是反射攻击的重要组成部分),因此大多数运营商已将其路由器配置为实施反向路径过滤,并丢弃源IP所在的数据包。地址与路径不匹配,因为它们被认为是欺骗的。

如果您没有公用IP地址,则除了反向路径过滤之外,NAT / PAT层还会阻止此操作(您的计算机使用的源IP地址在其他网络上将毫无意义,并且不会如果数据包没有通过NAT / PAT路由器传出,请正确重写)。

实际上,对于大型多宿主网络,确实会发生非对称路由。重要的是,大多数反向路径过滤的实现都要求存在与包到达的接口相匹配的路由。它不一定是首选路线(成本指标最低的路线)。

因此,您要做的“全部”就是说服您的互联网提供商(包括上游的提供商)要么(a)禁用反向路径过滤,要么(b)设置非首选路由。这不会发生,核心路由器不能处理30亿条路由,以便为每个唯一的公共IP地址分配一条。因此,对于小于/ 20的任何块,只有在内部存在所有本地子网路由的ISP内部,才具有路由。


如果碰巧他的ISP也是他的手机4G计划的提供者,也许无法在不同来源之间进行过滤?
安赫尔

@Ángel:完全有可能,但是如果同一家公司同时提供这两种服务,我怀疑这将在推广这种功能(毕竟,卫星互联网已经使用了非常不同的上载和下载路径,并且都在同一ISP的控制之下)
Ben Voigt 2015年

仅当他们正式支持这种配置时。这里的大多数电话公司都提供电话(呼叫和数据)和住宅ADSL。根据(缺乏)这两个网络的隔离,它可以工作[一段时间],并且我希望这样的设置,打破任何一天(但弗雷迪可以享受劈在那之前☺)
安赫尔

2

简短的答案是:在95%的情况下,它无法完成,而您属于该95%的情况。

首先,让我说说分别路由和上载路由是没有意义的,因为即使是繁重的下载任务也需要一些数据包流回到源,任何下载都需要一些上载流(对于UDP而言,这不如对TCP,但没关系)。

如果我们通过与用于下载部分的NIC不同的NIC引导大多数下载连接的上载,则下载源将看到对其数据包的回复源自与之不同的IP地址。发送数据包;基本的安全功能是忽略声称与给定连接有关但源自第三方地址的数据包。因此,会话的上载部分将被删除,并且连接将被终止。这与ISP及其服务无关。如果两个局域网中的一个试图通过在同一连接中使用两个不同的NICS连接到IP地址,那么即使在同一局域网中的两台PC之间也是如此。 。

这就是为什么我们谈论连接而不是上载/下载的原因。但是这样一来,您可能会重新构建您的问题,如下所示:我是否可以拥有一台PC,该PC的两个NIC都已连接到网络,而两个NIC分别用于两个连接,比如说像电子邮件这样的缓慢而乏味的工作的慢速连接,还是像网页下载这样的快速过程的快速连接?

这个问题的简短答案是:在Windows中,* Nix(包括MacOS)和Android,在Linux中,可以。

在Windows(任何版本),* Nix和Android中无法执行此操作的原因是,任何路由表都只能具有一个默认网关(*即*将所有未发送到局域网的所有数据包发送到的地址),并且这些操作系统只能处理一个路由表:因此只有一个网关。

相反,为了将不同的应用程序分配给不同的接口,您需要两个不同的功能:一个功能是两个同时运行两个路由表,第二个功能是将应用程序绑定到两个路由表。在撰写本文时,只有Linux内核(领先竞争对手数年)具有这些功能。* Nix内核通过明智地使用其防火墙pfsense来部分补偿此问题,但是并未获得完整的结果。

同时运行两个路由表的能力(称为策略路由基于源的路由)意味着数据包根据其IP地址进行不同的路由。如果要构建路由器,这是一项非常有用的功能。

但是,为了根据应用程序使用不同的NIC(从而使用IPS),您需要使用网络名称空间(一种Linux内核功能),它允许您使用其自己的网络堆栈构建单独的外壳。现在,将在此单独的外壳程序中运行的进程全部根据网络名称空间的路由表进行路由,而不是根据主PC的路由表进行路由。

这当然是虚拟化的一种形式,尽管它比Linux容器要弱,更不用说虚拟机了。但这是使用一台PC来通过不同接口路由不同进程的真实方法。

综上所述,在Linux中(并且仅在Linux中),您可以运行一个单独的网络名称空间,例如,该名称空间通过VPN连接到您的工作地点,以便您访问工作资源;如果运行的是Firefox,您似乎位于工作地点,同时在网络名称空间之外运行Google Chrome浏览器,因此(在Chrome浏览器上)似乎是在家办公。


2
“声称与给定连接有关,但源自第三方地址” ...数据包中的源地址是唯一使其与给定连接有关的东西,而反向路径过滤并不关心是否它丢弃的数据包是否面向连接(大多数欺骗攻击针对的是无连接协议)。
Ben Voigt,2015年

“这与ISP及其服务无关。它甚至发生在同一LAN上的两台PC之间。”-与ISP有关。您可以在自己的计算机上禁用反向路径过滤(如果您正在运行首先安装了Linux的操作系统)。问题是您的ISP(或其上游提供商)正在使用它。
Ben Voigt,2015年

0

仅当您可以从两个提供程序访问/路由单个IP地址时,才可以在不同的提供程序之间拆分相关的连接。该IP通常会作为较大地址块的一部分通过BGP提供给您。而且,如果您拥有该功能,则可以使用BGP中称为路径优先和本地优先规则的功能对BGP进行此操作。

即使您可以在ISP和手机提供商之间进行安排,以使您的IP可以通过两个网络访问,但与两个连接相比,您可能要花更多的钱。

另一方面,如果您实际上要问的是,是否可以支持4G连接进行主要的上传会话,例如使用ftp / sftp或http上传文件时。为了使正常的网络浏览具有该流量,请使用您的ISP,那么我认为答案可能是正确的。但是也许要工作,您必须能够将会话分类为主要上传会话或下载会话。由于ftp和http等协议可用于上传或下载,因此无法通过端口号来确定。因此,唯一的选择是查看数据中间流。到那个阶段,由于数据已经在流动,因此将做出决定。因此,这无法实现自动化。

所以,就您而言。没有。(至少在您不知所措时)。


0

您需要控制的主机可以从两个连接访问。

设置两个到该主机的VPN隧道,每个隧道都从您那侧的不同接口发出。一旦有了它,就好像拥有两条以太网电缆。您可以使用绑定将它们作为更大的电缆一起使用,然后尝试通过它传递流量。

现在,我不知道您是否还能从中真正获得很多性能(移动网络的延迟远远高于宽带网络的延迟,这可能会引起问题),但是您应该尝试一下。

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.