Raspberry Pi İle Gerçek İnternet Hızını Ölçün >> Servis sağlayıcıya hızımı artır deyin

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

Bu aralar internet hızınızın düşük olmasına kızıyor musunuz? Örneğin 25 megabit fiber anlaşmanız olabilir, ama servis sağlayıcı size maksimum hız garanti etmiyor. Sadece 25 megabite kadar diyor. Kısacası oyun oynar veya Youtube izlerken hız 3 mbps’ye düşebilir. Raspberry Pi’la ölçün.

Robotistan’dan Raspberry Pi alıp programlayarak ISP’nin sağladığı gerçek hızı ölçebilirsiniz. Böylece VPN kullanırken, Youtube izler veya oyun oynarken hızınız düşerse bunu görebilirsiniz. Hatta ISP’nin TOR browser trafiğini yavaşlattığını görebilir ve interneti gözetleyenleri bu kez siz gözetleyebilirsiniz.

İlgili yazı: İnternetinizi Uçuracak En İyi 10 Modem

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Ev yapımı internet izleme

İnternet hızınız vaat edilen maksimum hızın çok altında kalıyorsa ISP’ye ulaşıp hızınızı yükseltmesini isteyebilir ve bu durum sık tekrarlanıyorsa hakkınızı yasal yollardan arayabilirsiniz. Raspberry Pi internet izleme sistemi sizin için gereken delilleri toplayacak.

AKN ile karıştırmayın

Türkiye’de Adil İnternet Kotası (AKN) ayrı bir dert, ama bu yazıda söz ettiğimiz hız yavaşlaması AKN ile ilgili değil. Ancak, Raspberry Pi ile (AKN kotanız dolu değilken) internet hızının düşüp düşmediğini gerçek zamanlı olarak görebilirsiniz.

Devlet vatandaşı internet kullanmaktan caydırmak üzere fibere yatırım yapmıyor ve her yıl kullanıcı sayısı artarken internetin yavaşlamasına göz yumuyor. İnternet hızını düşüren AKN de bunu saklamak için kullanılan bir bahane ve biz buna gizli sansür diyoruz. Örneğin 2002 yılında Türkiye’de internet hızı 256 kbps idi.

İlgili yazı: İnternette yeni sansürü TOR browser ile aşın

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Neden internet hızını ölçmelisiniz?

Şimdi 16 mbps’ye kadar internet bağlantısı sağlayan ADSL modem ile aylık 50 GB AKN kullandığınızı düşünün. Aylık kotanızı internet hızına bölünce “aylık ortalama internet hızınız” ne çıkıyor biliyor musunuz? 256 kbps! 25 megabit fiberde aylık 75 GB AKN ile yine aynı hesap.

Devlet geniş bant internet vermiyor

Diyeceksiniz ki benim ISP şirketim devlet değil, özel teşebbüs. Acaba? Avea, hatta Turkcell ile Superonline pratikte Türk Telekom sayılır. Aslında tüm ISP’ler Türk Telekom altyapısını kullanıyor. O yüzden devlet vatandaşa geniş bant internet vermiyor dedik.

Öte yandan 2016’da akıllı evler ve akıllı ofisler yaygınlaşıyor. TV, tablet, laptop, ailedeki tüm akıllı telefonlar, akıllı kombi, akıllı lamba, akıllı buzdolabı, hatta akıllı kettle hep internete giriyor. Bu yüzden aylık 100 GB AKN bile adil değil. İnternet meraklısı için 100 GB kota 15 günde biter.

İlgili yazı: İnternette teknik takip ve gözetimi önleme rehberi

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Speedtest ile ölçsek yetmez mi?

Yetmez. Çünkü Speedtest (o da TTNET’in engellemediği günlerde) sadece o anki hızınızı ölçüyor. Oysa sizin 16 mbps hız 3 mbps’ye düştüğü anda (hem de VPN kullanmadığınız halde) bunu görmeniz ve müşteri hizmetlerine telefon açıp “Hızımı yükseltin” demeniz gerekiyor.

Ben de birkaç kez yaptım. Şimdi düzeltiyoruz diyorlar, bir düğmeye basıyorlar ve bir anda hızım artıyor. Peki neden böyle oluyor? Çünkü biz vatandaşlar kurumsal değil, bireysel internet hattı kullanıyoruz; yani bizim bağlantımız paylaşımlı internet bağlantısı.

İlgili yazı: TP-Link’ten 3 Kat Hızlı Modem

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Kendi internetinizi kendiniz gözetleyin

Türk Telekom kurnaz ve diyor ki Cumartesi akşamı internete çok yüklendiler, Ali Bey de 12 saattir internete girmedi. Onun sinyalini kısayım, yoğun saatlerde bant genişliği tasarrufu yapayım.

