재부팅 후 항상 wlan0을 ifdown/ifup해야 합니다.

재부팅 후 항상 wlan0을 ifdown/ifup해야 합니다.

저는 5대의 컴퓨터(Windows PC 1대와 라즈베리 파이 4대에 라즈비안이 로드되어 있음)로 구성된 임시 Wi-Fi를 만들려고 합니다. 라즈베리 파이는 mqtt를 통해 통신하지만 그게 요점이 아닙니다. 내가 가진 문제는 wlan0재부팅할 때마다 인터페이스를 갖기 위해 항상 다음을 수행해야 한다는 것입니다 .

sudo ifdown wlan0
sudo ifup wlan0

이유를 아시나요? 여기 내 conf가 있습니다(물론 IP 주소를 제외하고는 각 파이에서 동일합니다!)

~ % ifconfig                 
eth0      Link encap:Ethernet  HWaddr b8:27:eb:ff:88:99  
          inet addr:192.168.1.41  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:951 errors:0 dropped:0 overruns:0 frame:0
          TX packets:266 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:66321 (64.7 KiB)  TX bytes:43663 (42.6 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:0f:13:51:05:8c  
          inet addr:192.168.0.2  Bcast:192.168.0.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:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:2520 (2.4 KiB)

~ % iwconfig
wlan0     IEEE 802.11bgn  ESSID:"mirroir"  
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 42:B1:44:EB:D2:C1   
          Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

lo        no wireless extensions.

eth0      no wireless extensions.


~ % more /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid mirroir
    wireless-mode ad-hoc
    wireless-key 967136deac

~ % sudo route add -net 192.168.0.0 netmask 255.255.255.0 wlan0

~ % netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.1.254   0.0.0.0         UG        0 0          0 eth0
192.168.0.0     *               255.255.255.0   U         0 0          0 wlan0
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0

어떤 아이디어?

작동하는 것 같지만 항상 그런 것은 아닙니다. 10번 중 1번 부팅하는 것처럼 정말 이상합니다.

답변1

아래 해결 방법 중 하나를 시도해 보셨나요? 문제를 재현하기가 쉽지 않고, 구입하신 드라이버에 문제가 있을 수 있으므로 여기서 답을 추측해야 합니다.

  1. 인터페이스 파일에서 "auto wlan0"을 주석 처리하고 "allow-hotplug wlan0"을 유지하세요.

    #auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    
  2. 아마도 당신이 찾고 있는 이상적인 솔루션은 아닐 것입니다. 그러나 다음 내용을 포함하여 즐겨찾는 스크립트 디렉토리에 실행 권한이 있는 새로운 셸 스크립트를 생성해 보십시오.

    ifdown wlan0 
    ifup wlan0 
    

    그런 다음 인터페이스 파일에 다음 줄을 추가합니다.

    auto wlan0
    iface wlan0 inet dhcp
    ... rest of the config ...
    post-up /path-to-your-script/script.sh
    
  3. 무선 연결이 활성화되지 않은 상태에서 컴퓨터가 시작되는 경우. iwconfig인터페이스가 나타날 때까지 다양한 매개변수를 사용해 보십시오 (전체 목록을 얻으려면 man iwconfig를 시도하십시오). 내 생각엔 txpower일종의 스위치가 여기서 당신에게 도움이 될 것 같아요. 그것이 효과가 있다면 pre-up <command-that-worked>두 번째 답변과 같이 인터페이스 파일을 사용하고 거기에 명령을 남겨 두십시오.

    그래서 마지막에는 이와 같은 것입니다((pre|post)-up에 절대 경로를 전달하는 것을 기억하십시오)

    pre-up /sbin/iwconfig wlan0 txpower on
    

답변2

여기서도 똑같은 문제가 발생합니다. 문제는 타이밍 문제였습니다. 부팅 프로세스가 ifup.

pre-up sleep 5인터페이스 파일의 wlan0에 wait 문을 추가하여 이 문제를 해결했습니다 .

marcelo@breeze:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
  pre-up sleep 5 
  address 10.0.0.42
  netmask 255.255.255.0
  gateway 10.0.0.2
  dns-nameservers 10.0.0.2
  wpa-ssid mycoolssid
  wpa-psk returnguantanamo

답변3

eth0 인터페이스와 wlan0에 대해 다른 "로컬" 네트워크를 사용하고 싶을 수도 있습니다.

따라서 무선랜의 경우 10.10.0.1마스크 와 같은 네트워크를 사용 255.255.255.0 하고 eth의 경우 192.168.0.1마스크와 같은 네트워크를 사용합니다.255.255.255.0

RPI에서는 이 문제가 발생하지 않았습니다(아마도 항상 wlan0과 eth0 네트워크 IP를 매우 다르게 유지하기 때문일 것입니다). 하지만 내 Windows PC에서는 항상 이 문제가 발생합니다. 192.168.1.x예를 들어 주소가 있는 rasbperry 192.168.0.x(세 번째 옥텟에 유의)를 사용하여 무선을 사용하고 이더넷 포트에 연결하면 항상 네트워크 연결이 끊어집니다.

답변4

또는 장치 부팅 시 표시할 인터페이스에 대한 auto eth0주석 을 제거 하십시오.auto eth1auto wlan

관련 정보