forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    查看: 7074|回复: 18

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

    [复制链接]

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    387
    发表于 2022-12-27 21:31:17 | 显示全部楼层 |阅读模式
    本帖最后由 Saber 于 2022-12-31 21:46 编辑

    众所周知,FullCone NAT在P2P 游戏、BT种子应用中的重要性。当前AXT1800的官方固件不支持FullCone NAT功能,实属遗憾,大雕的AXT1800固件虽然支持FullCone,但是不支持AXT1800的风扇和无线驱动,论坛中也有兄弟问过这方面的问题,然而官方没有给出简单的解决方法。
    本人在研究了Openwrt的防火墙特性后,编译了一个分享基于官方代码编译的支持FullCone NAT的固件,内核4.4,请各位有FullCone环境的兄弟帮忙测试一下功能。

    后期如果用到的人多,我会分享一下自编译相关固件实现FullCone NAT的方法

    使用方法,.img为Uboot刷入文件,.tar通过“系统→升级/备份→刷写新的固件” 刷入,然后在“网络→fullconenat”开启相关功能,目前仅测试了仅用“禁用”和全局FullCone,后续再测试IP功能



    链接:https://pan.baidu.com/s/1uYGcCQjtt7V1XcpxFRBYMQ?pwd=d49y
    提取码:d49y

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    0

    主题

    12

    帖子

    97

    积分

    注册会员

    Rank: 2

    积分
    97
    发表于 2022-12-31 15:58:16 | 显示全部楼层
    感谢分享!顶上去
    回复

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1732
    发表于 2022-12-31 16:40:23 | 显示全部楼层
    失效了失效了失效了
    回复

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    387
     楼主| 发表于 2022-12-31 21:47:36 | 显示全部楼层
    本帖最后由 Saber 于 2022-12-31 21:56 编辑
    m0eak 发表于 2022-12-31 16:40
    失效了失效了失效了

    我更新了下固件,分享地址也更新了,测试一下后麻烦回我一下结果
    回复

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1732
    发表于 2023-1-1 13:11:35 | 显示全部楼层
    Saber 发表于 2022-12-31 21:47
    我更新了下固件,分享地址也更新了,测试一下后麻烦回我一下结果 ...

    有官方界面吗
    回复

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    387
     楼主| 发表于 2023-1-1 13:16:42 | 显示全部楼层
    本帖最后由 Saber 于 2023-1-1 13:18 编辑

    那个我暂时没有做,官方界面内容是固定死的,做出来也是得进openwrt界面才能调,你需要的话,可以加我一个V,tu1994ya,我给你做一个,另外,新年快乐啊!
    回复

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1732
    发表于 2023-1-2 14:19:12 | 显示全部楼层
    Saber 发表于 2023-1-1 13:16
    那个我暂时没有做,官方界面内容是固定死的,做出来也是得进openwrt界面才能调,你需要的话,可以加我一个 ...

    能分享一下方法吗
    回复

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    387
     楼主| 发表于 2023-1-3 00:57:27 来自手机 | 显示全部楼层
    m0eak 发表于 2023-1-2 14:19
    能分享一下方法吗

    完全没问题,只不过不是装一个插件那么简单,需要编译固件,你有相关基础的话,我可以告诉你
    回复

    使用道具 举报

    0

    主题

    834

    帖子

    1684

    积分

    禁止发言

    积分
    1684
    发表于 2023-1-14 01:57:12 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1732
    发表于 2023-1-28 14:23:52 | 显示全部楼层
    Saber 发表于 2023-1-3 00:57
    完全没问题,只不过不是装一个插件那么简单,需要编译固件,你有相关基础的话,我可以告诉你 ...

    我会编译,大概怎么操作啊
    回复

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    387
     楼主| 发表于 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

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

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

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

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

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

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

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

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

    成功了告诉我一下
    回复

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1732
    发表于 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

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

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

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

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

    看看你那边能FullCone NAT吗
    回复

    使用道具 举报

    21

    主题

    329

    帖子

    1732

    积分

    金牌会员

    Rank: 6Rank: 6

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

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

    使用道具 举报

    5

    主题

    47

    帖子

    387

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    387
     楼主| 发表于 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, 2025-4-12 02:42 , Processed in 0.026271 second(s), 24 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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