拯救阿里云国际!使用N2N加密传输TCP/UDP数据一例

N2N 2022/05/09

阿里云国际香港VPS,被针对的欲哭无泪,几乎是无差别的阻断(主要是TCP端口阻断)。

但是又不想轻易放弃(主要是图便宜 :二哈: ),于是就想着怎么样能够让它还能发光发热。

针对无差别的TCP阻断,其实可以尝试的方法有很多,本文主要目的就是水一篇博文,利用我所熟悉的N2N来解决。

原理

N2N其实可以看作是一款轻量型的VPN组网工具,快捷轻量化地建立虚拟局域网

这里还可以选择同样轻量化的 tinyfecVPN ,只不过tinyfecVPN只能 1v1 的组网,N2N就不存在这个问题

我们可以利用N2N来加密数据传输(N2N包含若干种数据加密及压缩算法),比如可以在通过N2N从家里SSH到公司的服务器上。如下图:

注:以上只是其中一个模型:Supernode同时也是edge

Supernode可以运行在其他服务器上,承载业务端仅运行Edge即可(但在两端无法P2P的情况下,需经过Supernode中转,延迟速率质量会受到影响)

服务端

CentOS 7 x64

1.安装N2N

参考:使用N2N搭建虚拟局域网联机游戏(服务端)

2.启动Supernode

supernode -p 9527 -f

可选

可以在这一步骤加入 udp2raw ,参考 N2N使用udp2raw绕过UDP屏蔽或QoS

因为这里的示例是supernode和edge在一个服务器上,按理并不存在UDP阻断的情况

但由于udp2raw是 C/S 架构,需要双边运行,所以如果客户端需要udp2raw,那服务端也得运行

3.启动Edge

edge -a 192.168.9.1 -c bugxia -l 127.0.0.1:9527 -k asdf1234 -A4 -z2 -r -f

使用 ChaCha20 和 zstd 分别作为数据加密、压缩算法

也可以加入 -H 参数,加密数据包头,让数据传输更安全

#加密算法(不指定时,默认为AES算法)
-A2 = Twofish
-A3 = AES
-A4 = ChaCha20
-A5 = Speck-CTR
#压缩算法(不指定时,默认关闭)
-z1 = lzo1x
-z2 = zstd

客户端

1.安装N2N

参考:EasyN2N

2.启动Edge

edge -a 192.168.9.2 -c bugxia -l 77.77.77.77:9527 -k asdf1234 -A4 -z2 -r -f

如果本身需要运行多个edge,需要先 安装多个Tap-Windows 虚拟网卡,然后使用edge参数 -d "网络连接名称" 来指定

如果服务端运行了udp2raw,客户端也得运行

测试

1.TCP Ping端口延迟

2.iPerf TCP 测试

扩展

上文仅仅以SSH业务为例,除此外还可以利用N2N加密传输任何TCP/UDP数据

比如远程桌面3389、Samba共享,甚至某些一般人用不到的业务



评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)