skip to Main Content

raspberry pi – statik ip ayarları

raspberry pi nizi statik ip kullanan bir ağa dahil etme durumunuzda /etc/network/interfaces dosyasında ufak bir değişiklik yapmanız gerekecektir.

pi@raspberrypi:~ $ sudo nano  /etc/network/interfaces

dosyamızı açalım. eth0 arayüzü varsayılan olarak dhcp üzerinden ip olacak şekilde yapılandırılmış durumdadır. öncelikle bu satırın başına # ekleyerek pasif hale getirelim.

auto eth0
#iface eth0 inet dhcp

sonrasında kullanacağımız ağa ait gerekli bilgileri girelim. bu örnekte 192.168.5.208/28 ağında 192.168.5.212 ipsini kullanacak şekilde yapılandırma yapıyoruz

iface eth0 inet static
        address 192.168.5.212
        netmask 255.255.255.240
        gateway 192.168.5.209
        network 192.168.5.208
        broadcast 192.168.5.223

dosyayı interfaces dosyasını kaydedip çıkıyoruz. değişikliğin geçerli olması için network ile ilgili servisleri yeniden başlatılması gerekir ancak biz daha sağlam bir yol izliyoruz ve raspberry pi yi yeniden başlatıyoruz

pi@raspberrypi:~ $ sudo reboot

raspberry yeniden başladıktan sonra gerekli kontrollerimizi yapalım

