2022. október 1., szombat

Gyorskeresés

LG webOS TV hekkelés - II. rész - Wireguard

Írta: | Kulcsszavak: wireguard . webos . cloudflare . warp . telekom

[ ÚJ BEJEGYZÉS ]

Az előző részben kifejtettem fő problémáimat a WebOS rendszerrel kapcsolatban és eljutottam odáig, hogy frissült a tanúsítvány, emiatt ismét működött a Plex elérése, illetve a YouTube is reklámmentes lett.

A következő áthidalásra váró probléma nem közvetlenül a TV hibája, ugyanakkor nézhetetlenné teszi a médiafogyasztást Plexen. Konkrétan a TV beüzemelését követően kb két hónapig semmi baj nem volt a lejátszással, aztán egyszer csak elkezdett akadozni mindenféle lejátszás. Minden más tökéletesen ment, kivéve a Plex lejátszást.

Eleinte arra gyanakodtam, hogy egy szoftverfrissítéssel fogta vissza a gyártó a TV-t, nade ennyire, hogy egy 480p lejátszás se megy neki? Meg ugyanezt, sőt jobbat is tud Netflixen/YouTube-n teljesíteni?

Ekkor a hálózatra kezdtem gyanakodni, mivel valószínűtlen lett volna, hogy ennyire drasztikusan visszaesik a TV teljesítménye. A hálózati felállás nálam úgy néz ki, hogy Telekomos legnagyobb optikai csomag otthon, a TV az itthoni gigabites routeren kapcsolódik 5 GHz-en, a Plex szerver pedig a messzi Finnországban foglal helyet és gigabites uplinkkel rendelkezik. Elméletben nem kéne gondnak lenni, a gyakorlatban viszont valami nem kerek.

Mit tesz ilyenkor az egyszeri ember? Elkezd gondolkozni, hogyha bizonyos szolgáltatásokat rendben elér a készülék, akkor bizony vélhetően a szolgáltató oldaláról lehet routing probléma. Tehát az az útvonal, ahol a kéréseid jőnnek-mennek, túlzsúfoltak, mert a szolgáltató nem fizet eleget az adott külföldi ISP-vel, vagy szimplán misconfig van a rendszerben. Ezekről könnyen meg lehet győződni egy mtr teszt futtatásával (létezik windowsra is: [link]) először a szerver irányából az otthoni IP cím felé, majd fordítva, otthonról a távoli szerver IP címe felé. Én hagytam futni 1000 csomag erejéig, majd azt a meglepő eredményt kaptam, hogy a szerver felől otthoni irányba semmi gond nincs, viszont fordítva az 1000 csomagból ~330 elveszett. És nem csak egy routernél nem látszódott az a ~330 csomag, hanem egy bizonyos routertől kezdve lehetett látni, hogy egyik sem kapta meg ezeket a csomagokat, így a szerveremhez sem ért el nyilván. Nem kérdés, hogy akadozott az adás.

Majd indítottam egy mezei pinget otthonról a szerver irányába és nem meglepő módon ott is sok esetben soha nem érkezett meg a csomag. Ezek után készítettem egy mini webszervert egy 1 GB-os teszt fájllal a Finn szerveren és letöltöttem otthonról. Hát borzasztó lassan jött le. Bingó! Ez szolgáltatói hiba, mégpedig hatalmas.

Már készítettem is elő a telefont, hogy bejelentsem a hibát a Telekomnak. Az igazat megvallva már ekkor is voltak kétségeim, mivel a finnekhez látszólag a Telia nevű ISP-n keresztül routolna a Telekom minket, amiről köztudott, hogy egy Tier 1 szolgáltató, azaz a legdrágább tarifákkal dolgoznak. De nem úgy ismerem a Telekomot, mint aki ne foglalkozna rendesen a routejaival, így gondoltam egy próbát megér.

Vandán több lerázó kör után átverekedtem magam, majd végső elkeseredésében kapcsolt egy szimpatikus fiatalemberhez, akinek vázoltam a problémát. Hát, nem teljesen értette a routinggal kapcsolatos problémát, meg nem igazán tudta, mi az a routing, így elmagyaráztam neki a problémát, mert először azt hitte, hogy egyáltalán nincs internetem, majd azt, hogy minden irányba lassú az internet. Végül abban maradtunk, hogy mivel ez egy összetett probléma, írjam le az online bejelentő felületen a problémát, csatoljam az mtr logot és ők majd továbbítják a technikusok felé. Hát így is tettem.

