Debian

重啟後我總是需要 ifdown/ifup wlan0

  • February 10, 2018

我正在嘗試創建一個由 5 台電腦(一台 Windows PC 和 4 台裝有 raspbian 的樹莓派)組成的 ad-hoc wifi。樹莓派會通過 mqtt 進行對話,但這不是重點。我遇到的問題是我總是需要執行以下操作才能wlan0在每次重新啟動後擁有界面:

sudo ifdown wlan0
sudo ifup wlan0

你知道為什麼嗎?這是我的conf(除了IP地址,每個pi都一樣!)

~ % 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. 在介面文件中嘗試註釋掉“auto wlan0”並保留“allow-hotplug wlan0”
#auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
... rest of the config ...
  1. 可能不是您正在尋找的理想解決方案,但請嘗試在您喜歡的腳本目錄中創建一個具有執行權限的新 shell 腳本,其中包含以下內容。
ifdown wlan0 
ifup wlan0 

然後將以下行添加到您的介面文件中。

auto wlan0
iface wlan0 inet dhcp
... rest of the config ...
post-up /path-to-your-script/script.sh
  1. 當您的電腦在沒有啟動無線連接的情況下啟動時。嘗試iwconfig使用不同的參數(嘗試使用 man iwconfig 獲取完整列表),直到您的界面出現。我想可能是txpower某種開關可能會幫助你。如果這對您有用pre-up <command-that-worked>,請在您的介面文件中使用,就像在第二個答案中一樣,並將命令留在那裡。

所以最後是這樣的(記住將絕對路徑傳遞給 (pre|post)-up

pre-up /sbin/iwconfig wlan0 txpower on

引用自:https://unix.stackexchange.com/questions/93063