IP tĩnh không thành công cho wlan0


12

Tôi hiện đang cố gắng thiết lập Raspberry Pi của mình làm Điểm truy cập bằng hostapdcách sử dụng các hướng dẫn sau:

Điểm truy cập không dây RPI

Thật không may, Địa chỉ IP tĩnh của tôi từ chối thiết lập khi khởi động. Dưới đây là nội dung của tô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

Thật kỳ lạ, nếu tôi chạy lệnh sau khi khởi động, mọi thứ đều hoạt động tốt:

sudo ifconfig wlan0 192.168.42.1

Có ai nhìn thấy bất kỳ vấn đề rõ ràng mà tôi có thể thiếu? Đã quá lâu kể từ khi tôi làm việc với cấu hình Linux đến nỗi tôi cảm thấy rằng mình đang thiếu thứ gì đó dễ dàng.


Như một cách giải quyết nhanh, bạn chỉ có thể chạy ifconfig dưới dạng tập lệnh khởi động sau khi giao diện được kết nối hoặc tập lệnh khởi động cuối cùng. Bạn đã nâng cấp firmware lên mới nhất? Không phải cập nhật năng khiếu nhưng kịch bản raspi cho phần sụn. Điều đó khắc phục một số vấn đề giao diện.
Piotr Kula

@ppumkin - Tôi vẫn là Raspberry Pi n00b. Lệnh chạy tập lệnh raspi để cập nhật firmware là gì?
Justin Niessner

4
github.com/Hexxeh/rpi-update Đến đó và đọc nó. Ngoài ra sau khi khởi động lại làm một cập nhật năng khiếu quá.
Piotr Kula

@ppumkin - Tôi đã chạy cả hai bản cập nhật và không quan tâm đến vấn đề này. Có vẻ như bây giờ tôi sẽ phải đi với cách giải quyết.
Justin Niessner

Phương án cuối cùng đang cố gắng đốt cháy Rasbpian từ tươi bằng cách sử dụng hình ảnh mới nhất. Làm các cập nhật một lần nữa và xem nếu điều đó giúp. Điều đó đã giúp với các vấn đề mi WiFi.
Piotr Kula

Câu trả lời:


4

Tệp giao diện của tôi trông hơi khác một chút nhưng hoạt động với tôi mọi lúc.

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"

Có lẽ điều này có thể giúp


Không nên IP quảng bá trông như thế này : 192.168.1.255, 255 chỉ ở vị trí cuối cùng vì nếu không, bạn không phát trên tất cả các thiết bị của bộ định tuyến.
XandruCea

Tôi tin rằng phần còn thiếu từ câu hỏi ban đầu là dòng "auto wlan0" ở trên. Bạn cũng có thể muốn thêm "dns-nameervers 8.8.8.8" (làm ví dụ) sau dòng phát.
tham gia

2

Vô hiệu hóa ifplugd, sau đó địa chỉ IP tĩnh sẽ hoạt động.


làm việc cho tôi / etc / default / ifupd, thay đổi tự động / tất cả => eth0
flotto

2

Tôi nghi ngờ rằng hostapd khởi động lại giao diện, đó là nguyên nhân khiến điều này thất bại. Theo cách thủ công, bạn có thể thêm lệnh ifconfig vào tệp /etc/rc.local sẽ tự động thực thi khi khởi động.


2

Đây chắc chắn là một điều kiện chủng tộc trong jessie raspbian, đã ngừng sử dụng init dựa trên runlevel để ủng hộ phương pháp "bắt đầu mọi thứ cùng một lúc" dựa trên cây. Tôi nghĩ rằng tôi có thể đã làm tròn nó bằng cách đặt những dòng này vào /etc/rc.local:

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

Thời gian sẽ cho tôi biết.


OK, unix chắc chắn đã có runlevels và telinit khi tôi làm việc trên nó từ năm 1984 đến 1992, nhưng thật đáng tiếc chỉ mới trở lại gần đây. Có lẽ nếu chúng ta trải qua tất cả những điều không phải, một ai đó sẽ giải thích nó thực sự là gì . (Bản sửa lỗi của tôi vẫn hoạt động, nhưng tôi không thích nó).
Colin Wray

Tôi quyết định đó là một điều kiện cuộc đua bởi vì có hai kết quả có thể xảy ra của trình tự khởi động và chúng xảy ra ngẫu nhiên.
Colin Wray