Ez volt tavasz közepén. Azóta nem történt semmi... Egy ideig írogattak, hogy a hiba elhárítása folyamatban van, majd azt írták, hogy megoldották a dolgot, de az égvilágon semmi nem történt.

Gondolkoztam, hogy milyen egyéb opcióim vannak megszüntetni a problémát. A legkézenfekvőbb nyilván az lett volna, ha lemondom a finn szervert és átköltöztettem a vasat a németekhez, mivel oda a Deutsche Telekomnak hála remek peeringje van a Magyar Telekomnak is. Ugyanakkor kering az interneten egy vicces videó a finn szerverek előnyéről: [link]. Mégpedig az, hogy olcsó az áram és a hűtés és így jelentőset lehet vele spórolni Németországgal szemben. Nem akartam csak a Magyar Telekom miatt többet fizetni a szerverért.

Így a következő ötlet, hogy ruházzak be egy VPN szolgáltatásba, aminek van budapesti szervere és azon keresztül tegyem elérhetővé a szervert is hamar el lett vetve. Egyrészt ez is egy extra 5 eurót jelentett volna, illetve kipróbáltam és a budapesti szerverek általában igencsak le voltak terhelve. Nomeg nem csak Telekom irányból szoktam Plexezni, hanem ha kell külföldön is. Emiatt a Finnország -> Magyarország -> célország ugrás nem hangzik valami fényesen.

Utolsó megoldásnak maradt az, hogy valamilyen úton/módon az otthoni hálózattal kezdek valamit, hogy a finn szerverem irányába máshogy távozzon a forgalom. Ekkor jutott eszembe a Cloudflare egyik szolgáltatása, a Warp, ami lényegében pontosan erre a célra lett megalkotva. Van egy ingyenes csomagja, ami annyit ad, hogy wireguard protokollon keresztül kapcsolódsz a szervereikhez és rajtuk keresztül megy az internetes forgalmad. Általában ennek otthoni hálózaton nincsen létjogosultsága, meg vitatható, hogy egy amerikai adathörcsög számára mennyire célszerű az adatainkat kiadni, de ha nincs az embernek saját VPN-je, pl. egy repülőtéri wifin lógva nem rossz ötlet warpot használni.

Azt tudni kell róla, hogy nem tekinthető olyan szempontból teljes értékű VPN szolgáltatásnak, hogy míg egy átlagos VPN esetében minden meglátogatott szolgáltatás a VPN szerver IP címét látja, a warp esetében a szintén Cloudflare által hosztolt weboldalak ténylegesen a te IP címed fogják megkapni.

Számomra viszont tökéletes megoldásnak tűnt a dolog, mivel a Plex szerverem eleve titkosított HTTPS kapcsolatot használ, így a Cloudflare sem lát bele a forgalomba, ugyanakkor a legközelebbi warp szerver konkrétan a bixből elérhető, így konkrétan egyenesen Magyarországról, vagy ritkán Bécsből/Frankfurtból lépnék fel a Cloudflare hálózatára, amivel egyrészt nincs gondja a Telekomnak sem, másrészt a Cloudflare köztudottan egész normális peeringgel rendelkezik egy otthoni ISP-vel szemben.

Megvolt tehát a terv, ráadásul teljesen ingyenes is, így a warp mellett döntöttem. Felrakhattam volna a routerre is, de úgy döntöttem, hogy ha már van root a TV-n, felrakom közvetlenül arra.

Következzen tehát az írás lényegi része! A wireguard fordítása és beállítása a TV-n!

Természetesen mielőtt belevágtam volna a történetbe, elsőként átgondoltam, hogy mennyire bírná a TV a VPN témát, de arra jutottam, hogyha sikerül a wireguardot, mint kernelmodult betölteni, akkor vajmi kevés extra terhelés lesz a TV-n és mellette gyakorlatilag VPN-nel is képes lesz közel ugyanolyan netsebességet produkálni, mint anélkül.

Ezeket átgondolva, ugorhatunk a gyakorlati részre. Én a fordításhoz egy Fedora Szervert használok, de természetesen bármilyen más linuxos disztró megfelelő lehet, amennyiben x64 telepítés.

