简单写了个 TCP 代理,可以看看(freebsd 上可用)

2017-02-04 13:54:19 +08:00
 liamxd

因为前几天公司的登录服务器遭到了 DDOS 攻击。今天抽空写了一个 TCP 代理的功能,计划放到业务服务器前面,分散业务入口。

因为功能简单,而且后期考虑定制一些防护和统计功能,所以没有使用 nginx 的 tcp proxy 。或者其他成熟的代理方法。

https://github.com/miwoow/tcpproxyforbsd

刚完成,只是在本机上使用 nc 测试了一下,基本可用。后期会持续优化。

因为使用了 freebsd 的 kqueue 。所以需要在 freebsd 上运行。

后端服务器得到客户端真实 IP 地址的方法是,代理服务器一旦和后台服务器建立连接,马上发给后台服务器一个 32 位整数。这个 32 位整数就是客户端真实 IP 地址的网络字节序。

所以,后台服务器对于每个连接过来的 tcp 客户端,需要先接收一个 32 位的整数取得客户端真实 IP 地址。

6024 次点击
所在节点    FreeBSD
2 条回复
snnn
2017-02-04 20:16:31 +08:00
很赞!
jyf007
2017-02-04 22:22:43 +08:00
我提一个 BBR 怎么加入 BSD 内核?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/338026

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX