IP แบบคงที่ล้มเหลวสำหรับ wlan0


12

ฉันกำลังพยายามตั้งค่า Raspberry Pi ของฉันเป็น Access Point โดยhostapdใช้คำสั่งต่อไปนี้:

ฮอตสปอตไร้สาย RPI

ขออภัยที่อยู่ IP แบบคงที่ของฉันปฏิเสธที่จะตั้งค่าเมื่อเริ่มต้น ด้านล่างเป็นเนื้อหาของฉัน/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

ผิดปกติพอถ้าฉันใช้คำสั่งต่อไปนี้หลังจากบูตทุกอย่างทำงานได้ดี:

sudo ifconfig wlan0 192.168.42.1

ใครเห็นปัญหาที่จ้องมองที่ฉันอาจจะหายไป? มันนานมากแล้วที่ฉันทำงานกับการตั้งค่าคอนฟิกของ Linux ซึ่งฉันรู้สึกว่าขาดอะไรง่าย ๆ ไปเลย


เพื่อเป็นการแก้ปัญหาอย่างรวดเร็วคุณสามารถเรียกใช้ ifconfig เป็นสคริปต์บูตหลังจากเชื่อมต่ออินเทอร์เฟซหรือสคริปต์บูตล่าสุด คุณอัพเกรดเฟิร์มแวร์เป็นรุ่นล่าสุดหรือไม่ ไม่อัปเดตความถนัด แต่สคริปต์ raspi สำหรับเฟิร์มแวร์ ที่แก้ไขปัญหาอินเตอร์เฟซไม่กี่
Piotr Kula

@ppumkin - ฉันยังเป็น Raspberry Pi n00b คำสั่งให้รันสคริปต์ raspi เพื่ออัพเดตเฟิร์มแวร์คืออะไร?
Justin Niessner

4
github.com/Hexxeh/rpi-update ไปที่ นั่นแล้วอ่านมัน นอกจากนี้หลังจากรีสตาร์ทจะทำการอัพเดตความถนัดด้วย
Piotr Kula

@ppumkin - ฉันเรียกใช้ทั้งการอัปเดตและไม่ได้ดูแลปัญหา ดูเหมือนว่าฉันจะต้องไปกับวิธีแก้ปัญหาสำหรับตอนนี้
Justin Niessner

ทางเลือกสุดท้ายคือพยายามเผา Rasbpian จากความสดใหม่โดยใช้ภาพล่าสุด ทำการอัปเดตอีกครั้งและดูว่ามีประโยชน์หรือไม่ ช่วยด้วยปัญหาไมล์ WiFi
Piotr Kula

คำตอบ:


4

ไฟล์อินเตอร์เฟสของฉันดูแตกต่างออกไปเล็กน้อย แต่ใช้ได้สำหรับฉันตลอดเวลา

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"

บางทีนี่อาจช่วยได้


IP ที่ออกอากาศไม่ควรมีลักษณะเช่นนี้: 192.168.1.255255 เป็นเพียงสถานที่สุดท้ายเพราะมิฉะนั้นคุณจะไม่ออกอากาศในอุปกรณ์ทั้งหมดของเราเตอร์ของคุณ
XandruCea

ฉันเชื่อว่าชิ้นส่วนที่หายไปจากคำถามเดิมคือบรรทัด "auto wlan0" ด้านบน คุณอาจต้องการเพิ่ม "dns-nameservers 8.8.8.8" (เป็นตัวอย่าง) หลังจากรายการออกอากาศ
ร่วม

2

ปิดใช้งาน ifplugd จากนั้นที่อยู่ IP แบบคงที่ควรใช้งานได้


ทำงานได้สำหรับฉัน! / etc / default / ifupd เปลี่ยน auto / all => eth0
flotto

2