Elsőként szükségünk lesz a TV kernel forrásaira, amit az oldalukon keresztül tudunk letölteni: [link]. Fontos, hogy a pontos TV típusra keressünk rá és a megfelelő forrásokat töltsük le.

Ehhez hozzunk létre egy mappát:

mkdir ~/build/webos-kernel -p
cd ~/build/webos-kernel

Majd én a következőképp töltöttem le a fájlt (persze a kézzel letöltés és mappába másolás is működhet):

curl 'https://opensource.lge.com/fileMgr/downloadIdx/op/32LK6200PLA/508410/1' -X POST -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H 'Content-Length: 0' -H 'Origin: https://opensource.lge.com' -H 'Connection: keep-alive' -H 'Referer: https://opensource.lge.com/osSch/list?types=NAME&search=LK6200PLA' -H 'Cookie: JSESSIONID=redacted; AWSELB=redacted' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: same-origin' -H 'Sec-Fetch-User: ?1' -H 'DNT: 1' -H 'Sec-GPC: 1' -o "webOS 4.0 GM_1.0.tar.gz"

A letöltés kicsi időbe fog telni, mivel a kiszolgáló nem éppen a leggyorsabb, de ha rendben lejött, csomagoljuk is ki (fájlnév eltérhet!):

tar xf webOS\ 4.0\ GM_1.0.tar.gz

Majd az ls parancs segítségével nézzünk körül a kicsomagolt állományban. Nekem egyetlen GM-r3201/ mappát hozott létre, azon belül pedig egy tucat csomag található:

[mrdini@hal-9000 GM-r3201]$ ls -la | wc -l
121
[mrdini@hal-9000 GM-r3201]$ ls -la | grep kernel
-rw-r--r--. 1 mrdini mrdini 146687748 Feb 6 2018 kernel-b153.tar.gz
-rw-r--r--. 1 mrdini mrdini 340944 Feb 6 2018 m3-mali-utgard-kernel.tar.gz

Innen lehet tippelni, hogy a kernel-b153.tar.gz lesz a kernel forrás, mivel jelentősen nagy csomag. Csomagoljuk ki:

tar xf kernel-b153.tar.gz; cd cd kernel-b153/

Itt találunk egy README.txt-t, ha minden igaz, hasonló tartalommal:

[mrdini@hal-9000 kernel-b153]$ cat README.txt
Kernel
******************

Compilation for webOS TV
========================

Compiler :
LGE provides the boot toolchain for webOS TV SW upon email request to opensource@lge.com.

How to compile :
$ Set the toolchain
$ cd kernel
$ make ARCH=arm m3_defconfig
$ make ARCH=arm modules -j8
$ make ARCH=arm MSTAR_UIMAGE=1 uImage -j8

Ahogy olvasható, felhívja a figyelmet, hogy a kernel forrás fordításhoz használatos toolchaint csak és kizárólag kérésre adják ki... Ugyanakkor a felesleges emailre várakozástól megkímél minket ez a közzétett toolchain projekt, mivel eddigi tapasztalataim alapján az összes LG WebOS TV armv7l soft float architektúrára épül, így ezt tökéletes lesz nekünk is: [link]

Telepítsük most ezt is. Fontos, hogy legyen python a hoszt gépen!

wget https://github.com/webosbrew/meta-lg-webos-ndk/releases/download/1.0.g-rev.4/webos-sdk-x86_64-armv7a-neon-toolchain-1.0.g.sh -O $HOME/webos-sdk-x86_64-armv7a-neon-toolchain-1.0.g.sh
chmod +x $HOME/webos-sdk-x86_64-armv7a-neon-toolchain-1.0.g.sh
$HOME/webos-sdk-x86_64-armv7a-neon-toolchain-1.0.g.sh

Várjuk meg, míg a telepítő végez, majd ahogyan az ő is ajánlja, adjuk ki a környezeti változók beállítására szolgáló shell parancsot:

. /opt/webos-sdk-x86_64/1.0.g/environment-setup-armv7a-neon-webos-linux-gnueabi

A $HOME/webos-sdk-x86_64-armv7a-neon-toolchain-1.0.g.sh fájl természetesen törölhető.

Most pedig térjünk vissza a kernelhez és kövessük az utasításokat a README-ből:

cd kernel/
make ARCH=arm m3_defconfig

Ezzel létrejött az a .config fájl, ami tartalmazza a TV-n futó gyári kernel összes opcióját.

Mindenekelőtt győződjünk meg arról, hogy a TV-n valóban pontosan ez a kernel verzió fut:

[mrdini@hal-9000 kernel]$ cat .config | head
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 4.4.84 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_HAVE_PROC_CPU=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y

Azaz az itt látható esetemben 4.4.84-es verzió a tv-n futtatott uname -a kimenettel megyegyezik-e. Ha nem, akkor írni kell a gyártónak, hogy tessék kiadni a friss kernelt.

Megtehetnénk, hogy ezen a ponton továbbmegyünk a modulok fordítására, ahogy azt eredetileg én is tettem, de a későbbiekben felfedeztem, hogy esetemben két a wireguard modul számára elengedhetetlen kernel opciót nem tartalmaz a TV (elképzelhető, hogy más TV-k esetében ezzel nem lesz probléma, akkor lehet ugrani a wireguard fordításra):

[mrdini@hal-9000 kernel]$ cat .config | grep UDP_TUNNEL
# CONFIG_NET_UDP_TUNNEL is not set

A másik nagyon fontos dolog megnézni, hogy a gyári kernel képes-e modulok betöltésére:

[mrdini@hal-9000 kernel]$ cat .config | grep CONFIG_MODULES=
CONFIG_MODULES=y

Ha nem, akkor itt game over, ilyen esetben le kéne cserélni a TV-n a teljes kernelt. Esetünkben viszont egy y szerepel a sor mellett, tehát mehetünk tovább!

Tehát ezt is be kell majd állítanunk, amihez a legegyszerűbb, ha feltesszük a gépre az ncurses-dev(el) csomagot, majd kiadjuk a make menuconfig parancsot. Ezt követően egy viszonylag barátságos konzolos GUI tárul a szemünk elé, ahol számunkra a Networking Support menü lesz érdekes, azon belül pedig a Networking Options, majd a IP: Foo (IP protocols) over UDP opción állva nyomjunk egy M betűt, azaz érjük el, hogy betölthető modulként forduljon le.

Ha jól dolgoztunk, hasonlót kell látnunk:

[mrdini@hal-9000 kernel]$ cat .config | grep UDP_TUNNEL
CONFIG_NET_UDP_TUNNEL=m

Rendben, most térjünk vissza a readme lépéseihez, hiszen szükség lesz a kernelmodulok fordítására is az újonnan hozzáadott udp_tunnel miatt:

make ARCH=arm modules -j8

Pont beletrafáltak az LG-nél, mert 8 magos gépen fordítok, de ha kevesebb/több mag lenne a gépben, lehet a -j értékét a parancsban definiálni.

Ha szépen, hibamentesen lefutott a folyamat, nézzünk rá az eredményre:

[mrdini@hal-9000 kernel]$ readelf -h net/ipv4/udp_tunnel.ko
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: ARM
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 238328 (bytes into file)
Flags: 0x5000000, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 33
Section header string table index: 32
[mrdini@hal-9000 kernel]$ readelf -h net/ipv6/ip6_udp_tunnel.ko
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: ARM
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 236180 (bytes into file)
Flags: 0x5000000, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 31
Section header string table index: 30

Ha valaki nagyon biztosra akar menni, meg lehet nézni egy a TV-n betöltött modul esetén is, hogy egyezik-e a gyárilag a TV-n található kernel modul magic headerje a frissen forgatott modulokéval. Ehhez a TV-n kiadom az lsmod parancsot, majd találomra kiválasztom a listából a tfat modult például. Ezt követően megkeresem, hol található a fájlrendszerben ez a fájl:

root@LGwebOSTV:~# find / -name tfat.ko
/lib/modules/4.4.84-404.glacier.10/kernel/tfat.ko
/mnt/lg/res/lglib/tfat.ko

A TV-men nincs readelf parancs, de átmozgatva a gépre látható, hogy valóban megegyezik a magic header, tehát a kernelbe betölthető lesznek a moduljaink :C:

ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: ARM
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 378552 (bytes into file)
Flags: 0x5000000, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 32
Section header string table index: 29

Jöhet a wireguard fordítása, ami ezen leírás alapján egy pofonegyszerű művelet: [link]

