Przyspieszanie łącza internetowego

Wpis, który przeleżał jako szkic ponad rok. I bardziej go już nie skończę, więc publikuję, jak jest. Miały być testy i dokładne konfiguracje, ale z braku czasu będzie czysta teoria. Tak czy inaczej myślę, że przyda się ludziom z wolnymi łączami lub korzystającym z WWW (i nie tylko…), a chcącym zminimalizować ilość przesłanych danych do urządzenia końcowego. Do rzeczy.

Na podstawie doświadczeń z Aero2, czyli łącza zarówno wolnego (niska przepływność) jak i zlagowanego (duże opóźnienia pakietów), postanowiłem popełnić krótki poradnik, jak przyspieszyć działanie sieci na wolnym łączu internetowym. Zwykle zakładam w tym poradniku, że użytkownik korzysta z Linuksa, ale nie zawsze i część sposobów przyda się niezależnie od systemu.

Krok pierwszy – przyspieszanie zapytań DNS

Ważna sprawa, bo serwery DNS odpytywane są coraz częściej. Otwarcie pojedynczej strony internetowej to w dzisiejszych czasach często kilkanaście, a nawet kilkadziesiąt zapytań do serwerów DNS. W przypadku zlagowanego połączenia do każdego zapytania dochodzi opóźnienie łącza. Można sobie pomóc poprzez wykorzystanie lokalnego cache DNS. Z prostych w konfiguracji polecam opisany kiedyś dnsmasq lub lekki i wydajny unbound. Cache DNS działa dla całego systemu, nie tylko dla stron WWW, ale w ich przypadku różnica powinna być najbardziej widoczna. Dodatkowa zaleta to uniezależnienie się od potencjalnych problemów z serwerami DNS naszego dostawcy łącza.

Krok drugi – kompresja danych

Mechanizm kompresji danych na wolnym odcinku nie jest niczym nowym. Od dawna z powodzeniem stosuje go Opera w swojej funkcji turbo. Pierwsza obróbka strony odbywa się na ich serwerach, które dysponują szybkimi łączami. Dodatkowo może się odbywać redukcja zbędnych elementów. Zaletą rozwiązania jest łatwość uruchomienia – wystarczy kliknąć przycisk w Operze. Wadą rozwiązania jest to, że wymaga korzystania z Opery i działa tylko dla stron WWW.

Kompresja danych – DIY

ziproxy

Jeśli mamy dostęp do serwera (może być VPS) z Linuksem, możemy w prosty sposób stworzyć podobne rozwiązanie samodzielnie, korzystają z programu ziproxy. Instalujemy je na serwerze, konfigurujemy, jak bardzo mają być redukowane grafiki (60-70% wygląda znośnie), ustawiamy adres IP i port serwera jako proxy w przeglądarce i.. tyle. Od tej pory przez wolne łącze przesyłane są zredukowane (stratnie, zatem gorzej wyglądające) obrazy. Reszta danych jest przesyłana w postaci skompresowanej.

Zaleta jest taka, że działa z każdą przeglądarką i – dla paranoików – że nasze dane nie błądzą po serwerach Opery.

Wady: działa tylko dla WWW, stopień redukcji obrazów ustala się raz, nie ma możliwości dynamicznej zmiany jakości (np. obejrzenie wybranych obrazów w lepszej jakości).

sshuttle

Jeśli mamy dostęp do serwera z Linuksem i dodatkowo ma on zainstalowanego Pythona, to możemy skorzystać z VPN over SSH, czyli shuttle. Rozwiązanie powstało jako namiastka VPN i miało pierwotnie bardziej zapewniać bezpieczeństwo transmisji (szyfrowanie) w przypadku otwartych hotspotów. Można je jednak skonfigurować tak, aby ruch był kompresowany (wykorzystanie kompresji SSH).

Zaletą jest to, że działa dla całego ruchu (TCP), nie tylko dla WWW. Można określić, do których sieci ruch ma być obsługiwany przez to rozwiązanie.

Wada: działa tylko dla TCP (oraz zapytań DNS), wymaga zainstalowanego Pythona na maszynie pełniącej rolę serwera.

ssh + socks proxy

Jeśli nie chcemy instalować dodatkowego oprogramowania, a mamy dostęp do serwera z Linuksem, możemy w prosty sposób wykorzystać tunelowanie SSH oraz – podobnie jak w poprzednim przypadku – wykorzystać kompresję oferowaną przez SSH. W tym celu ustawiamy socks proxy w przeglądarce na localhost oraz port 9000, oraz uruchamiamy ssh -CND 9000 user@serwer. Od tej pory ruch WWW tunelowany jest przez SSH do serwera. Jeśli zależy nam nie tylko na wydajności, ale i na prywatności, warto sprawdzić ustawienia przeglądarki dotyczące przesyłania zapytań DNS przez proxy.

Zaleta: łatwość uruchomienia (na systemach *nix).

Wady: działa tylko dla ruchu WWW (lub jawnie przetunelowanego z innych aplikacji), wymaga przeglądarki WWW ze wsparciem dla socks proxy (praktycznie każda sensowna ma tę opcję dostępną w ten lub inny sposób).

OpenVPN

Ostatni sposób to wykorzystanie OpenVPN oraz wbudowanej kompresji. Wymaga skonfigurowanego OpenVPN zarówno po stronie klienta jak i serwera.

Zalety: działa dla wszystkich rodzajów ruchu.

Wady: wymaga zainstalowania i skonfigurowania OpenVPN. Dochodzi narzut CPU na szyfrowanie (domyślnie będzie włączone, zwł. u zewnętrznych providerów).

Oczywiście cudów nie ma i ww. sposoby pomogą jedynie dla treści, które przesyłane są jako nieskompresowane i dobrze się kompresują. Nie ma co liczyć, że filmy na YouTube zaczną działać szybciej. Osobiście idę na łatwiznę i korzystam zwykle z ssh i socks proxy.

Opera Mini 7.0 na starszym telefonie.

Na mojej dość leciwej[1] już Nokii 3110c korzystałem do tej pory z teoretycznie niewspieranej na nim Opery Mini w wersji 5. Działało to całkiem przyzwoicie, nawet na więcej niż jednym tabie[2], a na jednym (standardowy sposób korzystania) wręcz bezproblemowo.

Jakiś czas temu zauważyłem, że przy wejściu na stronę przeglądarka krzyczy, że jest dostępny update. Do tej pory nie krzyczała, więc uznałem, że jakiś security i spróbowałem zrobić upgrade. Zgodnie z przewidywaniami, Opera wiedziała lepiej czego chcę i nie pozwoliła na instalację nowej wersji. Postanowiłem skorzystać ze sprawdzonego sposobu[3], czyli pobrać pliki na komputer i przerzucić na telefon po bluetooth. Udało się prawie od kopa – z nieznanego powodu plik jad wysyła się bez problemu, natomiast jar nie chciał. Nie bawiłem się w debugowanie, tylko wrzuciłem pliki po kablu USB. Co prawda chwilowo są w nieco innej lokalizacji (na karcie SD), ale ma to tę zaletę, że nie musiałem usuwać starszej wersji i mogę korzystać z obu, naprzemiennie[4]. I zapewne bez problemu da się przenieść korzystając z opcji w telefonie.

Opera Mini w wersji 7.0 jak najbardziej działa na starym telefonie, jakim jest Nokia 3110c. Nawet mam wrażenie, że jest nieco szybciej i nieco lepiej. Trochę większe czcionki, trochę pozmieniane – IMO bardziej logiczne – menu. Zmieniony jest Speed Dial, i ta zmiana również mi się podoba. Bardziej tekstowo, bardziej w stylu wersji czwartej, z której byłem bardzo zadowolony.

Jedyne czego nie testowałem specjalnie, to więcej niż jedna zakładka. Na oko działa, ale miałem raptem dwie lekkie strony przez chwilę jednocześnie. W każdym razie póki co jestem bardzo zadowolony i polecam upgrade, nawet na starym telefonie.

[1] Ładny eufemizm na czteroletni telefon, prawda? Z perspektywy czasu patrząc – świetna konstrukcja. Nadal około tygodnia na oryginalnej baterii trzyma, z WWW da się korzystać. Mało softu już wychodzi, ale i funkcji mało, więc co miało być, to jest… Ciekawe czy teraz któryś nowy telefon „przeżyje” 4 lata.

[2] Więcej niż jeden, czyli dokładnie dwa taby. I wiem, poprzednio przy opisywaniu wrażeniu z bety wersji 5 pisałem, że się sypie. Niemniej na chwilę jakąś lekką stronę można było włączyć. Może w pełnej wersji poprawili…

[3] O odkrytym wcześniej patencie na instalację piątki zapomniałem, choć opisałem. W sumie dwa i pół roku upłynęło… Szybko płynie czas.

[4] Oczywiście jeśli nowa będzie działać, to jest to zbędne, ale gdyby nie działała to – biorąc pod uwagę problemy z wgrywaniem bo bluetooth czy ew. niedostępnością starszej wersji – miałbym problem w postaci braku sensownej przeglądarki na telefonie.

Tablet Go Clever A73, czyli Android po raz pierwszy.

Tablet Go Clever A73

Źródło: http://ebloog.pl/tablet-goclever-tab-a73-tani-i-solidny-tablet

Tak się składa, że i tak chciałem kupić kolejne urządzenie z ARM pod Linuksa i niekoniecznie Raspberry Pi. Co prawda nieco inne i do nieco innych zastosowań, ale pomysł kupna tabletu i sprzedania ekranu dotykowego też się w dyskusji pojawiał (bateria, czyli UPS gratis, albo też na sprzedaż – co kto lubi), bo płytka z ARM to płytka z ARM, więc zawsze będzie można pobawić się Linuksem, jak się Android nie spodoba. No i nie ma co ukrywać, tablet ma szansę być nieco bardziej funkcjonalny w wersji z Androidem, a do czytania książek w wersji elektronicznej w domu też by się coś przydało.

Ponieważ znowu pojawiły się w Biedronce tablety Go Clever A73, tym razem za 299 zł, postanowiłem dać mu szansę, tym bardziej, że niektóre książki występują raczej tylko w wersji elektronicznej, a czytania książek na komputerze szczerze nienawidzę i nie wyobrażam sobie siedzenia przy klawiaturze i czytania książki. No i w końcu laptop, nawet 14″, nie jest szczytem wygody, jeśli chodzi o zabranie go do łóżka. No i wreszcie trzeba trochę poznać nowoczesną technologię (tak, do tej pory nie używałem ani urządzeń z Androidem, ani tabletów).

Nie będę pisał kolejnej recenzji tego sprzętu – było ich mnóstwo, więc zainteresowani na pewno coś bez trudu znajdą. Natomiast Android (przyszedł w wersji 4.0.4) jest specyficzny. Dziwnie się to na początku obsługuje (nic wspólnego z intuicyjnością nie ma, choć trudne nie jest), dziwnie się instaluje oprogramowanie. Nawigacja paluchem jest mało wygodna, szczególnie trudno jest trafić – ku memu zdziwieniu – w linki w przeglądarce. Pisanie też niczego nie urywa, choć nie da się ukryć, że na ekranie dotykowym pisze się wygodniej niż na klawiaturze telefonu, ale od klawiatury laptopa jednak dzieli go jednak przepaść.

Nie wnikałem specjalnie w recenzje softu, tylko samodzielnie buszowałem po sklepie Play i… ciężko jest coś sensownego bezpłatnego znaleźć. Z jednej strony mnogość, z drugiej brak sensownych kryteriów oceny. W końcu wybrałem jakiś czytnik ebooków, ale drugi, z podobną oceną był IMVHO nieużywalny.

Słowo o przeglądarkach WWW na tablety – doceniam Operę mini na telefonie. I w sumie Opera mini (tak, mini, nie mobile, tej drugiej nie testowałem) najlepiej mi przypasowała na tablecie (testowane także Firefox beta – AdBlock rulez!, bo reklam na tablecie zatrzęsienie oraz chyba Chrome – przyszło z tabletem i nazywało się Internet).

W A73 brakuje potencjalnie najciekawszych rzeczy, czyli GPS i możliwości wpięcia karty SIM bezpośrednio. Zasięg WiFi jakby słaby (porównuję z laptopem) i mocno zależny od pozycji tabletu. Tam, gdzie laptop działał bez żadnego ale, tablet potrafił okazjonalnie tracić łączność. No i trochę duże ilości danych toto przewala i trochę muli, szczególnie przy wciśnięciu przycisku cancel/cofnij (bo chyba tak to działa) albo przy instalacji programu w tle. Albo zwyczajnie 1 Mbps to już trochę za mało. Przetestuję na szybszym łączu, niebawem.

Ale najpierw będzie okazja do przetestowania serwisu Go Clever, niestety – mój egzemplarz działał nazwijmy to normalnie do 50-40% stanu baterii, a następnie wskaźnik spadał w jednej chwili do 3-15%. Albo bateria walnięta, albo sensor baterii…

Tak czy inaczej, gadżet ten wygląda raczej na zabawkę i nie dziwię się, że raczej dla dzieci go ludzie kupują. Być może zda egzamin jako pilot do komputerów, czytnik ebooków i notatnik (plus programy do treningu). No i do gier (szukanie słówek przez chwilę przy porannej kawie było wciągające, przyznaję). Przy czym totalnie rozczarował mnie brak lub brak wyeksponowania w Play gier strategicznych i RPG.

Chwilowo wpis w kategorii Inne, być może jak wróci i zacznę regularnie korzystać, to pojawi się kategoria Android.