ฉันสงสัยว่า hostapd เริ่มต้นอินเทอร์เฟซใหม่ซึ่งเป็นสาเหตุของความล้มเหลว คุณสามารถเพิ่มคำสั่ง ifconfig ลงในไฟล์ /etc/rc.local ด้วยตนเองซึ่งจะเรียกใช้งานโดยอัตโนมัติเมื่อบูต


2

แน่นอนว่ามันเป็นเงื่อนไขการแข่งขันในราสเบียนเจสซีซึ่งหยุดใช้ init พื้นฐานจาก runlevel เพื่อสนับสนุนวิธีการเริ่มต้นทุกอย่างในเวลาเดียวกัน ฉันคิดว่าฉันอาจมีรอบโดยใส่บรรทัดเหล่านี้ใน/etc/rc.local:

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

เวลาจะบอกว่าฉันคิดว่า


ตกลงยูนิกซ์มี runlevels และ telinit แน่นอนเมื่อฉันทำงานกับมันตั้งแต่ปี 1984 ถึง 1992 แต่เพิ่งกลับมาอย่างน่าเสียดายเมื่อไม่นานมานี้ บางทีถ้าเราผ่านทุกสิ่งที่ไม่ใช่คนจะอธิบายว่ามันคืออะไร (การแก้ไขของฉันยังคงใช้งานได้ แต่ฉันไม่ชอบ)
Colin Wray

ฉันตัดสินใจว่ามันเป็นเงื่อนไขการแข่งขันเพราะมีสองผลลัพธ์ที่เป็นไปได้ของลำดับการบู๊ตและพวกมันก็เกิดขึ้นแบบสุ่ม
Colin Wray

Yikes ฉันขอโทษที่มีการตอบผิดนี้ย้อนหลัง - มันเป็นปัญหาที่เกิดจาก SysV init แก้ไขด้วย w / systemd ไม่ว่าจะในกรณีใดก็ไม่สามารถป้องกันสภาพการแข่งขันได้เนื่องจากโดยทั่วไปแล้วบริการหลายอย่างที่พวกเขาเริ่มจะแยกและคงอยู่ การกำหนดค่าที่ผิดพลาดอาจทำให้เกิดปัญหาและสิ่งที่ฉันทำในที่นี้คือความหมายที่ว่า systemd นั้นเป็นธรรมชาติที่จะตำหนิ (มันอาจเป็นที่ถกเถียงกันอยู่ว่ามันมีวิธีการที่ดีกว่าสำหรับการแก้ไขการพึ่งพาและมันไม่เพียง willy-nilly - แต่สิ่งนี้กำลังเกิดขึ้นในการสัมผัสกัน) ...
goldilocks

ฉันมีทัศนคตินอกรีตเล็กน้อยต่อระบบเครือข่ายบนกล่อง linuxซึ่งทำให้ฉันมีมุมมองเล็กน้อยเกี่ยวกับปัญหาเช่นนี้และถ้าคุณมีวิธีแก้ปัญหาที่เหมาะกับคุณดีมาก แต่การวินิจฉัยของคุณดูเหมือนจะเป็นเรื่องเกี่ยวกับการคาดเดา เหมือนสภาพการแข่งขัน ... แต่เงาของเป็ดไม่ใช่เป็ด ... ฯลฯ )
goldilocks

1
เมื่ออ่าน OP ของฉันฉันสามารถดูว่าทำไมคุณถึงคิดว่าฉันตำหนิระบบโดยตรงและทำไมมันถึงทำให้ผู้พิทักษ์อย่างแข็งขันเหมือนตัวคุณเอง ไม่ฉันคิดว่าปัญหาจะต้องอยู่ในแผนภูมิการพึ่งพาแพคเกจซึ่งพวกเขายอมรับที่จะติดตามและที่ฉันรู้เกี่ยวกับศูนย์ อย่างใดมันจะต้องรู้จักการปะทะกันระหว่าง ifup และ hostapd
โคลินเรย์เรย์

1