Telepítsük a cikk által említett függőségeket, ha még nem lennének fent, majd szedjük le a forrást gitről:

cd ~/buld/webos-kernel
git clone https://git.zx2c4.com/wireguard-linux-compat

Magát a modul fordító parancsot azonban egy kicsit módosítanunk kell, hogy figyelembe vegye a wireguard forrás, hogy mi a TV kernelére fordítanánk, nem pedig a hoszt géphez:

KERNELDIR=$HOME/webos-kernel/GM-r3201/kernel/kernel-b153/kernel make -C wireguard-linux-compat/src -j$(nproc)

Ha ez a parancs hibára futna, márpedig a cikk írása közbeni tesztelések közepette nekem hibára futott a fordítás, akkor a megoldás az, hogy 16 órája bekerült pár commit a modulba, ami miatt nem fordul le rendesen a modul. Ezeket visszafordítva menni fog:

cd wireguard-linux-compat/
git checkout 29747255f9672035ccf9cc310b7ff66b1f35f1d2
cd ..

Ezzel az utolsó modulunk is lefordult:

[mrdini@hal-9000 webos-kernel]$ readelf -h wireguard-linux-compat/src/wireguard.ko
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: ARM
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 4398352 (bytes into file)
Flags: 0x5000000, Version5 EABI
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 47
Section header string table index: 46

Remek!

Már csak magát a wireguard-tools csomagot kell lefordítanunk. Ehhez adjuk ki:

git clone https://git.zx2c4.com/wireguard-tools
PREFIX="/tmp/usb/sda/sda1" make -C wireguard-tools/src -j$(nproc)

Ha ez is sikerrel lefutott, akkor hozzunk létre egy mappát, majd másoljuk bele a szükséges fájlokat:

mkdir pendrive/
cd pendrive/
cp ../GM-r3201/kernel-b153/kernel/net/ipv4/udp_tunnel.ko ../GM-r3201/kernel-b153/kernel/net/ipv6/ip6_udp_tunnel.ko ../wireguard-linux-compat/src/wireguard.ko ../wireguard-tools/src/wg .

Ezt követően szükségünk lesz még egy Cloudflare Warp konfigra is, amit a wgcf nevű projekttel tudunk a legegyszerűbben generálni: [link]

mkdir ~/build/wgcf
cd ~/build/wgcf
wget https://github.com/ViRb3/wgcf/releases/download/v2.2.10/wgcf_2.2.10_linux_amd64 -O wgcf
chmod +x wgcf
./wgcf register

Fogadjuk el a felhasználási feltételeket, aztán következhet is a config generálása:

./wgcf generate

Ez létrehoz az aktuális mappába egy wgcf-profile.conf fájlt, amire nekünk majd szükségünk lesz. Azonban ilyen formában csak a wg-quick lenne képes kezelni ezt a konfigot, így át kell alakítanunk wg kompatibilisre. Ezt nagyon egyszerűen meg tudjuk tenni, ha a build gépen fent van a wireguard-tools csomag (ne kérdezzétek, miért kell root a parancsnak):

sudo wg-quick strip wgcf-profile.conf > ~/build/webos-kernel/pendrive/wg.conf

Utolsó lépésként pedig térjünk vissza a ~/build/webos-kernel/pendrive mappába és készítsünk egy setup-vpn.sh fájlt a kedvenc szüvegszerkesztőnkkel és a következő tartalommal:

ip link add wgcf-profile type wireguard
$PWD/wg setconf wgcf-profile $PWD/wg.conf
ip -4 address add 172.16.0.2/32 dev wgcf-profile
ip -6 address add fd01:5ca1:ab1e:<Tölts ki a wgcf-profile.conf alapján>/128 dev wgcf-profile
ip link set mtu 1280 up dev wgcf-profile
ip -4 route add PLEXSZERVERIPCIME/32 dev wgcf-profile

Gyakorlatilag ez a pár parancs elegendő ahhoz, hogy létrehozza a wgcf-profile interfészt, beállítsa neki a konfigot, adjon neki IP címet és az MTU-t is megfelelően beállítsa. Az utolsó sorban pedig beállítom, hogy a Plex szerverem IP címét mindig a wgcf-profile interfészre routolja. Az összes többi forgalomhoz nem lesz használva a warp. :)