İşte bu nedenle Raspberry Pi kullanarak internet hızınızı bir ay boyunca ölçebilir, ayın hangi günleri ve saatlerinde internet hızınızın yavaşladığına bakarak gerçek ISP hizmet kalitesini görebilirsiniz. Gerekirse ISP değiştirebilir, hatta uydu internete çıkabilirsiniz.

Peki nasıl yapacaksınız?

Öncelikle 140 TL’ye bir Raspberry Pi anakart satın alarak. Sonra da aşağıdaki talimatları izleyip programlayarak; ama önce önemli not: Türkiye insanları gözetlemeyi kolaylaştırmak için VPN bağlantılarını bilerek yavaşlatıyor.

Raspberry Pi 2 ile bunu ölçebilir ve ISP’ye bildirebilirsiniz. Ancak Youtube, Twitter, Facebook ve online video oyunlarını da tek tek yavaşlatabiliyorlar (Örneğin sunucuya diyor ki bu adama ayda sadece 10 saat Full HD Youtube hızı ver. Aşarsa Youtube hızını kes). Bunu Raspberry Pi ile ölçemezsiniz.

Ancak VPN kullanırsanız Youtube ve Facebook’u yavaşlatamazlar, çünkü web trafiğini göremezler. Bunun yerine VPN’i yavaşlatarak sizi sansürlemeye çalışabilirler. Siz de Raspberry Pi ile bunu ispat edip hizmet şartlarına aykırı davrandıkları ve anayasadaki iletişim özgürlüğünü ihlal ettikleri için yasal yollara başvurabilirsiniz.

İlgili yazı: Dünyanın en iyi 5 VPN sağlayıcısı

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Siz direndikçe sansür zor

Yeter ki vatandaş bilinçli olsun. Nitekim Washington’da bir vatandaş bu sistemi kullanarak internet hizmeti aldığı Comcast’i gözetlemeye başladı ve internet hızı düşünce Comcast’i otomatik olarak halka şikayet eden bir tweet atma kodu yazdı. Vatandaşın interneti yavaşlayınca Raspberry Pi ile çalışan hız ölçüm sistemi hemen tweet atıyordu.

Ancak daha yapıcı olabilir ve Raspberry Pi sistemini ISP’nin müşteri destek hizmetlerine otomatik olarak bağlanmak ve ticket açmak üzere programlayabilirsiniz. Böylece ne zaman internet yavaşlasa sistem teknik destek ekibine bildirim gönderir.

Bu yazının bir amacı da bu, yani vatandaşı bilinçlendirmek fakat bu kadar giriş yeter. Şimdi Raspberry Pi ile internet hızını ölçen cihazın nasıl programlanacağını anlatalım. Öyle ya, hep sizi mi gözetleyecekler? Biraz da siz ISP’yi gözetleyin. 🙂

 

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Önce yazılım

Günümüzde her şey yazılım değil mi? Bu örnekte Raspberry Pi programlamak için Python dilinde yazılmış speedtest-cli komut satırı arayüzünü kullanıyoruz. Bu arayüz speedtest.net sunucularına otomatik olarak bağlanmanızı sağlıyor.

Evet, işi çözdünüz! Her seferinde Speedtest sayfasına gitmek yerine, Raspberry Pi kartını programlayarak bunu otomatik yapacaksınız.

Kurmak çok kolay

Raspberry Pi’da bir terminal penceresi açıp aşağıdaki komut satırlarını girin

$ sudo apt-get install python-pip

$ sudo pip install speedtest-cli

Bu komut (karta yüklü değilse) Python paket yönetim sistemi pip’i kuracak. Ardından pip arşivinden speedtest-cli paketini kuruyoruz. Sonra Raspberry Pi’ı çalıştırıp geniş bant internet hızını ölçüyoruz:

 

$ speedtest-cli

Retrieving speedtest.net configuration…

Retrieving speedtest.net server list…

Testing from Acme Broadband Provider. (XXX.XXX.XXX.XXX)…

Selecting best server based on latency…

Hosted by Foo Limited (Metropolis) [2.52 km]: 35.27 ms

Testing download speed………………………………….

Download: 14.47 Mbit/s

Testing upload speed…………………………………………..

Upload: 1.46 Mbit/s

$

 

Her ne kadar yazının okunaklı olması için detayları gizlesek de bu raporun tipik bir ADSL2+ modemden gelen verileri kullanarak hazırlandığını hatırlatalım.

Gerçi internet hızınız düşükse bile en azından istikrarlı olsun. Bir an 3 mbps’ye düşmesi ve sonra 16 mbps’ye çıkmasının anlamı yok. 12 mbps’de istikrarlı olsa yeter ve Raspberry Pi ile bunu da görebilirsiniz.

