UU 加速器在 OpenWrt nftables 环境中的使用技巧 (不全开防火墙的方法)
Fanx / 2024-12-10 / Linux / 阅读量 4143

前言

前段时间 UU 加速器更新了 v8.0.12 版本,支持了 OpenWrt 23.X 的 nftables 环境,官方说明:https://router.uu.163.com/app/html/online/baike_share.html?baike_id=5f963c9304c215e129ca40e8

但是,官方的说明文档中,要求防火墙全开,这就有点让人难以接受了。

依次进入【网络】 - 【防火墙】 - 将【入站数据】、【出站数据】、【转发】都改为接受,并且点击Accept保存

解决方法

既然 UU 加速器是使用 tun 设备来管理网络的,那我们可以针对 UU 创建的 tun 设备来设置防火墙规则。
可以看到,开启 UU 加速器后,系统会生成一个 tun163 的设备

那么就可以针对这个设备来设置防火墙规则了

在 【网络】 -> 【防火墙】 -> 【通信规则】中,添加三条规则
依次是:

  • 允许 tun163 的入站数据
  • 允许来自 tun163 的转发数据
  • 允许转发到 tun163 的数据
⚠️ 注意,如果要加速两台设备,还需要加 tun164 设备的规则!!!

根据我使用 PlayStation 5 的测试,不添加防火墙规则会造成 NAT 测试失败
添加第一条: 允许 tun163 的入站数据 后,NAT 测试成功。经过测试 GT7 可以正常进入围场,但是战地 2042 无法进入游戏。
添加第二条: 允许来自 tun163 的转发数据 后,战地 2042 可以正常进入游戏。其它联机游戏也能正常运行,但是使用 PS Remote Play 连接 PS5 时,会提示连接失败,需要添加第三条规则: 允许转发到 tun163 的数据

注意

UU 会在 /usr/bin 目录下找 xtables-nft-multi,官方安装方法可能没问题,我是自己编译的时候把 UU 加进去的,需要自己手动复制一下

cp /usr/sbin/xtables-nft-multi /usr/bin/xtables-nft-multi

使用过程中发现访问 PlayStation 商店无法加载,结果看日志发现了 UU 用了这些地址导致了和 OpenClash 的冲突
解决方法:
在 【插件设置】 -> 【流量控制】 里的本地 IPv4 绕过地址中加入:

163.163.0.0/24
163.163.192.0/24
163.163.163.0/24
164.164.164.0/24
如果这里有更好的方法,欢迎补充

懒人包

修改文件版

如果你觉得 luci 界面太麻烦,可以直接修改 /etc/config/firewall 文件,添加如下内容:

config rule
    option name 'Allow-uugamebooster-Input'
    option src '*'
    option target 'ACCEPT'
    option direction 'in'
    option device 'tun163'
    list proto 'all'

config rule
    option name 'Allow-uugamebooster-Forward-1'
    option src '*'
    option dest '*'
    option target 'ACCEPT'
    option direction 'in'
    option device 'tun163'
    list proto 'all'

config rule
    option name 'Allow-uugamebooster-Forward-2'
    option src '*'
    option dest '*'
    option target 'ACCEPT'
    option direction 'out'
    option device 'tun163'
    list proto 'all'

开始愉快的玩耍吧!

