Skip to content

raspberry pi ile internet paylaşımı (hotspot)

raspberry pi de eth0 ile edindiğimiz internet paylaşımın wlan0 üzerinden paylaşıma açacak şekilde bilinen adıyla hotspot bir örnek uygulama yapalım.

bu işlemi yapabilmemiz için öncelikle ethernet arayüzlerin doğru şekilde yapılandırılmış ve çalışıyor olması ön şarttır. bu konuya bu yazıda değinmeyeceğiz.

bu paylaşım için yapabilmek için paylaşımı gerçekleştirecek bir servis uygulamasının aktif edilmesi gerekmektedir. bunu yapabileceğiniz en temel uygulama hostapd dir. bununla birlikte istemcilere ip dağıtımını / yönetimini yapacak bir servis ihtiyacınız daha olacaktır. dns servis için kullanabileceğiniz uygulama sayısını çok daha fazladır. bu örnekte dnsmasq kullanacağız.

hostapd ve dnsmasq temel raspberry dağıtımlarında yer almamakta ancak depolarda bu uygulamalar mevcuttur. bu uygulamaları öncelikle kuralım

sudo apt-get install hostapd dnsmasq

artık yapılandırma sürecine başlayabiliriz. raspberry üzerinde bu ve benzeri uygulamalar yaparken karşılaşacağınız temel bir sorunu öncelikle çözmeliyiz.

dhcpcd üzerinden internet paylaşımı yapacağımız wlan0 arayüzünü pasif hale çekmemiz gerekiyor. bunun nedeni ip dağıtımı için dnsmasq kullanacak olmamızdır.

sudo nano /etc/dhcpcd.conf

dhcpcd.conf dosyasını açtıktan dosyanın en altında wlan0 için gerekli satırı ekleyelim

denyinterfaces wlan0

sıra geldi ethernet arayüzleri için gerekli yapılandırmalara

sudo nano /etc/network/interfaces

interfaces dosyası için loopback, eth0 ve wlan0 için gerekli yapılandırma ayarlarını girelim. loopback ve eth0 için ilave bir şey yapmıyoruz. wlan0 için hotplug olarak izin vererek yukarıda sorundan kaynaklı olarak static yapılandırma yapıyoruz. bu örnekte wlan0 için 192.168.5.0/24 adresini rezerve ederek kullanacağız.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.5.1
    netmask 255.255.255.0
    network 192.168.5.0
    broadcast 192.168.5.255

arayüz tanımları yapıldıktan sonra hostapd servis tanımlarını yapmaya geldi

sudo nano /etc/hostapd/hostapd.conf

burada yayın yapılacak kablosuz ağa ait servis ve güvenlik ayarlarını yapılandırıyoruz. burada hw_mode a özellikle dikkat etmek gerekiyor ancak fiziksel ve yazılımsal olarak desteği olmayan modlar seçilmemelidir.

aşağıdaki yapılandırma raspberry pi 3 de sorunsuz olarak çalışmaktadır.

interface=wlan0
driver=nl80211
ssid=fcicek_wifi
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=fcicek_wifi_sifre
rsn_pairwise=CCMP

hostapd ayarlarını yaptıktan sonra hostapd için yapılandırma dosyası konum ayarlarını yapalım.

sudo nano /etc/default/hostapd

hostapd dosyasını açarak DAEMON_CON=”” olarak görülen satırda gerekli değişikliği yapalım

DAEMON_CONF="/etc/hostapd/hostapd.conf"

hostapd için yapılandırmayı tamamlanmış olduk sırada dnsmasq ayarı kaldı. öncelikle mevcut dosyamızı yedekleyelim

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo nano /etc/dnsmasq.conf

ve dnsmasq.conf dosyasını açarak kullanacağımız 192.168.5.0/24 için gerekli diğer ayarları girelim.

interface=wlan0 
listen-address=192.168.5.1
bind-interfaces 
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.5.10,192.168.5.50,24h

burada dns server olarak google sunucu adresi girilmiş ve 10 ve 50 arası kullanıcılar için açılmıştır. sudo reboot ile raspberryi yeniden başlatalım. raspberry pi yeniden başladıktan sonra fcicek_wifi ssid ağımız görebiliriz.

şimdi paylaşımdaki en önemli aşamaya geldik diyebiliriz. gerekli natlamanın yapılması. sysctl.conf dosyası altında net.ipv4.ip_forward parametresini aktif ederek 1 yapmamız gerekmektedir.

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1

bundan sonra iptables ile gerekli nat / yönlendirmeleri yapıyoruz.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

son bir şey kaldı.. açılış dosyamıza iptables ayarlarının girilmesi. burada ekleyeceğimiz satırı exit 0 dan önce girmeye dikkat edin.

sudo nano /etc/rc.local
iptables-restore < /etc/iptables.ipv4.nat 

exit 0

temel olay bu kadar. eth0 ile yaptığımız bağlantıyı fcicek_wifi ssid ile paylaşıma snduk. şimdi raspberry üzerindeki arayüzlerden geçen trafiklerimizi kontrol edelim..

pi@raspberrypi:/etc $ vnstat

                      rx      /      tx      /     total    /   estimated
 eth0:
       Şub '19    192,83 MiB  /   11,59 MiB  /  204,42 MiB  /  258,00 MiB
     yesterday    162,42 MiB  /    5,47 MiB  /  167,89 MiB
         today     30,40 MiB  /    6,12 MiB  /   36,53 MiB  /     421 MiB

 wlan0:
       Şub '19      6,53 MiB  /   30,31 MiB  /   36,84 MiB  /   45,00 MiB
     yesterday       843 KiB  /      15 KiB  /     858 KiB
         today      5,70 MiB  /   30,30 MiB  /   36,00 MiB  /     409 MiB
Back To Top