İlgili yazı: 100 dolardan ucuza 3D printer yap

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Daha bitmedi

Şimdi sistemi her saat internet hızını ölçmek için programlamak gerekiyor. Bunun için speedtest-cron.sh gibi basit bir script yazalım. Söz konusu script test sonuçlarını tarihiyle birlikte günlük dosyasına kaydedecek.

#!/bin/bash

date >> /home/pi/speedtest.log

/usr/local/bin/speedtest –simple >> /home/pi/speedtest.log

Şimdi crontab dosyasını düzenleyerek script’i her saat başı çalıştıracak bir giriş ekleyeceğiz:

$ crontab -e

Şimdi crontab dosyasına şu satırı ekleyip kaydediyoruz.

0 * * * * /home/pi/speedtest-cron.sh

Böylece aşağıdaki günlük gibi kayıtlar tutmaya başlıyoruz.

$ cat speedtest.log

Sun Jan 31 19:49:01 GMT 2016

Ping: 34.961 ms

Download: 14.44 Mbit/s

Upload: 1.41 Mbit/s

$

 

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Raporu okunaklı olması için sadeleştirin

Dikkat ederseniz speedtest-cli raporları basit raporlama seçeneği kullanırken bile oldukça karmaşık. Bu raporu tüketici mahkemesine taşıyacak veya ISP müşteri destek ekibine göndereceksek daha kolay okunan ve anlaşılan bir şekle sokmalıyız.

En iyisi elimizdeki raporu basit bir bash script ile adam edelim. En hızlı çözüm için speedtest-cli-extras script’i kullanabilirsiniz. Bu script speedtest-cli çıktılarını alıp formatlıyor ve aşağıdaki gibi basit bir CSV dosyası halinde düzenliyor:

$ git clone https://github.com/HenrikBengtsson/speedtest-cli-extras.git

$ cd speedtest-cli-extras/bin

$ ./speedtest-csv

2016-01-31 17:00:33;2016-01-31 17:01:27;Acme Broadband Provider;XXX.XXX.XXX.XXX;Foo Limited (Metropolis);2.52 km;34.768 ms;14.43 Mbit/s;1.31 Mbit/s;http://www.speedtest.net/result/XXXXXXXXXX.png

$

Boş yerlere internet hızını düşüren ISP’nin kimliği gelecek. Üstelik bu çıktı ile Google Analytics benzeri grafikler de hazırlayabilirsiniz. Ardından düşük hizmet kalitesini blogda ve sosyal medyada ifşa edebilirsiniz.

 

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Ya seyahatte iken?

Bu sistem elbette evdeki internet hızını ölçecek, 3G ve 4G mobil interneti ölçmeyecek. Ancak şehir dışına çıktığınızda işiniz zor. Her saat başı şifreli SSH ile Raspberry Pi’a uzaktan bağlanıp rapor alacak haliniz yok.

Siz evde yokken bunu otomatik yapacak bir yazılım lazım. Şansımıza IFTTT’nin Maker Channel platformu 2015 ortasında gerekli kodu hazırladı. Şu kod speedest adında bir Maker Channel etkinliği oluşturuyor ve speedest-cli script’nin çıktısını alıp otomatik olarak Google Tablolarda kaydediyor.

Maker Channel nedir?

IFTTT’nin web kanalı evinizdeki elektronik aletleri ve mobil cihazları akıllı ev mantığıyla programlayarak kendi iş akışınızı oluşturmanızı ve otomatik bir raporlama sistemi kurmanızı sağlıyor. Dolayısıyla her kodcunun bu siteye göz atmasında fayda var.

İlgili yazı: Star Wars Güç Uyanıyor > 7 adımda kendi BB8 akıllı robotunu yap

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Raspberry Pi’dan IFTTT’ye veri aktarımı

Bunun için speedtest-cli-extras script’inde değişiklik yapacağız. Artık log dosyası çıktısı almak yerine, raporumuza karşılık gelen etkinlik adı ve gizli anahtarımız ile POST web isteği gönderecek. Bu anahtar internet hızı formunu Maker Channel’a bağlarken atanıyor.

https://maker.ifttt.com/trigger/speedtest/with/key/{secret_key}

Kısacası aktarımı JSON formatıyla yapıyoruz. Bu raporda ping süresi, indirme ve karşıya yükleme hızı yer alacak. Aşağıdaki gibi:

#!/usr/bin/env bash

###########################################################################

# Originally written by: Henrik Bengtsson, 2014

# https://github.com/HenrikBengtsson/speedtest-cli-extras

# Modified to use IFTTT by: Alasdair Allan, 2015

# License: GPL (>= 2.1) [http://www.gnu.org/licenses/gpl.html]

###########################################################################

# Character for separating values

# (commas are not safe, because some servers return speeds with commas)