8 + 9 =
14 评论
    EsakhanhaChrome 138Mac OS X
    8月6日 回复

    发现新问题了。貌似跟@vince0918一样的问题 第一天好用。后面直接不好用了。 不开加速器是中等NAT 开了后直接teredo失败了。以下是firewall文件

    config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option flow_offloading '1'
        option flow_offloading_hw '1'
        option fullcone '1'
        option synflood_protect '1'
    
    config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'
    
    config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
    
    config forwarding
        option src 'lan'
        option dest 'wan'
    
    config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'
    
    config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'
    
    config rule
        option name 'Allow-uugamebooster-Input'
        option src '*'
        option target 'ACCEPT'
        option direction 'in'
        option device 'tun163'
        list proto 'all'
    
    config rule
        option name 'Allow-uugamebooster-Forward-1'
        option src '*'
        option dest '*'
        option target 'ACCEPT'
        option direction 'in'
        option device 'tun163'
        list proto 'all'
    
    config rule
        option name 'Allow-uugamebooster-Forward-2'
        option src '*'
        option dest '*'
        option target 'ACCEPT'
        option direction 'out'
        option device 'tun163'
        list proto 'all'
    
    config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'Transmission'
        option src 'wan'
        option src_dport '9091'
        option dest_ip '172.31.0.253'
        option dest_port '9091'
    
    config include 'zerotier_input'
        option type 'nftables'
        option path '/var/run/zerotier-one/_fw4/input.nft'
        option position 'chain-pre'
        option chain 'input'
    
    config include 'zerotier_srcnat'
        option type 'nftables'
        option path '/var/run/zerotier-one/_fw4/srcnat.nft'
        option position 'chain-pre'
        option chain 'srcnat'
    
    config include 'zerotier_forward'
        option type 'nftables'
        option path '/var/run/zerotier-one/_fw4/forward.nft'
        option position 'chain-pre'
        option chain 'forward'
    
    config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'Xbox'
        option src 'wan'
        option src_dport '3074'
        option dest_ip '172.31.0.214'
        option dest_port '3074'
        option enabled '0'
    
    config include 'openclash'
        option type 'script'
        option path '/var/etc/openclash.include' 

    大佬帮忙看看。感谢。

      FanxChrome 138Mac OS X
      8月7日 回复

      @Esakhanha 看起来没什么问题,OpenClash 的 本地 IPv4 绕过地址 加入了

      163.163.0.0/24
      163.163.192.0/24
      163.163.163.0/24
      164.164.164.0/24

      这几个地址吗?

      另外我一直用的都是 Redir-Host + 兼容 模式
      详情请见:https://rushb.pro/article/openwrt-config.html

        EsakhanhaChrome 138Mac OS X
        8月8日 回复

        @Fanx 这些地址已经加进去了 不过我用的是Fake-IP 我再尝试检查下。

    EsakhanhaChrome 138Mac OS X
    8月2日 回复

    厉害 终于搞定了 之前一直因为nftables的问题 要放开防火墙 感觉过于危险 这个方案无疑是最好用的。

    GSRChrome 134Windows 10 / 11
    8月1日 回复

    又发现了一些可能是问题的问题
    openclash开fake-ip模式的时候,uu这边加速后,switch2上显示的ip地址是我自己的。关闭openclash后显示的是代理地的。
    不过无论是否关闭,目前我测试下来加速的效果还是有的(通过上传截图功能进行测试,这个不通过加速或代理是完全用不了的),不知道是什么原因

    而且我有在openclash写了让switch2的ip地址分流到DIRECT的规则,应该是不会受openclash影响吧(大概?
    真是奇怪

      FanxChrome 138Windows 10 / 11
      8月1日 回复

      @GSR 给我看看你的 /etc/config/firewall 文件?

    GSRChrome 134Windows 10 / 11
    7月19日 回复

    我的设备上好像不太行。
    开启加速的情况下:
    防火墙全局放行的话,游戏机网络测试的时候ip地址会更换到加速的地址的。
    防火墙禁止入站和转发,会提示联网失败。
    而按照文章的说明改用tun163放行的话,虽然联网成功了,Nat也提高到了A,但ip地址是我原生的。很多需要加速的功能(比如ns2的截图上传功能)也明显没有被加速。
    很怪

      GSRChrome 134Windows 10 / 11
      7月19日 回复

      @GSR 没事了 原来是我的固件没有预装xtables-nft
      装一下再重装一下uu

    vince0918Chrome 133Mac OS X
    2月14日 回复

    我24.10固件就第一天正常用uu之后就不行了很奇怪

      FanxChrome 133Windows 10 / 11
      2月20日 回复

      @vince0918 排查一下吧,我用了很久都正常

    loyChrome 132Windows 10 / 11
    1月30日 回复

    很奇怪,所有步骤都正常,也能正常绑定,点加速这些都正常,但就是没有出现那个tun163,按官网的全部选接受,点加速以后quest3也不生效,提示网络受限

      FanxChrome 133Windows 10 / 11
      2月12日 回复

      @loy 可能是 uu 对 quest3 的支持有 bug?我 ps5 是没问题的

    NoneChrome 131Android Q
    1月14日 回复

    感谢分享,另外有一个坑,如果同时连接两台设备的话,会使用tun164,需要再增加相应的配置

      FanxChrome 131Windows 10 / 11
      1月22日 回复

      @None 感谢补充