Wlan0 için statik IP Hatası


12

Şu anda Raspberry Pi'mi hostapdaşağıdaki talimatları kullanarak bir Erişim Noktası olarak ayarlamaya çalışıyorum :

RPI Kablosuz Erişim Noktası

Ne yazık ki, statik IP Adresim başlangıçta ayarlamayı reddediyor. Aşağıdakilerin içeriği /etc/network/interfaces:

auto lo

iface lo inet loopabck
iface eth0 inet dhcp

iface wlan0 inet static
address 192.168.42.1
broadcast 192.168.42.255
netmask 255.255.255.0

up iptables-restore < /etc/iptables.ipv4.nat

Garip bir şekilde, önyüklemeden sonra aşağıdaki komutu çalıştırırsam, her şey iyi çalışır:

sudo ifconfig wlan0 192.168.42.1

Eksik olduğum göze çarpan sorunlar gören var mı? Linux yapılandırmasıyla çalıştığımdan beri çok kolay bir şey eksik olduğumu hissediyorum.


Hızlı bir çözüm olarak, arabirimler bağlandıktan veya son önyükleme komut dosyalarından sonra ifconfig dosyasını önyükleme komut dosyası olarak çalıştırabilirsiniz. Ürün yazılımını en son sürüme mi yükselttiniz? Yetenek güncellemesi değil, ürün yazılımı için raspi betiği. Bu, birkaç arayüz sorununu giderir.
Piotr Kula

@ppumkin - Hala bir Raspberry Pi n00b. Ürün yazılımını güncellemek için raspi komut dosyasını çalıştırma komutu nedir?
Justin Niessner

4
github.com/Hexxeh/rpi-update Oraya gidin ve okuyun. Ayrıca yeniden başlattıktan sonra bir yetenek güncellemesi de yapın.
Piotr Kula

@ppumkin - Her iki güncellemeyi de çalıştırdım ve ikisiyle de ilgilenmedim. Şimdilik geçici çözümle devam etmem gerekecek gibi görünüyor.
Justin Niessner

Son çare Rasbpian'ı en son görüntüyü kullanarak taze olarak yakmaya çalışıyor. Güncellemeleri tekrar yapın ve bunun işe yarayıp yaramadığını görün. Bu mi WiFi sorunları ile yardımcı oldu.
Piotr Kula

Yanıtlar:


4

Benim arayüzleri dosya bakmak benim için biraz farklı ama işler her zaman.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0

iface wlan0 inet static
    address 192.168.1.123
    netmask 255.255.255.0
    network 192.168.1.1
    broadcast 255.255.255.255
    gateway 192.168.1.1
    wpa-ssid "SSID"
    wpa-psk "PASSWORD"

Belki bu yardımcı olabilir


Yayın IP'si şöyle görünmüyorsa: 192.168.1.255255 son sıradadır çünkü aksi halde yönlendiricinizin tüm cihazlarında yayın yapmazsınız.
XandruCea

Orijinal sorudaki eksik parçanın yukarıdaki "otomatik wlan0" satırı olduğuna inanıyorum. Ayrıca yayın satırından sonra bir "dns-nameservers 8.8.8.8" (örnek olarak) eklemek isteyebilirsiniz.
Ocak'ta joat

2

İfplugd işlevini devre dışı bırakın, statik IP adresinin çalışması gerekir.


benim için çalışıyor! / etc / default / ifupd, auto / all => eth0
flot değerini

2

Hostapd'ın bu başarısızlığa neden olan arayüzü yeniden başlattığından şüpheleniyorum. İfconfig komutunu /etc/rc.local dosyasına elle önyükleme sırasında otomatik olarak yürütecek şekilde ekleyebilirsiniz.


2

Kesinlikle raspbian jessie'de, bir paket ağacı tabanlı "her şeye aynı anda başla" yaklaşımı lehine çalışma seviyesi tabanlı init kullanmayı bırakan bir yarış koşulu. Bence bu satırları koyarak yuvarlak olabilir /etc/rc.local:

/sbin/ifdown wlan0
/sbin/ifup wlan0
/sbin/ifconfig wlan0 192.168.42.1
/usr/sbin/service isc-dhcp-server start

Sanırım zaman gösterecek.


Tamam, unix üzerinde 1984'ten 1992'ye kadar çalıştığımda kesinlikle runlevels ve telinit vardı, ama sadece son zamanlarda geri döndü. Öyle değil mi Belki her şeyi geçmesi durumunda, birisi aslında neyi açıklayacağız olduğunu . (Düzeltmem hala çalışıyor, ama hoşuma gitmiyor).
Colin Wray

Bunun bir yarış koşulu olduğuna karar verdim çünkü önyükleme sırasının iki olası sonucu var ve bunlar rastgele meydana geliyor.
Colin Wray

Amanın. Bu yanıtı yanlış okuduğum için özür dilerim - bu , sistemd ile sabitlenmiş SysV init'in neden olduğu bir problemdi . Her durumda, ikisi de bir yarış durumunu önleyemez , çünkü doğası gereği birçok hizmet çatalla başlar ve devam eder. Herhangi bir şeyi yanlış yapılandırmak bir soruna neden olabilir ve burada nesneye yaptığım şey, systemd'nin doğası gereği suçlanacağı anlamına gelir (bağımlılıkları çözmek için daha iyi bir metodolojiye sahip olduğu ve sadece "her şeye aynı anda başlatılmadığı" iddia edilebilir. willy-nilly - ama bu bir teğet gidiyor) ...
goldilocks

