V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
arloor
V2EX  ›  Linux

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

  •  
  •   arloor · 2023-01-17 16:58:54 +08:00 · 3194 次点击
    这是一个创建于 458 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虎年的最后几天,分享一下自己写的 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 哈

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

    剩下都是一些易用性的优化了
    ericFork
        5
    ericFork  
       2023-01-18 05:09:27 +08:00
    我记得之前有个功能有点类似的 https://github.com/zhboner/realm 不过好像没有用到 nftables
    nobodyhere
        6
    nobodyhere  
       2023-01-18 15:45:22 +08:00
    tcp/ssl 场景,我用 nginx 的 stream + ssl 预读+sni 映射做第 4 层转发到目标域名端口,也比较稳定
    arloor
        7
    arloor  
    OP
       2023-01-18 16:01:14 +08:00 via Android
    @nobodyhere 是的,转发方案的方案还挺多的
    terrytw
        8
    terrytw  
       2023-01-19 12:35:15 +08:00
    方案的确太多了
    什么 haproxy ,iptables ,rinetd ,brook ,realm
    terrytw
        9
    terrytw  
       2023-01-19 12:36:15 +08:00
    之前个人不完全测试觉得 brook 性能最好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3047 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:12 · PVG 08:12 · LAX 17:12 · JFK 20:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.