繞過依賴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
。如果遇到任何問題,則需要在系統上安裝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]
如果您有任何疑問/建議/問題,請隨時打開問題。