Linux kutuları üzerinde ağ oluşturmaya karşı biraz alışılmışın dışında bir tavrım var, bu da beni bu tür problemlere çok az perspektifle bırakıyor ve sizin için işe yarayan bir çözümünüz varsa, harika, ancak teşhisiniz çok dışlayıcı görünüyor (benzer bir yarış durumu gibi görünüyor, yürüyor bir yarış koşulu gibi ... ama bir ördeğin gölgesi bir ördek değildir ... vs).
goldilocks

1
OP'mi okurken, sistemi neden doğrudan suçladığımı düşündüğünüzü ve neden sizin gibi sadık bir savunucuyu ateşlediğini görebiliyorum. Hayır, bence sorun takip etmeyi düşündükleri ve sıfır hakkında bildiklerim olan paket bağımlılık ağacında olmalı. Bir şekilde ifup ve hostapd arasındaki çatışmayı tanımalı.
Colin Wray

1

Şu anki kablosuz arabirim yapılandırmanızın hemen üstüne aşağıdaki satırları eklemeye çalışıyorum:

auto wlan0
allow-hotplug wlan0

Bu, arabirim yapılandırmanıza wlan0 arabirimini otomatik olarak başlatmasını ve daha sonra eklenebileceğini bildirir (hotplug).

gateway <IP Address>Yönlendirmenin çalışması için bir satır da eklemeniz gerekebilir .


Benim için hile yapan şey buydu! Teşekkürler.
johnboiles

0

Mutlaka harika bir çözüm değil ama / etc / network / arabirimlerini kullanırken staticip ile ilgili problemlerim olduğu için bunun yerine yönlendiricim üzerinden statik bir ip kullanmaya geçtim? Alternatif olarak bu şekilde denediniz mi?


0

Pi'de WAP kurmak için aynı öğreticiyi izliyorum.

Ne yazık ki, dhcp hizmeti önyüklemede başlamıyor. Önyüklemeden sonra, hizmetin denetlenmediğini gösterir: hizmet isc-dhcp-sunucu durumu ISC DHCP sunucusunun durumu: dhcpd çalışmıyor

Aslında, wlan0 arayüzü bir IP adresi almaz ve bu yüzden dhcp sunucusu başlamaz.

Aşağıdaki bağlantıdaki talimatları izliyorum, ancak sorunu çözmüyor: http://sirlagz.net/2013/02/10/how-to-use-the-raspberry-pi-as-a-wireless- erişim-pointrouter-parça-3b /

Sonra, bu yazıdaki talimatları takip ediyorum: http://www.novitiate.co.uk/?p=183

nano /etc/rc.local

#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
# By default this script does nothing.

# Print the IP address
sleep 5
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
      sudo ifup wlan0                           #start wlan0 with ip adress in  /etc/network/interfaces
#      sudo service hostapd start               #not necessary if you already start hostapd as a service
      sudo service isc-dhcp-server start        #start dhcp server
exit 0

Yeniden başlattıktan sonra DHCP sunucusu çalışıyor.

Ayrıca test etmem olası başka bir çözüm: Hata! 2'den fazla bağlantı yayınlamak için yeterli üne sahip değilim.


0

Aynı problemi yaşadım. wlan0, dhcp sunucusu başladığında statik ip adresini bir şekilde kaybeder. / Etc / default / ifplugd öğesini düzenleyin ve şu şekilde değiştirin:

INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"

Bu cevap çok önemlidir! neden oy verdi bilmiyorum
flotto

Pi önyükleme yapıyordum ve bazen 169.xx.xx.xx adresi ve bazen istediğim statik adresle sonuçlanıyordu. Bu, statik adresi güvenilir bir şekilde alması için yapılmıştır. Teşekkürler @Stef!
Peter Bagnall

0

Alternatif olarak, hostapd ve isc-dhcp-sunucusundan önce önyüklemede başladığından emin olarak wlan0'ı yeniden başlatan bir mini hizmet oluşturabilirsiniz.

Yeni komut dosyasını /etc/init.d/wlan0-restart oluşturun

sudo vi /etc/init.d/wlan0-restart

aşağıdaki içeriğe sahip:

#!/bin/sh
#
#

### BEGIN INIT INFO
# Provides:          wlan0-restart
# Required-Start:    $network
# Required-Stop:     $network
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Restarts wlan0 interface
# Description:       Restarts wlan0 interface to fix problem with static address in WiFi AP
# X-Start-Before:    hostapd isc-dhcp-server
### END INIT INFO

PATH=/sbin:/usr/sbin:$PATH

do_start() {
  ifdown wlan0
  ifup wlan0
}

case "$1" in
  start)
    do_start
    ;;
  restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
  stop)
    ;;
  status)
    ;;
  *)
    echo "Usage: $0 start|stop" >&2
    exit 3
    ;;
esac
exit 0

Ardından aşağıdaki komutları yürütün:

sudo chmod 755 /etc/init.d/wlan0-restart
sudo update-rc.d –f hostapd remove
sudo update-rc.d –f isc-dhcp-server remove
sudo update-rc.d wlan0-restart defaults
sudo update-rc.d hostapd defaults
sudo update-rc.d isc-dhcp-server defaults

Yeniden başlatın ve wlan0'ın statik IP adresine sahip olduğunu ve isc-dhcpd-server'ın çalıştığını kontrol edin:

pi@raspberrypi:~$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr e8:de:27:07:92:6a  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

pi@raspberrypi:~$ pgrep -l dhcpd
2315 dhcpd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.