udp2raw-tunnel

最近几天,那个墙好像变高了,导致很多服务器用不了了,我运气不错,服务器ip没有被封,不过出现了一个小小的问题,就是之前我说的用kcptun加速服务器有时候会失败,我折腾了好一段时间也没有解决的办法,后来看pull request里面好像有人提到了udp干扰的问题,所以udp2raw-tunnel就是用来解决这个问题.

  1. 先简单介绍下这个东西,udp2raw tunnel,通过raw socket给UDP包加上TCP或ICMP header,进而绕过UDP屏蔽或QoS,或在UDP不稳定的环境下提升稳定性。可以有效防止在使用kcptun或者finalspeed的情况下udp端口被运营商限速。支持心跳保活、自动重连,重连后会恢复上次连接,在底层掉线的情况下可以保持上层不掉线。同时有加密、防重放攻击、信道复用的功能。

  2. 这个的原理大概就是在udp包的上加上tcp的包头,让路由器不会认为这是一个udp的包,udp的包似乎很容易被针对,之前kcptun就有这个问题,速度没有受到影响,但是连接很容易就断掉了,需要重新连接,还是挺麻烦的.


    image.png
  3. 上图是大概的工作原理,看图不难理解,我们运行在pc上的代理软件将我们的流量通过某个端口先给kcptun,产生udp流量,但是udp流量容易受到干扰,所以我们先将udp流量给udp2raw-tunnel,再由udp2raw-tunnel来将流量伪装为tcp流量再转发给服务器,服务器端也需要运行udp2raw-tunnel,它接收到伪装的tcp流量,然后解密校验之后来获得原来的udp流量,然后kcptun接收udp流量了,通过处理之后将信息发送给服务器代理软件的接收端,代理软件再将我们的流量(往往是一些请求)发送到本来不能被访问的服务器(油管之类的),然后获得响应,用与原来相反的方向将信息发送回来.

  4. 我们理解了大致的工作原理之后就能使用了,我们需要一个代理软件纸飞机,然后呢,需要kcptun,然后需要udp2raw-tunnel,下面开始是我折腾了小一会的结果:

    • 首先我们从本地开始,纸飞机的代理要开的,我们的服务器地址是127.0.0.1,这个是我们本机的ip地址,因为这些流量是要先发给kcptun的,服务器端口就写kcptun client在本地监听的端口,比如监听了12321端口,那么我们纸飞机的服务器端口就是12321,不过需要注意的是,纸飞机的密码还是纸飞机的密码,这个和kcptun还有udp2raw-tunnel都没有关系,这个密码是用来纸飞机用来校验解密的.
    • 然后是kcptun了,我大概说一下参数,首先监听的本地端口是12321,上面说过了,然后是服务器地址,注意这里服务器地址需要改为127.0.0.1,因为我们需要将kcptun的流量转发给udp2raw-tunnel,这里kcptun的服务器端口就是我们udp2raw-tunnel client在本地监听的端口,假设是8888吧.值得注意的是,那个mtu参数需要改为1300或者更小(默认是1350),mtu是最大传输单元的英文缩写,这个太大了好像是会导致服务器无法处理等情况,不同协议对mtu的规定也不一样,例如ip协议就规定mtu最大为1500,不过从我个人的使用感觉来看,mtu太小了会影响网速,所以1200左右就差不多了,也不要太小.
    • 然后是本地的udp2raw-tunnel,这里本地的监听地址是-l0.0.0.0:8888,然后是服务器地址就是:我们的服务器地址:我们运行在服务器上的udp2raw-tunnel监听的端口.假设地址为45.66.77.88,端口为8855,参数就是-r45.66.77.88:8855.不过需要注意的是这个应用的使用最好需要root权限,使用起来会方便一点.
    • 然后是服务器端的udp2raw-tunnel,这个的参数实际上就是本地的逆过程,监听本地的8855端口,也就是-l0.0.0.0:8855,然后是-r 127.0.0.1:4000,这里是将流量转发给服务器端的kcptun,4000是kcptun的监听端口.
      最后是kcptun了,在上一步我们已经知道了kcptun的本地监听端口是4000,所以参数中-l :4000,然后服务器地址是127.0.0.1,因为kcptun将流量再转发给纸飞机,目标端口就是纸飞机监听的端口号.注意这里也要设置mtu,kcptun两边mtu最好保持一样.
      到这里就差不多了,这里纸飞机的代理不是我们需要管的东西.我们只需要端口,密码还有加密方式就OK了.
  5. 这里贴下udp2raw-tunnel的github地址:[udp2raw]
    [udp2raw]: https://github.com/wangyu-/udp2raw-tunnel. 文档里面也有教程,不过我觉得我写的更容易理解一点.

结语:到这里就写的差不多了,不得不感慨通信是个非常有用的东西,网络通信是非常需要我们基础知识的领域,我们十分应该多学点这方面的知识.
附录:实际使用的一些参数


image.png

kcptun:

./client_linux_amd64 -l ":12321" -r "127.0.0.1:8888" -key "xxxxxx" -mode "fast2" -crypt "aes-128" -mtu 1200 -nocomp "false" > kcptun.log 2>&1 &

udp2raw-tunnel:

./udp2raw_amd64 -c -r45.66.77.88:8855 -l0.0.0.0:8888 --raw-mode fakekcp -a -k"passwd"

服务器端:
udp2raw-tunnel:

./udp2raw_amd64 -s -l0.0.0.0:8855 -r 127.0.0.1:4000 -k "passwd" --raw-mode fakekcp -a

kcptun:

./client_linux_amd64 -l ":4000" -r "127.0.0.1:22" -key "xxxxxx" -mode "fast2" -crypt "aes-128" -mtu 1200 -nocomp "false" > kcptun.log 2>&1 &

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,513评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,312评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,124评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,529评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,937评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,913评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,084评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,816评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,593评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,788评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,267评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,601评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,265评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,158评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,953评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,066评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,852评论 2 277

推荐阅读更多精彩内容

  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 12,982评论 6 174
  • 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一...
    张芳涛阅读 2,687评论 1 6
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,020评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,108评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,530评论 6 13