Ezek után a pendrive mappa tartalmát másoljuk egy tetszőleges pendrivera, és azt helyezzük a tv-be. Adjuk ki a következő parancsokat:

cd /tmp/usb/sda/sda1/
sh setup-vpn.sh

Ha minden jól megy és nem dob errort, akkor az ifconfig wgcf-profile parancs kiadását követően láthatjuk, hogy valóban működik az interfész és kapott IP-t:

root@LGwebOSTV:/tmp/usb/sda/sda1# ifconfig wgcf-profile
wgcf-profile Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.16.0.2 P-t-P:172.16.0.2 Mask:255.255.255.255
inet6 addr: fd01:5ca1:ab1e:redacted/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1
RX packets:6212264 errors:0 dropped:0 overruns:0 frame:0
TX packets:257262 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:8059346800 (7.5 GiB) TX bytes:26973504 (25.7 MiB)

Illetve a ./wg parancs is használható infók ellenőrzésére.

De a curl parancsot is használhatjuk tesztelni:

root@LGwebOSTV:/tmp/usb/sda/sda1# curl --interface wgcf-profile https://ifconfig.co/cdn-cgi/trace | grep warp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 197 0 197 0 0 472 0 --:--:-- --:--:-- --:--:-- 474
warp=on

Sőt, a ping is működik:

root@LGwebOSTV:/tmp/usb/sda/sda1# ping -I wgcf-profile 1.1
PING 1.1 (1.0.0.1) from 172.16.0.2 wgcf-profile: 56(84) bytes of data.
64 bytes from 1.0.0.1: icmp_seq=1 ttl=64 time=11.8 ms
64 bytes from 1.0.0.1: icmp_seq=2 ttl=64 time=11.8 ms
64 bytes from 1.0.0.1: icmp_seq=3 ttl=64 time=10.7 ms
64 bytes from 1.0.0.1: icmp_seq=4 ttl=64 time=9.61 ms
64 bytes from 1.0.0.1: icmp_seq=5 ttl=64 time=9.83 ms
64 bytes from 1.0.0.1: icmp_seq=6 ttl=64 time=9.82 ms
^C
--- 1.1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5008ms
rtt min/avg/max/mdev = 9.616/10.621/11.853/0.936 ms

Ezek után ha elindítunk egy filmet a Plexen, az valóban egy Cloudflare IP címet fog mutatni:

Egyelőre ez a megoldás még nem éli túl a rebootot, így olyankor mindig le kell futtatni a következő két parancsot:

cd /tmp/usb/sda/sda1/
sh setup-vpn.sh

De erre is lesz a közeljövőben megoldás. Illetve ha be van kapcsolva a gyors indítás+, vagy mifene, a TV soha nem kapcsol ki ténylegesen, csak a képernyőt pihenteti, illetve a hálózatot, a RAM marad aktív, tehát egész sokáig túléli a wireguard konfig. Hacsak persze nem rebootolunk kézzel, vagy húzzuk ki a TV-t.

Végezetül pedig szeretném felhívni a figyelmet, hogy NE próbálkozzunk meg egymással megosztott kernelmodulokat betölteni még ha azonos TV modellről van is szó, győződjünk meg róla, hogy azok minden szempontból kompatibilisek! Bár a kernel valószínűleg nem is fogja betölteni, ha más kernel verzióra lett fordítva, vagy épp a magic header nem egyezik, óvatosan!

Nade, mára ennyit! Így is picit hosszabb lett a cikk, mint terveztem. :B

Hozzászólások

(#1) hcl


hcl
félisten
LOGOUT blog

Aztamocsok, ez szép munka :)

Veszek _hibás_ LCD monitort,fényképezőgépet, objektívet, routert ---- Mutogatni való hater díszpinty

(#2) UnA válasza hcl (#1) üzenetére


UnA
Korrektor

Szép .... de ha nem volna a rendszer elbonyolítva, akkor nem lenne rá szükség :)

Van ugye például egy finn szerver...

