forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    12
    返回列表 发新帖
    楼主: Saber

    [固件资源] 分享一个基于官方代码编译的FullCone NAT的固件

    [复制链接]

    5

    主题

    46

    帖子

    373

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    373
     楼主| 发表于 2023-2-1 20:02:50 | 显示全部楼层
    m0eak 发表于 2023-1-28 14:23
    我会编译,大概怎么操作啊

    主要是三步:
    第一步要给内核打补丁,把LGA1150佬的补丁https://github.com/LGA1150/openwrt-fullconenat放在feeds/package里面,注意更新一下feeds;第二步给防火墙的代码打上FullCone的补丁,你需要在package/network/config/patches建一个空的补丁,命名为0100-fullconenat.patch,AXT1800的官方代码和Openwrt的防火墙代码不太一样,所以得调一下官方的代码的位置,我这有个写好的,你可以直接用:

    1. --- a/defaults.c
    2. +++ b/defaults.c
    3. @@ -48,7 +48,9 @@ const struct fw3_option fw3_flag_opts[] = {
    4.         FW3_OPT("synflood_protect",    bool,     defaults, syn_flood),
    5.         FW3_OPT("synflood_rate",       limit,    defaults, syn_flood_rate),
    6.         FW3_OPT("synflood_burst",      int,      defaults, syn_flood_rate.burst),
    7. -
    8. +       
    9. +        FW3_OPT("fullcone",           bool,     defaults, fullcone),
    10. +       
    11.         FW3_OPT("tcp_syncookies",      bool,     defaults, tcp_syncookies),
    12.         FW3_OPT("tcp_ecn",             int,      defaults, tcp_ecn),
    13.         FW3_OPT("tcp_window_scaling",  bool,     defaults, tcp_window_scaling),
    14. --- a/options.h
    15. +++ b/options.h
    16. @@ -296,6 +296,7 @@ struct fw3_defaults
    17.         enum fw3_reject_code tcp_reject_code;
    18.         enum fw3_reject_code any_reject_code;

    19. +        bool fullcone;
    20.         bool syn_flood;
    21.         struct fw3_limit syn_flood_rate;

    22. --- a/zones.c
    23. +++ b/zones.c
    24. @@ -670,6 +670,7 @@ print_zone_rule(struct fw3_ipt_handle *h
    25.         struct fw3_address *msrc;
    26.         struct fw3_address *mdest;
    27.         struct fw3_ipt_rule *r;
    28. +        struct fw3_defaults *defs = &state->defaults;

    29.         if (!fw3_is_family(zone, handle->family))
    30.                 return;
    31. @@ -755,8 +756,22 @@ print_zone_rule(struct fw3_ipt_handle *h
    32.                                 {
    33.                                         r = fw3_ipt_rule_new(handle);
    34.                                         fw3_ipt_rule_src_dest(r, msrc, mdest);
    35. -                                        fw3_ipt_rule_target(r, "MASQUERADE");
    36. -                                        fw3_ipt_rule_append(r, "zone_%s_postrouting", zone->name);
    37. +                                        /*FIXME: Workaround for FULLCONE-NAT*/
    38. +                                        if(defs->fullcone)
    39. +                                        {
    40. +                                                warn("%s will enable FULLCONE-NAT", zone->name);
    41. +                                                fw3_ipt_rule_target(r, "FULLCONENAT");
    42. +                                                fw3_ipt_rule_append(r, "zone_%s_postrouting", zone->name);
    43. +                                                r = fw3_ipt_rule_new(handle);
    44. +                                                fw3_ipt_rule_src_dest(r, msrc, mdest);
    45. +                                                fw3_ipt_rule_target(r, "FULLCONENAT");
    46. +                                                fw3_ipt_rule_append(r, "zone_%s_prerouting", zone->name);
    47. +                                        }
    48. +                                        else
    49. +                                        {
    50. +                                                fw3_ipt_rule_target(r, "MASQUERADE");
    51. +                                                fw3_ipt_rule_append(r, "zone_%s_postrouting", zone->name);
    52. +                                        }
    53.                                 }
    54.                         }
    55.                 }
    复制代码



    第三步,加入一个启动FullCone NAT的luci界面,https://github.com/peter-tank/luci-app-fullconenat,编译的时候勾上,它会自动勾上第一步的模块
    回复

    使用道具 举报

    5

    主题

    46

    帖子

    373

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    373
     楼主| 发表于 2023-2-1 20:04:05 | 显示全部楼层
    m0eak 发表于 2023-1-28 14:23
    我会编译,大概怎么操作啊

    我觉得这个对于官方来说就是一个举手之劳,前面也有些人提过这个功能请求,我不太理解为啥他们不愿意做进去
    回复

    使用道具 举报

    21

    主题

    328

    帖子

    1668

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1668
    发表于 2023-2-4 20:48:30 | 显示全部楼层
    Saber 发表于 2023-2-1 20:02
    主要是三步:
    第一步要给内核打补丁,把LGA1150佬的补丁https://github.com/LGA1150/openwrt-fullconenat ...

    好的谢谢,我去试一下
    回复

    使用道具 举报

    5

    主题

    46

    帖子

    373

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    373
     楼主| 发表于 2023-2-4 21:20:58 | 显示全部楼层
    m0eak 发表于 2023-2-4 20:48
    好的谢谢,我去试一下

    成功了告诉我一下
    回复

    使用道具 举报

    21

    主题

    328

    帖子

    1668

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1668
    发表于 2023-2-5 13:49:13 | 显示全部楼层
    Saber 发表于 2023-2-4 21:20
    成功了告诉我一下

    编译成功了,但还没刷进去,编译的包里看到了luci-app-fullconenat_1.3_all.ipk,和iptables-mod-fullconenat_2018-12-15-d4daedd0-1_arm_cortex-a7.ipk,那个修改的patch网上有教程吗,我想看看
    回复

    使用道具 举报

    21

    主题

    328

    帖子

    1668

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1668
    发表于 2023-2-5 14:40:36 | 显示全部楼层
    刷上了,并且能够运行,我把他尝试弄进云编译里
    回复

    使用道具 举报

    5

    主题

    46

    帖子

    373

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    373
     楼主| 发表于 2023-2-6 11:14:14 | 显示全部楼层
    m0eak 发表于 2023-2-5 14:40
    刷上了,并且能够运行,我把他尝试弄进云编译里

    看看你那边能FullCone NAT吗
    回复

    使用道具 举报

    21

    主题

    328

    帖子

    1668

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1668
    发表于 2023-2-7 13:25:44 | 显示全部楼层
    Saber 发表于 2023-2-6 11:14
    看看你那边能FullCone NAT吗

    麻了,我发现他过一会自己就会not running了
    回复

    使用道具 举报

    5

    主题

    46

    帖子

    373

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    373
     楼主| 发表于 2023-2-7 19:28:14 | 显示全部楼层
    m0eak 发表于 2023-2-7 13:25
    麻了,我发现他过一会自己就会not running了

    这个需要你手动点一下all enable那个,或者你写个开机自启,添加一些fullcone防火墙规则。这个好像会和NAT6有冲突,要注意
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|gl-inet.cn ( 粤ICP备18130956号 )

    GMT+8, 2024-11-23 01:16 , Processed in 0.019730 second(s), 23 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表