教你玩自建“IPLC” 轻松玩落地 – iCodex’s Blog

教你玩自建“IPLC” 轻松玩落地 – iCodex’s Blog

给IPLC打双引号,是因为这个根本就比不过阿里企业网CEN,充其量也就是类似MPLS、VXLAN的东西,在条件允许的情况下也能得到类似iplc的体验。

IPLC与MPLS的区别
图片引用:http://s91presales.blogspot.com/2008/07/iplcmpls.html

受到条件制约比较明显,首先你国内服务器的ISP对隧道不太敏感,也就是qos等级并不高,而且你国内到你国外落地的物理距离尽可能近一些,延迟能控制在30ms以内,不然体验不会太好。另外CPU限制不要太死,毕竟打隧道你得加密算法的支撑,cpu太差就跑不满了。

————————— 分割线 —————————

事先说明

首先是利益无关,只是自己用的nat中转鸡一到晚高峰网络就很烂,然后看了一下iplc,发现也就是内网方案,所以就想用自己的服务器折腾玩玩,纯粹玩玩而已的啊,建议大家不要轻易尝试,毕竟在中间建立隧道的过程中,虽然有这个加密,但端口暴露和流量模型是铁定能被监控到的。别玩火**了哟

以下都是不正经言论和不正经测试,找点事情玩玩而已,要玩真正iplc的,阿里企业网CEN向你招手~ 不废话了。。。

————————— 分割线 —————————

需要的有:

1. 国内服务器一台,口子最好大点
2. 国外落地用vps一台
3. 你得会玩kvm,会用esxi/proxmox也是极好的
4. 你得知道iptable和策略路由的基础

————————— 分割线 —————————

流程:
1. 首先要建立国内和国外服务器间的隧道,你可以用wireguard或n2n,或者vpncloud,但一定是要2层或3层的网络,不能是frp之类端口打洞的东西,也就是要建立一个虚拟局域网,让国内和国外两台服务器能在一个网段下,这里建议用wireguard,加密强度高一些。zerotier应该也可以玩,但安全性我不清楚,如果要用,你最好顺手部署一下moon节点加速一下。这个应该不用截图说明,不懂的去wireguard看教程。另外你还得在国外的服务器上开启ip转发,对这个子网做一个MASQUERADE转发。

echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.128.0.0/16 ! -d 10.128.0.0/16 -m comment –comment “wireguard” -j MASQUERADE

2. 在国内服务器上,安装一个proxmox,然后开几个小鸡,注意给这些小鸡分配vmbr1的网络,vmbr0就还是做普通的侨接到eth0接口就好,这个不用理会,我们这个例子中不使用到。

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x.png” alt=”” width=”1840″ height=”796″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x.png 1840w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-300×130.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-1024×443.png 1024w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-768×332.png 768w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-1536×664.png 1536w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-1200×519.png 1200w” data-sizes=”(max-width: 1840px) 100vw, 1840px” sizes=”(max-width: 1840px) 100vw, 1840px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x.png 1840w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-300×130.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-1024×443.png 1024w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-768×332.png 768w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-1536×664.png 1536w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-220010@2x-1200×519.png 1200w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

3. 最后在国内服务器上,做一个最简单的策略路由,记得要开启ip转发

echo “1” > /proc/sys/net/ipv4/ip_forward

然后标记vmbr1网络的地址,设置默认路由,这里是10.10.10.0/24

ip rule add from 10.10.10.0/24 lookup 10
ip route add default via 10.128.0.6 table 10

然后做一个转发,把这个子网的流量都从你的wireguard接口出去

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 ! -d 10.10.10.0/24 -o wg0 -j MASQUERADE

4. 补充说明,完成上述3步之后,其实你的小鸡已经能出去了。但是你还得开个端口方便你连接小鸡的ssh不是?你不可能总是用proxmox的控制台的。所以你要把目标小鸡的ip再给定个路由表,不然你做端口转发时,这台小鸡的ip默认是走wg0接口的路由表。 在我的例子中,vmbr1网段是10.10.10.0/24,母鸡的对应的ip是60结尾,所以命令:

ip route add 10.10.10.0/24 via 10.10.10.60 table 1