sep=”;”

# Temporary file holding speedtest-cli output

user=$USER

if test -z $user; then

user=$USERNAME

fi

log=/tmp/$user/speedtest-csv.log

# Local functions

function str_extract() {

pattern=$1

# Extract

res=`grep “$pattern” $log | sed “s/$pattern//g”`

# Drop trailing …

res=`echo $res | sed ‘s/[.][.][.]//g’`

# Trim

res=`echo $res | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`

echo $res

}

# Display header?

if test “$1” = “–header”; then

start=”start”

stop=”stop”

from=”from”

from_ip=”from_ip”

server=”server”

server_dist=”server_dist”

server_ping=”server_ping”

download=”download”

upload=”upload”

share_url=”share_url”

else

mkdir -p `dirname $log`

start=`date +”%Y-%m-%d %H:%M:%S”`

if test -n “$SPEEDTEST_CSV_SKIP” && test -f “$log”; then

# Reuse existing results (useful for debugging)

1>&2 echo “** Reusing existing results: $log”

else

# Query Speedtest

/usr/local/bin/speedtest-cli –share > $log

fi

stop=`date +”%Y-%m-%d %H:%M:%S”`

# Parse

from=`str_extract “Testing from “`

from_ip=`echo $from | sed ‘s/.*(//g’ | sed ‘s/).*//g’`

from=`echo $from | sed ‘s/ (.*//g’`

server=`str_extract “Hosted by “`

server_ping=`echo $server | sed ‘s/.*: //g’`

server=`echo $server | sed ‘s/: .*//g’`

server_dist=`echo $server | sed ‘s/.*\\[//g’ | sed ‘s/\\].*//g’`

server=`echo $server | sed ‘s/ \\[.*//g’`

download=`str_extract “Download: “`

upload=`str_extract “Upload: “`

share_url=`str_extract “Share results: “`

fi

# Standardize units?

if test “$1” = “–standardize”; then

download=`echo $download | sed ‘s/Mbits/Mbit/’`

upload=`echo $upload | sed ‘s/Mbits/Mbit/’`

fi

# Send to IFTTT

secret_key=”SECRET_KEY”

value1=`echo $server_ping | cut -d” ” -f1`

value2=`echo $download | cut -d” ” -f1`

value3=`echo $upload | cut -d” ” -f1`

json=”{\”value1\”:\”${value1}\”,\”value2\”:\”${value2}\”,\”value3\”:\”${value3}\”}”

curl -X POST -H “Content-Type: application/json” -d “${json}” https://maker.ifttt.com/trigger/speedtest/with/key/${secret_key}

view raw speedtest-ifttt.sh hosted with ❤ by GitHub

Önce test edin

Şu linki tıklayarak yukarıdaki komut satırlarını indirin ve anahtarı kendi SECRET_KEY’inizle değiştirin. Ardından elle değişiklik yaptığınız script’i komut satırında çalıştırarak test edin. Her şey yolunda giderse şöyle bir şey göreceksiniz:

$ ./speedtest-ifttt.sh

Congratulations! You’ve fired the speedtest event

$

Şimdi Google Drive’a gidip bakın. Speedtest diye yeni bir tablo olmalı.

 

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Bu tablo dört sütunlu tek satır formatında olacak. İlk sütunda IFTTT Maker Channel etkinliği tarih damgası var. İkincisinde milisaniye cinsinden ping süresi (WoW oyuncuları, siz buna latency diyorsunuz) ve elbette 3 ile 4.’sünde sırasıyla mbit/s cinsinden indirme ve karşıya yükleme hızları var.

January 26, 2016 at 02:49AM 34.039 12.56 1.32

Bu tamamsa speedtest-cron.sh script’inde değişiklik yaparak her saat başında yeni script’i çalıştırmasını sağlayacağız.

#!/bin/bash

date >> /home/pi/speedtest.log

/home/pi/speedtest-ifttt.sh >> /home/pi/speedtest.log

echo “” >> /home/pi/speedtest.log

Böylece her saat Google tablosuna yeni bir satır eklenecek.

 

Raspberry_pi-modem-internet-sansür-isp-internet_hızı-mbps-megabit-router-servis_sağlayıcı-telekom-maker-diy

 

Raspberry Pi ile otomatik ölçüm

Artık Raspberry Pi tabanlı izleme sisteminiz ile geniş bant internet hızını saat başı ölçebilir ve otomatik olarak bulutta yedekleyebilirsiniz. Elbette her ISP’nin müşteri destek sistemi farklı.

Bu da size ev ödevi olsun ve yazıyı örnek alıp kendi otomatik ISP bildirim sisteminizi kurun. Gerçek internet hızınızı ölçün ve gerekirse verdiğiniz paranın hesabını sorun.

7 Comments

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*