forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

FullCone NAT

FullCone NAT
回复

使用道具 举报

0

主题

12

帖子

97

积分

注册会员

Rank: 2

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

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

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

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

有官方界面吗
回复

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

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

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

能分享一下方法吗
回复

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

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

使用道具 举报

0

主题

833

帖子

1684

积分

禁止发言

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

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

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

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

成功了告诉我一下
回复

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

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

看看你那边能FullCone NAT吗
回复

使用道具 举报

21

主题

330

帖子

1806

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

5

主题

48

帖子

431

积分

中级会员

Rank: 3Rank: 3

积分
431
 楼主| 发表于 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, 2026-1-28 05:27 , Processed in 0.027561 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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