ICKelin 最近的时间轴更新
ICKelin

ICKelin

V2EX 第 313393 号会员,加入于 2018-05-02 23:23:11 +08:00
分享一个网络项目
分享创造  •  ICKelin  •  290 天前  •  最后回复来自 ICKelin
10
一个内网穿透服务
分享创造  •  ICKelin  •  2018-08-22 12:41:26 PM  •  最后回复来自 vst93
38
ICKelin 最近回复了
@lenghonglin 是隔出来的,隔了两间
@FrankSay 我也是租的,我十月到期,到时你要想租的话可以继续跟房东签
我住隔壁祥祺花园三千五一室一厅,应该有四十平。。
102 天前
回复了 rsonghao 创建的主题 程序员 怎么开始一个属于自己的小“项目”呢?
可以分享下我的经历,我有个加速器是从 2018 年开始写的,还在不断的迭代优化,这个项目于我而言相当于一份工作带来的价值,如果你对过程不感兴趣可以直接拖到最后。

第一个版本:只是想把工作中自己没机会参与的项目涉及到的技术学习一下,写点东西,恰好手上有个树莓派作为网关,当时的想法是写个加速器在上面运行,于是有了第一个版本的基于威 pn 技术的加速器,但是性能不太好,于是基于 kcp 做了一次优化。

第二个版本:支持内网穿透
第一版实际上提供了一种能力,能够在公有云上通过内网 IP 访问到客户端,那么自然而然的就实现了内网穿透,当时写了一个支持内网穿透的功能,后面把这个功能单独提取出来成了一个产品并发布到网上给网友们使用,当然这又是另外一个事故了,自此之后内网穿透的功能就在这个项目当中被彻底剔除了。

第三个版本:基于 iptables 的 DNAT
在之前的加速器当中都是用了基于 tun 设备的威 pn 技术,这是一个 ip over ip 的技术,这里会有个 tcp 的 rtt 就会比较长,优化的方法是通过快速握手,于是使用 iptables 把流量劫持到本地的端口,当时参考了 shadowsocks-go 的实现,不过很遗憾这项技术对 udp 不是很友好。

第四个版本:基于 tproxy 技术
背景是当时自己换了份工作,从一个网络开发转成基础服务开发的工程师,当时首次接触到 k8s ,docker 之类的东西,于是就想研究研究这玩意的一些网络实现,最后了解到了一项技术,叫 tproxy ,当时感觉可以拿 tproxy 来解决上个版本当中的 udp 的问题,于是基于 tproxy 优化开发了一个新的版本,并且一直使用至今。

未来:
1. 最近在考虑使用 ebpf 技术去替换 tproxy ,ebpf 也是最近了解到的一项技术。

收获:
1. 收获了不少网友,给了我不少帮助
2. 收获了不少 offer ,当然包括现在的公司
但是最重要的还是教会我坚持做一件事确实还是会有收获的。

总结:
1. 首先是找到自己感兴趣的点,既然是业余时间开发的,肯定是做自己感兴趣的事,以此作为入口,刚开始的版本肯定都是很挫的,大名鼎鼎的 Netflix 也是从租碟开始的。
2. 不断的优化程序,如果能产品化的话更好

当然现在项目也还有很多问题,处于闲暇时候会翻来改改的状态。
https://github.com/ICKelin/cframe 闲的没事可以来鼓捣鼓捣这个。
290 天前
回复了 ICKelin 创建的主题 分享创造 分享一个网络项目
@defunct9 嗯~还是不一样的东西,跟 vpc 对等连接解决的问题类似,感兴趣可以看下这个设计文档 https://github.com/ICKelin/cframe/blob/master/doc/design.md
292 天前
回复了 ICKelin 创建的主题 分享创造 分享一个网络项目
@zhruith 谈不上去中心化
292 天前
回复了 ICKelin 创建的主题 分享创造 分享一个网络项目
@pansongya 可以。
292 天前
回复了 ICKelin 创建的主题 分享创造 分享一个网络项目
@Tink 整体应该差不多,技术细节上可能会有差异。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3822 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 05:50 · PVG 13:50 · LAX 22:50 · JFK 01:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.