绕过依赖SNI的深度数据包检查(DPI)系统。该软件包仅适用于Linux。它也与运行OpenWrt的路由器完全兼容。
该计划主要是为了绕过俄罗斯的YouTube中断。
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
该程序分为两个版本:
该程序与基于OpenWrt,Entware(Keenetic/Asus)和主机计算机的路由器兼容。该程序通过GitHub动作提供二进制文件。这些二进制文件也可通过GitHub释放获得。使用最新的最新版本使用最新的预发行。如果您想查看所有二进制文件,请查看GitHub动作。您应该知道硬件使用二进制文件的街道。在OpenWrt上,您可以使用命令grep ARCH /etc/openwrt_release
检查它。
在OpenWrt和Entware上都使用OPKG安装程序。如果您有仅读取的文件系统错误,则可以手动解开二进制文件或指定OPKG PATH opkg -o <destdir>
。
对于Windows使用Valdikss的GoodbyEdpi(您可以在此处找到如何在YouTube上使用它)在Linux的Zapret软件包中也实现了相同的行为。
当您获得发布包时,应该安装它。转到路由器接口,进入系统 - >软件,进行更新列表,然后通过install_package按钮安装YouTubeunblock。然后,您应该转到System-Startup菜单并重新加载防火墙(您也可以在Services-> YouTubeunblock菜单中进行此操作)。
为了使它起作用,您应该注册iPtables规则并安装所需的内核模块。模块的列表取决于OpenWrt的版本以及您使用的防火墙(Iptables或nftables)。对于大多数现代版本的OpenWrt(v23.x,v22.x),您应该使用nftables规则,对于较旧的规则,它取决于,但通常是iptables。
共同的依赖性是
kmod-nfnetlink-queue
但是它作为另一个防火墙软件包的依赖性。
因此,如果您在iPtables上,则应安装:
kmod-ipt-nfqueue
iptables-mod-nfqueue
kmod-ipt-conntrack-extra
iptables-mod-conntrack-extra
当然,iPtables用户空间应用应该可用。
在nftables上,依赖项是:
kmod-nft-queue
kmod-nf-conntrack
下一步是添加所需的防火墙规则。
对于OpenWrt规则上的NFTABLES,可以使用/usr/share/nftables.d/ruleset-post/537-youtubeUnblock.nft
下来。您需要的只是安装要求和do /etc/init.d/firewall reload
。如果没有,请转到防火墙配置。
现在我们转到配置。对于OpenWrt,这里是通过UCI和LUCI可用的配置(分别为CLI和GUI)。
对于路由器的Luci aka aka aka Web-Interface,您应该像使用普通的YouTubeunblock软件包一样安装Luci-App-Youtubeunblock软件包。请注意,应该加载官方OPKG提要的列表(使用更新列表选项进行操作)。
如果您有* pkg_hash_check_unresolved: cannot find dependency luci-lua-runtime for luci-app-youtubeUnblock
错误,则使用旧的OpenWrt。安装此虚拟包装。检查此评论以获取更多详细信息。
LUCI配置生活在服务 - > YouTubeunblock部分。它是自我描述的,每个标志的描述。请注意,按下Save & Apply
按钮后,将自动应用配置并重新启动服务。
UCI配置可在/etc/config/youtubeunblock文件中可用,在youtubeUnblock.youtubeUnblock
中。配置使用标志完成。请注意,标志的名称不是相同的:您应该-
为_
,您不应将领先地使用--
用于标志。另外,您将使用1
启用切换标志(无参数)。
例如,要启用跟踪日志,您应该执行
uci set youtubeUnblock.youtubeUnblock.trace=1
您可以使用logread -l 200 | grep youtubeUnblock
命令。
对于UCI,要保存配置,您应该进行uci commit
,然后reload_config
重新启动YouTubeUnblock
在CLI模式下,您将使用YouTubeunblock作为正常init.d服务:例如,您可以使用/etc/init.d/youtubeUnblock enable
启用它。
对于Heenetic上的Entware来说,这里是一个安装指南(俄语)。
使用opkg install youtubeUnblock-*.ipk
。安装后,将可用/opt/bin和init脚本in/opt/etc/init.d/s51youtubeunblock中的二进制。要运行YouTubeunblock,只需运行/opt/etc/init.d/S51youtubeUnblock start
请注意,您应该使用nfnetlink_queue内核模块喂食目标内核。该模块可能被禁用,甚至不存在。 Entware S51Youtubeunblock将尝试以任何方式插入KMOD,但是如果软件不提供软件,则应手动安装它们。 Afaik在Heenetics上是一个存储库,其中包含客户编译的模块。您可以在设备的Web界面中找到它们。在其他路由器上,您可能希望在这种情况下进行更深入的研究并找到KMOD。如果找不到任何东西,则可以向客户索取Linux内核的GPL代码(甚至可能是OpenWrt),并手动编译KMOD。
您应该将模块插入(可以在Entware和OpenWrt上省略此步骤):
modprobe nfnetlink_queue
在本地主机上,请确保在以下防火墙规则集中向前更改为输出链。
将youtubeUnblock.service
复制到/usr/lib/systemd/system
(您应该将文件内的路径更改为程序位置,例如/usr/bin/youtubeUnblock
,您也可能需要删除SystemD File中的默认iPtables规则手动控制它)。并运行systemctl start youtubeUnblock
。
在nftables上,您应该列出下一个nftables规则:
nft add chain inet fw4 youtubeUnblock ' { type filter hook postrouting priority mangle - 1; policy accept; } '
nft add rule inet fw4 youtubeUnblock ' meta l4proto { tcp, udp } th dport 443 ct original packets < 20 counter queue num 537 bypass '
nft insert rule inet fw4 output ' mark and 0x8000 == 0x8000 counter accept '
在iPtables上,您应该列出下一个iptables规则:
iptables -t mangle -N YOUTUBEUNBLOCK
iptables -t mangle -A YOUTUBEUNBLOCK -p tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
iptables -t mangle -A YOUTUBEUNBLOCK -p udp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
iptables -t mangle -A POSTROUTING -j YOUTUBEUNBLOCK
iptables -I OUTPUT -m mark --mark 32768/32768 -j ACCEPT
对于Iptables上的IPv6,您需要在上面的IP6Tables上复制规则:
ip6tables -t mangle -N YOUTUBEUNBLOCK
ip6tables -t mangle -A YOUTUBEUNBLOCK -p tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
ip6tables -t mangle -A YOUTUBEUNBLOCK -p udp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
ip6tables -t mangle -A POSTROUTING -j YOUTUBEUNBLOCK
ip6tables -I OUTPUT -m mark --mark 32768/32768 -j ACCEPT
请注意,上面的规则使用Conntrack仅将前20个数据包从连接到YouTubeunblock路由。如果您对此遇到了一些麻烦,例如YouTubeunblock无法检测到YouTube,请尝试从规则中删除Connbytes 。但这是一种不太可能的行为,您可能应该检查您的规则集。
您可以使用 - YouTubeunblock多个实例的--queue-balance
进行性能。通过多线程支持此行为。只需通过--threads=n
,其中n代表要启用的许多线程。 n默认为1 。最大线程默认为16 ,但可以通过编程方式更改。请注意,如果您要增加它,那么您的方式是100%的机会。
对于其他匿名性,首选https上的DNS也是如此。
这是测试它是否有效的命令:
curl -o/dev/null -k --connect-to ::google.com -k -L -H Host: mirror.gcr.io https://test.googlevideo.com/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa
它应该在没有YouTubeunblock的情况下返回低速,并更快地返回。使用YouTubeunblock,速度应与下一个命令相同:
curl -o/dev/null -k --connect-to ::google.com -k -L -H Host: mirror.gcr.io https://mirror.gcr.io/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa
将标志放在二进制中,而不是初始脚本。如果您在OpenWrt上,则应将标志放入脚本中:Open /etc/init.d/youtubeUnblock
带有任何文本编辑器,例如vi或nano,并在procd_set_param command /usr/bin/youtubeUnblock
line之后放置标志。
可用标志:
--sni-domains=<comma separated domain list>|all
域列表。如果要更改默认域列表,请使用此字符串。默认到googlevideo.com,ggpht.com,ytimg.com,youtube.com,play.google.com,youtu.be,googleapis.com,googleusercontent.com,gstatic.com,l.google.com
。如果您需要处理每个客户端,则可以通过所有。您可以使用--exclude-domains
标志排除某些域。
--exclude-domains=<comma separated domain list>
要排除目标的域列表。
--queue-num=<number of netfilter queue>
NetFilter队列YouTubeunblock的数量将链接到。默认为537 。
--fake-sni={0|1}
此标志启用了伪造的SNI,迫使YouTubeunblock至少发送三个数据包,而不是与TLS ClientHello :Fake ClientHello:Fake ClientHello ,原始客户端的第一部分,原始客户端的第二部分。此标志可能与某些操作不允许的错误消息有关,因此在打开问题之前,请参阅EPERMS的故障排除。默认为1 。
--fake-sni-seq-len=<length>
此标志指定YouTubeunblock来构建一个复杂的伪造客户hello数据包的结构。长度确定将发送多少假货。默认为1 。
--fake-sni-type={default|custom|random}
此标志指定哪种伪造消息类型应用于假数据包。对于random
,将发送随机长度和随机有效载荷的消息。对于default
使用默认有效载荷(SNI = www.google.com)。对于custom
选项,使用的--fake-custom-payload
载荷使用了。默认为default
。
--fake-custom-payload=<payload>
与--fake-sni-type=custom
有用。您应该手动指定虚假消息的有效载荷。 0x01
十六进制格式: - fake 0x02
--fake-custom-payload=0001020304
0x03
5字节序列0x04
0x00
用作伪造。
--faking-strategy={randseq|ttl|tcp_check|pastseq|md5sum}
此标志确定了假数据包无效的策略。默认为randseq
randseq
指定将设置随机序列/benscementgemend随机。提供商可以处理此选项,该选项可以使用Invalid Conntrack状态防火墙规则上的连接器与Drop一起使用。ttl
指定--faking-ttl=n
hops之后,数据包将无效。 ttl
更好,但如果未配置,可能会导致问题。pastseq
就像randseq
一样,但是序列号不是随机的,而是引用过去发送的数据包(当前之前)。tcp_check
将使用无效的校验和伪造数据包无效。一些提供商/TSPU可以处理和删除。md5sum
将与无效的TCP MD5SUM无效伪造数据包。 MD5SUM是一个TCP选项,由目标服务器处理,但可以由TSPU跳过。 --faking-ttl=<ttl>
调音了假SNI消息的生存时间(TTL)。指定了TTL,就像该数据包将通过DPI系统并被其捕获,但不会到达目标服务器。默认为8 。
--fake-seq-offset
假数据包的原始序列编号的偏移量。由Randseq伪造策略使用。默认为10000。如果0,将设置随机序列号。
--frag={tcp,ip,none}
指定数据包的片段化策略。 TCP默认使用。 IP碎片可能会被DPI系统阻止。没有一个指定没有分裂。可能这可能行不通,但可能会用于一些虚假的SNI策略。
--frag-sni-reverse={0|1}
指定YouTubeunblock以相反的顺序发送客户端片段。默认为1 。
--frag-sni-faked={0|1}
指定YouTubeunblock在ClientHello附近发送假数据包(填充有效载荷的零)。默认为0 。
--frag-middle-sni={0|1}
带有此选项YouTubeunblock将在SNI数据的中间拆分数据包。默认为1。
--frag-sni-pos=<pos>
使用此选项, YouTubeunblock将在位置POS处拆分数据包。默认为1。
--quic-drop
丢弃所有转到YouTubeunblock的Quic数据包。不会影响任何其他UDP数据包。适用于某些电视。请注意,对于此选项,您还应将代理UDP添加到防火墙中的YouTubeunblock。 connbytes
也可以与UDP一起使用。
--fk-winsize=<winsize>
指定零碎的TCP数据包的窗口大小。如果您想将响应分解,则适用。可能会放缓连接初始化。
--synfake={1|0}
如果1,将在每个请求之前发送SYN有效载荷。这个想法取自Zapret Project的Syndata。 SYN有效载荷通常会被端点丢弃,但可以由TSPU处理。此选项在该有效载荷中发送正常假货。请注意,该选项适用于所有网站,因此-SNI域域不会改变任何内容。
--synfake-len=<len>
Synfake中发送的假数据包可能太大了。如果您遇到问题,请降低Synfake-Len。 Len代表应以Syndata的身份发送多少字节。如果要发送整个假数据包,请通过0。默认为0
--sni-detection={parse|brute}
指定如何检测SNI。解析通常通过解析客户端Hello消息来检测它。蛮横将浏览整个消息,并检查SNI发生的可能性。请注意,当--sni-domains
选项为“不全部”时,n的时间为o(nm)时间复杂性,n代表消息的长度,m是域的数量。默认为解析。
--seg2delay=<delay>
此标志迫使YouTubeunblock等待一点点,然后发送分组的第二部分。
--silent
禁用详细模式。
--trace
调试目的的最大详细性。
--no-gso
禁用使用GSO的Google Chrome Fat包的支持。此功能现在经过了经过测试,因此此标志可能不会修复任何内容。
--no-ipv6
禁用对IPv6的支持。如果您不希望打开IPv6插座,可能会很有用。
--threads=<threads number>
指定您想要为程序运行的线程数量。这默认为1 ,不应进行正常使用编辑。但是,如果您真的想要YouTubeunblock的多个队列实例,请注意,您应该更改 - Queue-num到 - Quele Balance。例如,使用4个线程,在iptables上使用--queue-balance 537:540
,而queue num 537-540
在Nftables上使用。
--packet-mark=<mark>
如果YouTubeunblock与其他系统发生冲突,请使用此选项。请注意,您可能需要更改Accept规则,以使Iptables遵循标记。
--fbegin
和--fend
标志:YouTubeunblock支持特定过滤器的多组策略。您可能需要在默认一个之后启动新集合,例如: --sni-domains=googlevideo.com --faking-strategy=md5sum --fbegin --sni-domains=youtube.com --faking-strategy=tcp_check --fend --fbegin --sni-domains=l.google.com --faking-strategy=pastseq --fend
。请注意,这些集合的优先级向后移动:最后一个是第一个,默认值(一个不以-fbegin开头的)是最后的。如果启动新部分,则默认设置将像YouTubeunblock一样实现,而没有任何参数。请注意,上面的配置只是一个示例,对您不起作用。
检查此问题是否有用的配置。
如果您在某些网站上遇到麻烦,并且确定它们被SNI阻止(例如YouTube),则使用可能会随着标志及其组合而播放。首先,建议您尝试--faking-strategy
旗帜和--frag-sni-faked=1
。如果您遇到一些麻烦,则可以使用一些网站,则可以使用标志值播放。例如,对于某人--faking-strategy=ttl
可以使用。您应该指定正确的--fake-sni-ttl=<ttl value>
其中TTL是您和DPI之间的啤酒花量。
如果您使用铬,则可能必须禁用Kyber (使TLS ClientHello非常大的功能)。我在路由器上遇到了问题,因此要避免可能的错误,因此最好将其禁用:在chrome://flags
搜索Kyber并将其切换为残疾状态。或者,您可以设置--sni-detection=brute
且可能调整--sni-domains
标志。
如果您的浏览器正在使用QUIC,则可能无法正常工作。将其禁用在Chrome中的Chrome中chrome://flags
和Firefox network.http.http{2,3}.enable(d)
in about:config
option。
似乎有些TSPU开始阻止犯错的数据包,因此您应该使用假装策略来玩耍。我个人建议从md5sum
伪造策略开始。
电视是最大的头痛。
在这个问题中,问题已经解决。现在,YouTubeunblock应该使用默认标志。如果没有,请使用假装策略和其他旗帜。另外,您可能必须禁用Quic。为此,您可能会使用带有适当防火墙配置的--quic-drop
Flag(检查标志的描述)。请注意,该标志不会禁用GQUIC,并且某些电视可能会中继它。要禁用GQUIC,您需要在防火墙配置中阻止UDP的整个443端口:
对于nftables做
nft insert rule inet fw4 forward ip saddr 192.168.. udp dport 443 counter drop
对于iptables
iptables -I OUTPUT --src 192.168.. -p udp --dport 443 -j DROP
您必须在哪里替换192.168 ..用电视的IP替换。
eperm可能发生在很多地方,但通常这里有两个: mnl_cb_run以及通过rawSocket发送数据包时(raw_frags_send并发送伪造的SNI)。
MNL_CB_RUN操作不允许,这表明YouTubeunblock的另一个实例正在指定的队列-NUM上运行。
不允许的RAWSOCKETS操作表明该数据包被Nefilter规则删除。实际上,这是内核的一个暗示,出现了问题,我们应该检查防火墙规则。在深入研究问题之前,让我们清洁如何发送修理包的数据包。 Nefilter队列为我们提供了飞行数据包的能力,但这并不适合该程序,因为我们需要将数据包分配给至少两个独立的数据包。因此,我们使用的是Linux RAW插座,使我们可以发送任何IPv4数据包。即使在向前设置NFqueue(适用于OpenWrt)时,数据包也从输出链中。因此,我们需要在这里逃脱数据包拒绝。
iptables -I OUTPUT -m mark --mark 32768/32768 -j ACCEPT
或nft insert rule inet fw4 output mark and 0x8000 == 0x8000 counter accept
。 在编译之前,请确保安装gcc
, make
, autoconf
, automake
, pkg-config
和libtool
。对于Fedora glibc-static
也应安装。
make
。 make install
。该软件包包括libnetfilter_queue
, libnfnetlink
和libmnl
作为静态依赖性。该软件包需要linux-headers
和NetFilter Nfqueue支持构建的内核。
该软件包也与路由器兼容。路由器应通过基于Linux的系统(例如OpenWrt)运行。
您可以在OpenWrt下构建两个选项:首先 - 通过SDK,这是首选的方式,第二个是与OpenWrt工具链手动交叉编译。
OpenWRT为软件包构建提供了高级SDK。
第一步是为您的特定平台下载或编译OpenWRT SDK。可以根据本教程对SDK进行编译。
除了SDK的原始源代码外,OpenWrt还为您的路由器提供了预编译的SDK。您可以在路由器页面上找到它。例如,我有基于ramips/mt76x8的路由器,所以对我而言,SDK在https://downloads.openwrt.org/releases/23.05.3/targets/ramips/ramips/mt76x8/并被称为openwrt-sdk-23.05.3-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64
。
如果遇到任何问题,则需要在系统上安装SDK要求,请使用Docker Ubuntu:24.04 Image。确保成为非根户用户,因为某些制造系统会失败。接下来,将SDK和CD添加到其中。
做
echo " src-git youtubeUnblock https://github.com/Waujito/youtubeUnblock.git;openwrt " >> feeds.conf
./scripts/feeds update youtubeUnblock
./scripts/feeds install -a -p youtubeUnblock
make package/youtubeUnblock/compile
现在构建了数据包,您可以将其导入路由器。在bin/packages/<target>/youtubeUnblock/youtubeUnblock-<version>.ipk
中找到它。
位于SDK附近的预编译工具链。例如,它称为openwrt-toolchain-23.05.3-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64.tar.xz
。当您下载工具链时,请在某个地方将其解开。现在我们准备好进行汇编了。我的Cross GCC要求我为其创建一个舞台,并将其作为环境变量传递。另外,您应该注意到工具包,然后用您的命令替换我的make命令。
STAGING_DIR=temp make CC=/usr/bin/mipsel-openwrt-linux-gcc LD=/usr/bin/mipsel-openwrt-linux-ld AR=/usr/bin/mipsel-openwrt-linux-ar OBJDUMP=/usr/bin/mipsel-openwrt-linux-objdump NM=/usr/bin/mipsel-openwrt-linux-nm STRIP=/usr/bin/mipsel-openwrt-linux-strip CROSS_COMPILE_PLATFORM=mipsel-buildroot-linux-gnu
看看CROSS_COMPILE_PLATFORM
这是自动工具所要求的,但我认为这不是必需的。无论如何,我将mipsel-buildroot-linux-gnu
放在这里。对于您的路由器型号,也许是一本汽车跨编译手册会有所帮助。
汇编完成后,二进制文件将在构建目录中。将其复制到路由器。请注意,可能需要进行SSH访问。 SSHF不起作用,因此我通过软件上传软件包页面将应用程序注入了路由器。它给了我一个错误,还有我在root Directory, chmod +x
IT并运行中复制的A /tmp/upload.ipk
文件。
本节介绍了YouTubeunblock的内核模块版本。内核模块作为内核内部的普通模块运行,并集成在NetFilter堆栈中,以无目前将其通过Internet发送的数据包无效。
您可以在Insmod中使用其标志配置模块:
insmod kyoutubeUnblock.ko fake_sni=1 exclude_domains=.ru quic_drop=1
请注意,标志名称与用于常规YouTubeunblock的标志名称不同(就像OpenWrt的UCI配置一样):替换-
用_
且无领先--
。另外,要配置togglers,您应该将它们设置为1
( quic_drop=1
)
还有一个好盗贼是冗长。内核模块结合了一个参数verbosity
轨道和 - 毫无用处的选项。此参数接受3个参数: trace
, debug
和silent
。我不建议在路由器上启用trace
mod,因为它可能会导致性能巨大问题,甚至冻结您的设备。
还支持所有参数(不包括数据包标记)的替换下降。如果要更改参数,则替换的下降不需要重新启动。您可以指定并检查模块目录中的参数: /sys/module/kyoutubeUnblock/parameters/
。例如,要将quic_drop设置为true,您可以使用next命令:
echo 1 | sudo tee /sys/module/kyoutubeUnblock/parameters/quic_drop
和
cat /sys/module/kyoutubeUnblock/parameters/quic_drop
检查参数。
要在主机系统上构建内核模块,您应该安装linux-headers
,以提供构建必需工具和gcc
编译器套件。在主机系统上,您可以使用
make kmake
要构建外部内核的模块,您应该在本地构建该内核并指向它。例如,使用KERNEL_BUILDER_MAKEDIR=~/linux
标志进行制作,例如:
make kmake KERNEL_BUILDER_MAKEDIR=~/linux
请注意,应该已经配置和构建内核。有关您的特定情况,请参见Linux内核构建手册。
使用OpenWrt SDK建造并不是一件很难的事情。您唯一应该做的就是获得SDK。您可以通过查看当前使用的OpenWrt的架构和版本来找到它。由于内核经常更改,因此您应该精确地使用OpenWrt版本。您可以通过两种方式找到SDK:通过从其网站下载或使用OpenWrt SDK Docker容器(建议)。
如果您决定下载焦油档案,请按照下一步步骤:对我而言openwrt-sdk-23.05.3-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64
档案中的档案https://downloads.openwrt.org/releases/23.05.3/targets/ramips/ramips/mt76x8/ openwrt-sdk-23.05.3-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64
。如果遇到任何问题,则需要在系统上安装SDK要求,请使用Docker Ubuntu:24.04 Image。确保成为非根户用户,因为某些制造系统会失败。接下来,将SDK和CD添加到其中。
或者,您可以使用sdk内置的docker映像:https://hub.docker.com/u/openwrt/sdk。就我而言,图像具有标签ramips-mt76x8-23.05.3
。这里的一件好事是,您不需要在Docker容器内安装任何依赖项。同样,如果您不确定哪个与您的设备相对应,Docker Hub在标签上也可以进行完美的搜索。
解开包装/安装SDK时,您可以从构建内核模块开始。
做
echo " src-git youtubeUnblock https://github.com/Waujito/youtubeUnblock.git;openwrt " >> feeds.conf
./scripts/feeds update youtubeUnblock
./scripts/feeds install -a -p youtubeUnblock
make defconfig
make package/kyoutubeUnblock/compile V=s
命令完成后,模块就准备就绪。使用find bin -name "kmod-youtubeUnblock*.ipk"
找到它,复制到主机,然后通过GUI软件接口安装到路由器。该模块应立即启动。如果不是,请做modprobe kyoutubeUnblock
。
YouTubeunblock也可能在Padavan上运行。在此处查看手册[RUS]
如果您有任何疑问/建议/问题,请随时打开问题。