我怀疑我的ISP有相当差的对等安排,导致我经常访问的几个站点访问缓慢。 我通过将我的networkingstream量代理到我放置在附近某个数据中心的服务器,并在浏览体验上看到了巨大的改进,从而确定了这一事实。 所以我很确定,我的最后一英里是相对干净的,给我的广告一样多,而从我的ISP的上行链路是造成问题。
我希望代理向前迈进一步,通过我的服务器路由所有本地stream量,因为数据中心的对等安排似乎要好得多。 我该如何做到这一点? 我想到了两种可能的方法:
我想要一些反馈,哪种方法会更好。 我的服务器正在运行Debian,我的家庭路由器在Linksys WRT54GL上运行Tomato固件,而家里的PC运行的是Ubuntu的变种。
谢谢! 皇
选项1是不可能的,没有办法(这将工作)告诉你的ISP路由你的数据包不同。
选项2将工作。 只需build立一个openvpn连接,通过ISP的默认网关(通常用于所有stream量的网关)为您的服务器设置静态路由 ,然后将您的默认网关设置为您的服务器的openvpn端点IP。 您可能需要通过ISP的网关向目标IP(DNS服务器)添加额外的静态路由,以获取某些服务(例如DNS服务器)。
番茄固件可能更好,但正常的蹩脚路由器固件通常不允许您正确configuration路由。 有时他们似乎这样做,他们不这样做,因为他们将默认路线插入不能更改的地方,因此无法控制。
不过,除此之外,我认为你应该把你的服务器设置为你的路由器的默认网关,并启用服务器上的IP转发(/etc/sysctl.conf)。 使用OpenVPN基本上是一样的,除了它也encryption它; openVPN以和手动相同的方式改变你的路由表。
我不会selectOpenVPN的原因之一,是因为当你configuration它,以便所有的互联网stream量路由(通过推“redirect网关def1”和推“dhcp-option DNS xxxx”),是它造成一些烦恼。 例如,本地DHCP服务器不再可到达,所以当您的租约结束时,您的连接失败。
此外,还有一个特殊的路由将所有的stream量redirect到您的服务器的IP地址,以便通过TUNx设备。 这意味着您的服务器不能再通过其原始IP访问。 通常这是没有问题的,因为你可以使用VPN'ed地址来访问它(VPN服务器可以在一个特殊的地址上),但是如果你有一个运行在其上的web服务器,它必须在你的IP地址上DNS Alogging,否则虚拟主机将无法工作。
您需要某种IP隧道来确保stream量在您位于同一地点的服务器上结束,使用OpenVPN或类似服务器可能会更容易一些。
如果您的家庭路由器和数据中心之间存在路由器(最可能),那么只要将家庭路由器上的默认网关设置为您的数据中心服务器,就会导致您的家庭路由器无法发送任何stream量(如“下一跳“不会在本地连接)。
编辑:
对某种封装的需要是,中间路由器不会知道你想要通过你的服务器的数据包。 通过使用任何隧道封装(IP-in-IP,GRE,成熟的IPSEC VPN,SOCKS或其他),最外层的数据包将发往您的服务器,封装后的帧可以被提取并发送。
您可能需要在您的服务器上对数据包进行NAT转换,以确保返回的数据包走相同的路线,绕过您的ISP的对等安排(我假定您在这里拥有合适的吞吐量)。
通过使用您的服务器作为Web代理,build立了两个TCP会话。 一个是从你的工作站到你的服务器,另一个是从你的服务器到Web服务器。