ฉันจะพยายามเพิ่มบรรทัดต่อไปนี้เหนือการกำหนดค่าอินเตอร์เฟส wirless ปัจจุบันของคุณ:

auto wlan0
allow-hotplug wlan0

สิ่งนี้จะบอกให้การกำหนดค่าอินเทอร์เฟซของคุณเริ่มต้นอินเทอร์เฟซ wlan0 โดยอัตโนมัติและอาจถูกแทรกภายหลัง (hotplug)

คุณอาจต้องเพิ่มgateway <IP Address>บรรทัดด้วยเพื่อทำให้เส้นทางทำงานได้


นี่คือสิ่งที่ทำเคล็ดลับสำหรับฉัน! ขอบคุณ
johnboiles

0

ไม่จำเป็นต้องเป็นทางออกที่ดี แต่เนื่องจากฉันมีปัญหากับ staticip เมื่อใช้ / etc / network / interfaces ฉันเปลี่ยนไปใช้ static IP ผ่านเราเตอร์แทนหรือไม่ คุณเคยลองวิธีนี้เป็นทางเลือกหรือไม่?


0

ฉันทำตามบทช่วยสอนเดียวกันเพื่อตั้งค่า WAP บน Pi ของฉัน

น่าเสียดายที่บริการ dhcp ไม่ได้เริ่มต้นตอนบูท หลังจากบู๊ตการตรวจสอบบริการแสดงว่าไม่ได้ทำงาน: service isc-dhcp-server status สถานะของเซิร์ฟเวอร์ ISC DHCP: dhcpd ไม่ทำงาน

ที่จริงแล้วอินเตอร์เฟส wlan0 ไม่ได้รับที่อยู่ IP และนั่นคือสาเหตุที่เซิร์ฟเวอร์ dhcp ไม่เริ่มทำงาน

ฉันทำตามคำแนะนำในลิงค์ด้านล่าง แต่ไม่สามารถแก้ปัญหาได้: http://sirlagz.net/2013/02/10/how-to-use-the-raspberry-pi-as-a-wireless- เข้าถึง pointrouter ส่วน-3b /

จากนั้นฉันทำตามคำแนะนำในโพสต์นี้: 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

หลังจากรีบูตเซิร์ฟเวอร์ DHCP กำลังทำงาน

อีกวิธีหนึ่งที่เป็นไปได้ที่ฉันไม่ได้ทดสอบ: อุ๊ปส์ฉันไม่มีชื่อเสียงพอที่จะโพสต์ลิงก์มากกว่า 2 ลิงก์


0

ฉันมีปัญหาเดียวกัน wlan0 จะสูญเสียที่อยู่ IP แบบคงที่เมื่อเซิร์ฟเวอร์ dhcp เริ่มทำงาน แก้ไข / etc / default / ifplugd และเปลี่ยนเป็น:

INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"

คำตอบนี้สอดคล้องกัน! ไม่ทราบว่าทำไมลงคะแนน
flotto

ฉันมีการบูต pi และบางครั้งมันก็จะจบลงด้วยที่อยู่ 169.xx.xx.xx และบางครั้งที่อยู่คงที่ฉันต้องการ นี่คือการทำให้มันได้รับที่อยู่คงที่ ขอบคุณ @Stef!
Peter Bagnall

0

หรือคุณสามารถสร้างมินิเซอร์วิสที่รีสตาร์ท wlan0 ตรวจสอบให้แน่ใจว่ามันเริ่มต้นตอนบู๊ตก่อน hostapd และ isc-dhcp-server

สร้างสคริปต์/etc/init.d/wlan0-restartใหม่

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

มีเนื้อหาดังต่อไปนี้:

#!/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

จากนั้นดำเนินการคำสั่งต่อไปนี้:

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

รีบูตและตรวจสอบว่า wlan0 มีที่อยู่ IP แบบคงที่และ isc-dhcpd-server กำลังทำงาน:

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.