基于 nftables 和 Rust 的端口转发工具

2023-01-17 16:58:54 +08:00
 arloor

虎年的最后几天,分享一下自己写的 nat 转发小工具,点击前往 Github 项目地址。主要用途是便捷地设置 nat 流量转发

适用于 centos8 及以后的 redhat 系发行版和支持 nftables 的 debian 系 linux 发行版如 debian10

一些特性

  1. 实现动态 nat:自动探测配置文件和目标域名 IP 的变化,除变更配置外无需任何手工介入
  2. 支持 IP 和域名
  3. 支持转发到本机其他端口( nat 重定向) [ 2023.1.17 更新]
  4. 以配置文件保存转发规则,可备份或迁移到其他机器
  5. 自动探测本机 ip
  6. 支持自定义本机 ip [ 2023.1.17 更新]
  7. 开机自启动
  8. 支持端口段
  9. 轻量,只依赖 rust 标准库

纯兴趣驱动开发的一个项目,也是想用小东西来给 rust 练练手,有帮助的话辛苦点个 star 哈

3556 次点击
所在节点    Linux
9 条回复
huanxianghao
2023-01-17 18:00:17 +08:00
支持,就是不知道 nftables 能不能吃到 bbr 的加速
LGA1150
2023-01-17 20:04:10 +08:00
@huanxianghao 不能
8675bc86
2023-01-17 22:56:38 +08:00
好像没明白项目的目的。
这几个 feature ,iptables 写几条就搞定了,更方便。
arloor
2023-01-17 23:36:53 +08:00
@8675bc86 就是不用写 iptables 规则了。最主要的 feature 是支持转发到域名,dns 解析变更时会自动更新 nftables 的规则。

剩下都是一些易用性的优化了
ericFork
2023-01-18 05:09:27 +08:00
我记得之前有个功能有点类似的 https://github.com/zhboner/realm 不过好像没有用到 nftables
nobodyhere
2023-01-18 15:45:22 +08:00
tcp/ssl 场景,我用 nginx 的 stream + ssl 预读+sni 映射做第 4 层转发到目标域名端口,也比较稳定
arloor
2023-01-18 16:01:14 +08:00
@nobodyhere 是的,转发方案的方案还挺多的
terrytw
2023-01-19 12:35:15 +08:00
方案的确太多了
什么 haproxy ,iptables ,rinetd ,brook ,realm
terrytw
2023-01-19 12:36:15 +08:00
之前个人不完全测试觉得 brook 性能最好

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

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

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

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

© 2021 V2EX