Rất tiếc. Tôi xin lỗi vì đã đọc sai câu trả lời này - đó là một vấn đề gây ra bởi SysV init đã sửa lỗi w / systemd. Trong mọi trường hợp, không ai trong số họ có thể ngăn chặn tình trạng chủng tộc, vì về bản chất, nhiều dịch vụ họ bắt đầu rẽ nhánh và tồn tại. Định cấu hình sai bất cứ điều gì có thể gây ra vấn đề và điều tôi phản đối ở đây là ngụ ý rằng systemd tự nhiên là đáng trách (có thể lập luận rằng nó có một phương pháp tốt hơn để giải quyết các phụ thuộc và nó không chỉ đơn giản là "bắt đầu mọi thứ cùng một lúc" willy-nilly - nhưng điều này sẽ xảy ra trên một tiếp tuyến) ...
goldilocks

Tôi có một thái độ hơi không chính thống đối với việc kết nối mạng trên các hộp linux nói chung khiến tôi có ít quan điểm về các vấn đề như thế này và nếu bạn có một giải pháp phù hợp với mình, thật tuyệt, nhưng chẩn đoán của bạn có vẻ rất phỏng đoán (trông giống như một tình trạng chủng tộc, đi bộ giống như một điều kiện cuộc đua ... nhưng bóng của một con vịt không phải là một con vịt ... vv).
goldilocks

1
Khi đọc OP của tôi, tôi có thể thấy lý do tại sao bạn nghĩ rằng tôi đang đổ lỗi trực tiếp cho hệ thống và tại sao nó lại kích hoạt một người bảo vệ trung thành như bạn. Không, tôi nghĩ rằng vấn đề phải nằm ở cây phụ thuộc gói mà họ tuyên bố sẽ tuân theo, và điều mà tôi không biết về nó. Bằng cách nào đó nó phải nhận ra cuộc đụng độ giữa ifup và hostapd.
Colin Wray

1

Tôi sẽ cố gắng thêm các dòng sau ngay phía trên cấu hình giao diện không dây hiện tại của bạn:

auto wlan0
allow-hotplug wlan0

Điều này cho biết cấu hình giao diện của bạn để tự động khởi động giao diện wlan0 và nó có thể được chèn sau (hotplug).

Bạn cũng có thể cần thêm một gateway <IP Address>dòng để hoạt động định tuyến.


Đây là điều đã làm cho tôi lừa! Cảm ơn.
johnboiles

0

Không nhất thiết là một giải pháp tuyệt vời nhưng vì tôi gặp vấn đề với staticip của mình khi sử dụng / etc / network / interface nên tôi đã chuyển sang sử dụng ip tĩnh thông qua bộ định tuyến của mình? Bạn đã thử nó theo cách này như là một thay thế?


0

Tôi làm theo hướng dẫn tương tự để thiết lập WAP trên Pi của tôi.

Thật không may, dịch vụ dhcp không khởi động khi khởi động. Sau khi khởi động, kiểm tra dịch vụ cho thấy nó không chạy: dịch vụ isc-dhcp-server status Trạng thái của máy chủ ISC DHCP: dhcpd không chạy

Trên thực tế, giao diện wlan0 không nhận được địa chỉ IP và đó là lý do tại sao máy chủ dhcp không khởi động.

Tôi làm theo hướng dẫn trong liên kết bên dưới, nhưng nó không giải quyết được vấn đề: http://sirlagz.net/2013/02/10/how-to-use-the-raspberry-pi-as-a-wless- access-pointrouter-part-3b /

Sau đó, tôi làm theo hướng dẫn trong bài này: 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

Sau khi khởi động lại, máy chủ DHCP đang chạy.

Ngoài ra, một giải pháp khả thi khác mà tôi không thử nghiệm: rất tiếc, tôi không đủ uy tín để đăng hơn 2 liên kết.


0

Tôi đã có cùng một vấn đề. wlan0 mất địa chỉ IP tĩnh bằng cách nào đó khi máy chủ dhcp khởi động. Chỉnh sửa / etc / default / ifplugd và thay đổi thành:

INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"

Câu trả lời này là đúng! không biết tại sao bỏ phiếu xuống
flotto

Tôi đã có pi boot và đôi khi nó sẽ có địa chỉ 169.xx.xx.xx và đôi khi là địa chỉ tĩnh tôi muốn. Điều này đã được thực hiện nó đáng tin cậy có được địa chỉ tĩnh. Cảm ơn @Stef!
Peter Bagnall

0

Ngoài ra, bạn có thể tạo một dịch vụ nhỏ khởi động lại wlan0, đảm bảo nó khởi động khi khởi động trước hostapd và isc-dhcp-server.

Tạo tập lệnh mới /etc/init.d/wlan0-restart

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

với nội dung sau:

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

Sau đó thực hiện các lệnh sau:

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

Khởi động lại và kiểm tra xem wlan0 có địa chỉ IP tĩnh không và máy chủ isc-dhcpd đang chạy:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.