Wifi

Wifi 不工作,但已連接

  • April 4, 2021

我在我的電子閱讀器上執行 alpine Linux,但我無法讓 WiFi 工作。我讓它工作了一次,但重新啟動後我無法恢復它。

要使用 USB SSH 進入電子閱讀器,我在我的 PC 上執行:

ifconfig <USB interface> 192.168.2.3
ssh user@192.168.2.2

然後在我的電子閱讀器上執行:

ifconfig eth0 up
iwconfig eth0 essid NAME key PASSWORD

ifconfig給出:

eth0  Link encap:Ethernet  HWaddr 58:B0:D4:71:48:2C  
     UP BROADCAST MULTICAST  MTU:1500  Metric:1
     RX packets:0 errors:0 dropped:37 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:3908 (3.8 KiB)  TX bytes:0 (0.0 B)

usb0  Link encap:Ethernet  HWaddr 16:16:97:D3:84:43  
     inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:1286 errors:0 dropped:0 overruns:0 frame:0
     TX packets:302 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:71707 (70.0 KiB)  TX bytes:37189 (36.3 KiB)

dhclient -v eth0給出:

Listening on LPF/eth0/58:b0:d4:71:48:2c
Sending on   LPF/eth0/58:b0:d4:71:48:2c
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 20
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

編輯:我讓它(有點)工作,我需要執行所有這三個命令,並且為了讓它工作。

iwconfig eth0 essid XXX key XXX
wpa_supplicant -B -i eth0 -c /etc/wpa_supplicant.conf -D wext # fails, operation not permitted
dhclient -v eth0

我現在唯一的問題,我可以ping IP,但不能ping 域?

(none):/home/user# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=119 time=16.403 ms
64 bytes from 8.8.8.8: seq=1 ttl=119 time=12.965 ms
...
(none):/home/user# ping google.com
ping: bad address 'google.com'

我認為這與我的電腦和電子閱讀器之間的 USB 連接有關,我只能從電子閱讀器 ping 我的電腦,沒有其他內部 IP。(它無法訪問我的 DNS 伺服器)

編輯2:

我通過 USB 禁用了 ssh,並使用 IP 連接。現在 DNS 也已修復,一切正常。

我仍然不知道為什麼我需要 iwconfig 和 wpa_supplicant 嗎?

ifconfig eth0 up
iwconfig eth0 essid NAME key PASSWORD

這僅在 WiFi 網路配置為使用過時和損壞的 WEP 加密時才有效。

eth0也是無線網路介面的非典型名稱:您確定這是正確的介面嗎?ethtool -i eth0電子閱讀器上說什麼?


在評論中,驅動程序被證明是rtl8189fs:一個樹外驅動程序,邊緣可能仍然有點粗糙。

無論如何,wpa_supplicant 是訪問現代 WPA2 加密無線網路的關鍵組件。

wpa_supplicant -B -i eth0 -c /etc/wpa_supplicant.conf -D wext # fails, operation not permitted

“不允許操作”可能並不意味著該命令完全失敗:該-D wext選項告訴它使用舊式無線擴展,這可能在您的核心中不可用。一旦嘗試使用無線擴展失敗,wpa_supplicant可能會嘗試使用更現代的 WiFi 控制界面,相當於 option -D nl80211。嘗試用該-D wext選項替換-D nl80211或完全刪除它,然後查看錯誤消息是否消失。

此外,pgrep -a wpa_supplicant在執行 ostensibly-failing 命令後執行:如果它表明wpa_supplicant程序仍在執行,那麼實際上它確實設法繼續,而不管錯誤如何。

通常wpa_supplicant會為您處理設置 ESSID 和加密密鑰,因此如果wpa_supplicant有效(儘管有錯誤消息,它似乎確實如此),那麼iwconfig eth0 essid XXX key XXX可能是不必要的。

下一步是找出為什麼dhclient沒有為您提供有效的 DNS 伺服器地址,並可能嘗試手動提供它們以驗證 DNS 連接。例如,嘗試顯式地向的 IPv4 地址dig google.com A @8.8.8.8發送 DNS 請求並查看答案。google.com``8.8.8.8

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