然后你再做个端口转发到这台100小鸡的22端口就好了。另外再分配几个端口给这个小鸡用。有富裕ip的同学请直接给ip 至此,你就可以通过ssh连接你国内服务器对应小鸡22端口,实现类似iplc的效果。 实际落地是在你国外的服务器。

————————— 分割线 —————————

我自己的不正经测试结果如下:

测试数据1:

国内使用的服务器位于深圳,不是IDC机房,就放在公司里面的小机柜,走的是普通的电信家宽线路,qos非常严重,上行10M,下行100M

国外落地的服务器位于澳门。国内过去走的是CN163,比较可惜,没有CN2加成。

直接连接小鸡的转发22端口,这里是20022端口,登录进去之后,执行mtr www.google.com

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x.png” alt=”” width=”1010″ height=”754″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x-300×224.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x-768×573.png 768w” data-sizes=”(max-width: 1010px) 100vw, 1010px” sizes=”(max-width: 1010px) 100vw, 1010px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x-300×224.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-221651@2x-768×573.png 768w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

然后下载测试,这里很迷,直接下载国外服务器的速度反倒没有隧道的快

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x.png” alt=”” width=”1010″ height=”744″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x-300×221.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x-768×566.png 768w” data-sizes=”(max-width: 1010px) 100vw, 1010px” sizes=”(max-width: 1010px) 100vw, 1010px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x-300×221.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224152@2x-768×566.png 768w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

下载其他测速文件

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x.png” alt=”” width=”1010″ height=”828″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x-300×246.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x-768×630.png 768w” data-sizes=”(max-width: 1010px) 100vw, 1010px” sizes=”(max-width: 1010px) 100vw, 1010px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x-300×246.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224055@2x-768×630.png 768w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

speedtest-cli下载,测试了多个节点,多在20M下行,5M上行的样子

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x.png” alt=”” width=”1010″ height=”1220″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x-248×300.png 248w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x-848×1024.png 848w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x-768×928.png 768w” data-sizes=”(max-width: 1010px) 100vw, 1010px” sizes=”(max-width: 1010px) 100vw, 1010px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x-248×300.png 248w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x-848×1024.png 848w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-224728@2x-768×928.png 768w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

测试数据2:

苦于没钱在国内搞个服务器了,所以这个测试就只是为了验证这个方案的可行性

连接用的服务器位于西雅图,1G端口,qos是不存在的了

落地用的vps是灵车anynode,好像是在加州吧

直接mtr www.google.com

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x.png” alt=”” width=”1010″ height=”800″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x-300×238.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x-768×608.png 768w” data-sizes=”(max-width: 1010px) 100vw, 1010px” sizes=”(max-width: 1010px) 100vw, 1010px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x-300×238.png 300w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225224@2x-768×608.png 768w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

下载测试

//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x.png” data-src=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x.png” alt=”” width=”1010″ height=”1276″ data-srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x-237×300.png 237w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x-811×1024.png 811w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x-768×970.png 768w” data-sizes=”(max-width: 1010px) 100vw, 1010px” sizes=”(max-width: 1010px) 100vw, 1010px” srcset=”//cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x.png 1010w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x-237×300.png 237w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x-811×1024.png 811w, //cdn.icodex.org/wp-content/uploads/2020/02/WX20200208-225507@2x-768×970.png 768w” data-was-processed=”true” class=”” style=”max-width: 100%; margin: 0.5em auto; display: block; height: auto;”>

speedtest就没测了。这个小鸡安装上speedtest-cli死活跑不了,不知道啥球原因。

————————— 分割线 —————————

安全性上,在隧道创建时就已经有算法加密了。 比如你如果只是为了科学上网或者是想打游戏,或者说你有两台相当牛逼的服务器,延迟能做到低于10ms,还没什么qos,你tm又不想安装什么v2客户端程序,这时候你就不用再在上面跑什么v2什么,直接跑个带密码验证的s5开socks5就行啦。然后打开你的游戏,选择socks5代理就可以愉快玩耍啦。

总体来说,这个跟真正的iplc是没法比的,这个就是个隧道打过去,如果你两边的服务器物理距离够近,延迟够低,跳点够少,qos不严重,是可以随便玩玩的。

另外你也可以在国内找个带硬防的服务器,再在国外找个打不死的,好像GCE就打不死(我不确定)。你就可以通过这个方式,安心落地。