(#3) Mr Dini válasza UnA (#2) üzenetére


Mr Dini
addikt

Tény és való. Vagy esetleg ha a Telekom végre foglalkozna a telia peeringgel egy kicsit (nem csak a finneket, a spanyolokat is érinti pl), eleve nem lenne ilyen gond.

Nekem megérte, mert bár az írás lehet egy picit hosszú lett, a gyakorlatban az egész mutatvány 20 percembe fájt és így még mindig olcsóbban jövök ki a szerverrel, mint a home hosztinggal, vagy pl egy német lokációval.

Illetve a későbbiekben más célja is lesz majd a VPN témának weboson.

Sose köss bele az antikvitásba!

(#4) Gargouille


Gargouille
őstag

Nagyon szép munka, komolyan mondom öröm volt olvasni! Elismerésem!

Lassan kiderül, hogy amit korábban abszurd humornak gondoltunk, az csak szimpla jövőbelátás volt.

(#5) Savageboy válasza UnA (#2) üzenetére


Savageboy
aktív tag

Simán előfordul ilyen probléma itthoni szerver viszonylatában is különböző ISP-k között (saját tapasztalat). Javult ugyan a helyzet amióta a kis helyi szolgáltatót szüleimnél megvette a Tarr Kft., de továbbra sincs meg a teljes sávszélesség két végpont között: DIGI-s FTTH 1000/300-en lógó szerver és Tarr-os DOCSIS 150/10 netet használó kliensek esetén. Régebben még a Plex szerverről streamelt 1080p anyagok is gyakran szakadoztak, most már egész jól megy akár a 60Mbps Moonlight játékstream is (bár azért random fel-felugrál a packet loss akár 5% köré is...).

Apropó köszönöm szépen a jelen blogbejegyzés előző részét, régebben én is kerestem a módját az anno Telekomnál jó áron vásárolt LG 60UJ634V tv okosításának, de akkor még nem találtam rá megoldást, a hétvégén azonban az ismertetett módon kb. 5 perc volt rootolni, és remekül megy az Ad Free Youtube rajta. :R

[ Szerkesztve ]

(#6) teser76


teser76
újonc

Rootolnám a tv de nem tudom mivel a legfrissebb került rá,

A 05.00.10 lenne a korábbi de az enyémhez nem találok .

Ezek jók elvileg, esetleg valaki nem tud segíteni?

55UM7510PLA

65UM7510PL
55UM7610PLB

65UM7610PL
55UM76107LB

65UM76107L
55UM7660PLA

65UM7660PL
43UM7500PLA

50UM7500PL
43UM76007LB

50UM76007L
49SM8200PLA

55SM8200PL
65SM8200PLA

49SM82007L
55SM82007LA

65SM82007L
49SM8000PLA

55SM8000PL
65SM8000PLA

43UM7450PL
49UM7450PLA

50UM7450PL
55UM7450PLA

65UM7450PL
70UM7450PLA

65UM7100PL
70UM7100PLA

75UM7110PL
43UM7490PLC

49UM7490PL
43UM74507LA

50UM74507L
55UM74507LA

65UM74507L
43UM71007LB
49UM71007LB

55UM71007L
60UM71007LB

43UM7100PL
49UM7100PLB

55UM7100PL
60UM7100PLB

43UM7300PL
49UM7300PLB

50UM7300PL
55UM7300PLB

65UM7300PL
43UM7390PLC

49UM7390PL
43UM7400PLB

49UM7400PL
55UM7400PLB

65UM7400PL
43UM7600PLB

50UM7600PL
75UM7600PLB

43UM7650PL
50UM7650PLA

49SM8050PL
55SM8050PLC

65SM8050PL
75UM7020PLA

43UM7090PL
49UM7090PLA

75UM7090PL
43UM7000PLA

49UM7000PL
65UM7000PLA

75UM7000PL
65UM7050PLA

75UM7050PL
43UM7050PLF

49UM7050PL
75UM7050PLF

43UM7020PL
49UM7020PLF

55UM7000PL
55UM7050PLC

(#7) Mr Dini válasza teser76 (#6) üzenetére


Mr Dini
addikt

Írtam privátot.

Sose köss bele az antikvitásba!

(#8) teser76


teser76
újonc

köszi a segítséget, sikerült a downgrage és a root is. A karácsony reklám mentesen telt. :))

Az én tévémbe nincs bt alapból bár szerintem csak szoftveres tiltás lehet. Ezt hogy lehetne orvosolni?

További hozzászólások megtekintése...
Copyright © 2000-2022 PROHARDVER Informatikai Kft.