pi@raspberrypi:~ $ ifconfig eth0	
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.5.212  netmask 255.255.255.240  broadcast 192.168.5.223
        inet6 fe80::ba27:ebff:fe40:752b  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:40:75:2b  txqueuelen 1000  (Ethernet)
        RX packets 7839  bytes 3539827 (3.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5185  bytes 1208823 (1.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

raspberry pi – raspbian : kablosuz bağlantı ayarları

raspberrypimodelb

raspberry pi oldukça kullanışlı bir board ancak ne yazıkkı eski modellerin üzerinde dahili bir wi-fi mevcut değil.

bu kısa yazıda elimizde “raspberry pi model b” olduğunu düşünerek piyasadan aldığımız bir usb wi-fi adaptör kullanarak kablosuz ağ bağlantısını gerçekleştirelim.

edineceğiniz adaptör ne kadar kaliteliyse ve tabiki linux driver desteği mevcuttsa bu işlem sırasında o kadar az sıkıntı ile karşılacağız.

bu işte kullanmak üzere girdiğimiz bir teknoloji marketinden bulduğum en ucuz adaptör olan tp-link tl-wn725n dan aldım. TL-WN725Nbu adaptör için alırken kontrol etmedim ancak linux altında gerekli driver ve patchler varmış. yani ben kurulum sırasında çok fazla bir sorun yaşamaycağım. eğer sizde benzer bir iş için uğraçacaksanız öncelikle

http://elinux.org/RPi_USB_Wi-Fi_Adapters#Working_USB_Wi-Fi_Adapters

adresinden veya alternatif adreslerden alacağınız adaptörün uyumluluğunu kesinlikle kontrol edin.

raspberry nizi dış cihazlara bağlayacaksanız kesinlikle güç kaynağı ile birlikte kullanın. pc vb cihazlara usb den bağlayarak güç sağlarsanız raspberry boot olabilir ancak yeterli güç elde edilemezce wi-fi adaptörünüz v.b. düzgün çalışmayabilir, raspberry bu cihazları görmeyebilir.

bu kadar ön bilgiden sonra uygulaya gelelim.

öncelikle raspberrymiz usb portlarının durumuna bakalım.

pi@raspberrypi ~ $ lsusb 
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 

yukarıdan görüldüğü gibi raspberrymiz wi-fi adaptörümüzü görmemiş. öncelikle raspberry üzerindeki tüm güncellemelerimizi yapalım.

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get upgrade
pi@raspberrypi ~ $ sudo rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10185  100 10185    0     0  17477      0 --:--:-- --:--:-- --:--:-- 25590
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Remove old firmware backup
 *** Backing up firmware
 *** Remove old modules backup
 *** Backing up modules 3.18.11+
#############################################################
WARNING: This update bumps to rpi-4.0.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=113753
##############################################################
Would you like to proceed? (y/N)
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   168    0   168    0     0    203      0 --:--:-- --:--:-- --:--:--   280
100 46.7M  100 46.7M    0     0   520k      0  0:01:31  0:01:31 --:--:--  282k
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 4.0.7-v7+
 *** depmod 4.0.7+
 *** Updating VideoCore libraries
 *** Using HardFP libraries
 *** Updating SDK
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to 19debdef5d132a12bf8df73d5e77e607066c8757
 *** A reboot is needed to activate the new firmware

rasrpberymizide reboot ettikten sonra usb üzerindeki kontrollerimiz yeniden yapalım.

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. 

yukarıdaki şekilde bir çıktı ile karşılaşırsanız sorununuz düzelmiş ve raspberry wi-fi adaptörünüzü görüyor demektir. eğer sorun devam ediyorsa dogru driveri yükleyebilmek için kernel sürümü gerekecek.

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 4.0.7+ #801 PREEMPT Tue Jun 30 18:15:24 BST 2015 armv6l GNU/Linux

şimdi doğru yazılımı bulalalım.

google ufak bir arama sonucu https://www.raspberrypi.org/forums/viewtopic.php?p=462982 adresine ulaşıyoruz. ve bu adresden “4.0.7+ #801” bilgisini kullanarak

4.0.7+ #801 – https://dl.dropboxusercontent.com/u/80256631/8188eu-20150630.tar.gz

dosyası bilgisine ulaşıyoruz. bu dosyayı indirdikten sonra içinen çıkan install.sh dosyasını çalıştırıp işlem sonrası raspberry mizi bir kez reboot ediyoruz.

pi@raspberrypi ~ $ wget https://dl.dropboxusercontent.com/u/80256631/8188eu-20150630.tar.gz
--2015-06-30 22:52:25--  https://dl.dropboxusercontent.com/u/80256631/8188eu-20150630.tar.gz
Resolving dl.dropboxusercontent.com (dl.dropboxusercontent.com)... 54.225.142.77, 54.235.132.16, 54.243.111.126, ...
Connecting to dl.dropboxusercontent.com (dl.dropboxusercontent.com)|54.225.142.77|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 389721 (381K) [application/octet-stream]
Saving to: `8188eu-20150630.tar.gz'

100%[=====================================================================================================================================================>] 389,721      531K/s   in 0.7s    

2015-06-30 22:52:34 (531 KB/s) - `8188eu-20150630.tar.gz' saved [389721/389721]

pi@raspberrypi ~ $ ls
8188eu-20150630.tar.gz  
pi@raspberrypi ~ $ tar -zxvf 8188eu-20150630.tar.gz 
8188eu.ko
8188eu.conf
install.sh
pi@raspberrypi ~ $ sudo ./install.sh 
sudo cp 8188eu.conf /etc/modprobe.d/.
sudo install -p -m 644 8188eu.ko /lib/modules/4.0.7+/kernel/drivers/net/wireless
sudo depmod 4.0.7+

Reboot to run the driver.

If you have already configured your wifi it should start up and connect to your
wireless network.

If you have not configured your wifi you will need to do that to enable the wifi.

bu işlemlerden sonra hata almaya devam ediyorsanız kontrol edilmesi gereken noktalar “modules” dosyası ve wi-fi ile ilgili konfigürasyon dosyalarıdır. benim kendis raspberry imdeki modules dosya içeriği aşagıdaki şekildedir.

pi@raspberrypi ~ $ cat /etc/modules 
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
8188eu 
8192cu

kablosuz ağ yapılandırması ile ilgili dosya konfigürasyonlarım ise aşağıdaki şekilde.

pi@raspberrypi ~ $ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

interface dosyasında ip adresinin routeriniz dağıtıyor – otomatik almasını istiyorsanız ” iface wlan0 inet dhcp” olması gerekmektedir.

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="guncel-ssid"
key_mgmt=WPA-PSK
psk="kablosuz_ag_sifrem"
}

tüm bu işlemlerden sonra ağ ayarlarının durumu izleyelim.

pi@raspberrypi ~ $ ifconfig 
eth0      Link encap:Ethernet  HWaddr 11:11:11:11:11:11
          inet addr:192.168.2.37  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2576 errors:0 dropped:2 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:162187 (158.3 KiB)  TX bytes:8763 (8.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 22:22:22:22:22:22
          inet addr:192.168.2.24  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1124 errors:0 dropped:2 overruns:0 frame:0
          TX packets:2587 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:254667 (248.6 KiB)  TX bytes:301342 (294.2 KiB)

pi@raspberrypi ~ $  iwconfig 
wlan0     IEEE 802.11bgn  ESSID:"guncel-ssid"  Nickname:""
          Mode:Managed  Frequency:2.447 GHz  Access Point: 18:28:61:38:49:9D   
          Bit Rate:72.2 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=100/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

sonuç olarak kablosuz ağımız aktif durumda. umarım yardımcı olur.

linux – ip adresinin öğrenilmesi

linux de bir ethernet arayüzünün ip adresinin ifconfig çıktısından inceleyerek bulabiliriz. ancak nokta atışı yapılması gereken zamanlar olabilir.

aşagıdaki örnekte adım adım incelenebilir.

fcicek@ubuntu:~$ ifconfig eth0 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:388668 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226787 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:506708018 (506.7 MB)  TX bytes:22826593 (22.8 MB)
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:'
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:' | awk '{print$2}' 
addr:192.168.126.128
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:' | awk '{print$2}' | cut -d: -f2
192.168.126.128

linuxte iç ve dış ip adresi değişimlerinin twitter hesabına gönderilmesi

dış dünyaya dinamik bir ip adresi ile çıkıyor ve olası ip değişimlerinden haberdar olmak istiyorsanız elbette bunun yapmanın çok fazla yöntemi var.

bu örnekte dhcp tarafından ip değişimlerinin alğılanarak twitter üzerinden gönderilmesi konusunda ufak bir örnek yapacağız.

twitter için yeniden bir yazılım yapmayacağız.. mevcut linux cli uygulamalarını kullanabiliriz. Bu örnekte tuby ile geliştirilen T yi kullancağız. https://github.com/sferik/t adresinden yazlım hakkında gerekli bilgilendirme alınabilir..

ruby nin installer yazılımını yükleyelim ve sonrasında ise T yazılımını yükleyelim.

fcicek@ubuntu:~$ sudo apt-get install ruby-dev
fcicek@ubuntu:~$ gem install t

twitter üzerinden bu işlem için kullanacağımız bir twitter hesabı oluşturalım ve bu hesap ile http://dev.twitter.com/apps/new adresinden yeni bir uygulama oluşturalım.

ve sonrasında uygulama erişim ayarlarını yönergeleri izleyerek yapalım.

fcicek@ubuntu:~$ t authorize
It looks like you ve already registered an application with Twitter.
To authorize a new account, just follow the steps below:
  1. Sign in to the Twitter Developer site.
  2. Select the application for which you d like to authorize an account.
  3. Copy and paste the consumer key and secret below when prompted.

Press [Enter] to open the Twitter Developer site. 

authorize işlemi tamamlandıktan sonra

fcicek@ubuntu:~$ t account

fcicek@ubuntu:~$ t whoami

ile hesap kontrollerini gerçekleştirelim. ve sonrasında test için mesaj gönderelim

fcicek@ubuntu:~$ t dm ferhatcicek test
Direct Message sent from @fcicekcli to @ferhatcicek.

twitterin istemci yazılımı ile ilgili kısımları tamamladıktan sonra en önemli kısıma geldi. dhcp nin olduğu bölümü ögrendikten sonra dhclient.conf konfigürasyon dosyası içinde gerekli düzenlemeleri yapalım.

fcicek@ubuntu:~$ whereis dhcp
dhcp: /etc/dhcp

dhclient.conf dosyası /etc/dhcp/ dizini altında yer almaktadır. konfigürasyon dosyası içerisinde dhclient-script dosyasının aktif edilmesi gerekmektedir. (dizin yapısı ile ilgili sorun olabilir. )

fcicek@ubuntu:/etc/dhcp$ whereis dhclient-script
dhclient-script: /sbin/dhclient-script /usr/share/man/man8/dhclient-script.8.gz

dosyanın doğru yerini ögrendikten sonra dhclient.conf dosyası içinde

fcicek@ubuntu:/etc/dhcp$ vi dhclient.conf 

script "/sbin/dhclient-script";

gerekli düzenlemeyi tamamlayalım ve bir sonraki adıma geçelim.

fcicek@ubuntu:/etc/dhcp$ ls
dhclient.conf  dhclient-enter-hooks.d  dhclient-exit-hooks.d

dhclient-enter-hooks.d dizini içine çalışacak olan scriptimiz yarattığınız zaman olay tamamlanmıştır..

vi tt

PRIVATE_IP=$(ifconfig |grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }')
PUBLIC_IP=$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)

/usr/local/bin/t   dm @ferhatcicek "$PRIVATE_IP \n ip: $PUBLIC_IP"

linuxte komut satırından gerçek ip adresinin ögrenilmesi

linuxte shell script yazarken veya komut satırın dayken gerçek ip adresi (extarnal ip) bilgisine ihtiyaç duyabilirsiniz. bunun için farklı yöntemler vardır. temel olarak internette, size sizin bağlantı kurduğunuz ip adresini geri gönderecek bir servisin olmasıdır. bu servisler http, telnet, ssh veya başka bir servis olabilir. bunlardan bir kaçına hızlıca göz atalım

çok fazla bilinen bir çok sitenin bu işler için hazırlanmış api leri v.b. mevcuttur.

CURL ve WGET ile

fcicek@ubuntu:~$ curl bot.whatismyipaddress.com
78.168.67.209
fcicek@ubuntu:~$ wget http://smart-ip.net/myip -O - -q ; echo
78.168.67.209

fcicek@ubuntu:~$ curl http://smart-ip.net/myip
78.168.67.209
fcicek@ubuntu:~$ curl -s "http://api.hostip.info/get_html.php" 
Country: TURKEY (TR)
City: Karaman
IP: 78.168.67.209

fcicek@ubuntu:~$ curl -s "http://api.hostip.info/get_html.php" | grep 'IP:' | awk '{print $2}'
78.168.67.209
fcicek@ubuntu:~$ curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/< .*$//'  
78.168.67.209
fcicek@ubuntu:~$ curl ident.me
78.168.67.209

EXEC

fcicek@ubuntu:~$ exec 3<> /dev/tcp/icanhazip.com/80 && # open connection
>   echo 'GET /' >&3 &&                   # send http 0.9 request
>   read -u 3 && echo $REPLY &&           # read response
>   exec 3>&-                             # close fd
78.168.67.209

LWP-REQUEST

fcicek@ubuntu:~$ lwp-request -o text checkip.dyndns.org | awk '{ print $NF }'
78.168.67.209

DIG

fcicek@ubuntu:~$ dig +short myip.opendns.com @resolver1.opendns.com
78.168.67.209

fcicek@ubuntu:~$ alias wanip='dig +short myip.opendns.com @resolver1.opendns.com'
fcicek@ubuntu:~$ wanip
78.168.67.209
fcicek@ubuntu:~$ dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short
"78.168.67.209"
fcicek@ubuntu:~$ dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
78.168.67.209

NETCAT

fcicek@ubuntu:~$ netcat icanhazip.com 80 < << $'GET / HTTP/1.1\nHost: icanhazip.com\n\n' | tail -n1
78.168.67.209

linux – ethernet arayüzünün mac adresi

linuxte ethernet arayüzü ve ip konusunda bilgi almak için ifconfig komutu kullanılabilir.

gelişmiş komut yorumlayıcısı ile nokta atışıda yapabilirsiniz.. aşağıda adım adım bu durum ve çıktısı incelenebilir…

fcicek@ubuntu:~$ ifconfig -a 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:387259 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225351 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:506148504 (506.1 MB)  TX bytes:22528155 (22.5 MB)
fcicek@ubuntu:~$ ifconfig -a | grep eth0 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
fcicek@ubuntu:~$ ifconfig -a | grep eth0 | awk '{print $5}'
00:0c:29:68:00:00
fcicek@ubuntu:~$ ifconfig -a | grep fe80 | awk '{print$3}'
fe80::20c:29ff:fe68:0000/64

mac adresi değiştirmek

pek fazla kimsenin işine yaramayacaktır ama ara sıra benim gibilerin işine yarıyor işte

windozz kullanıyorsak http://devices.natetrue.com/macshift/ adresinden macshift programını indiriyoruz ve sonrasında ağ bağlantılarımdan ilgili ethernet kartının tanımlı olduğu ağ adına kolay bir isim verelim. (ben kablolu ağ için ethernet ismini verdim). daha sonra

c:\macshift\macshift.exe -i “ethernet” 001234567890

şeklinde komutunu işletiyoruz ve girdigimiz geçerli mac adresi kullanıma hazır hale gelir.

linux kullanıyorsak ekstradan program v.s. indirmemize gerek yok aşağıdaki komutu çalıştırmanız yeterli olacaktır. (eth0 sistemimizde tanımlı olan ethernet kartının adı)

sudo ifconfig eth0 hw ether 00:12:34:56:78:90

Back To Top