Networking

移動寬頻反复連接/斷開

  • September 25, 2017

我正在使用 Verizon 移動寬頻和內置在 Thinkpad T450s 筆記型電腦中的 Sierra Wireless EM7345 4G LTE 調製解調器。我正在使用預設設置之一(APN vzwinternet)使用 NetworkManager 和 ModemManager 配置調製解調器。該機器執行最新的 Arch Linux,核心版本為 4.1.4。

當我第一次啟動我的機器時,調製解調器通常工作正常。但是,在我第一次將機器掛到 RAM 後,當我嘗試使用調製解調器時,它會反复連接和斷開連接,不斷更改 IP 地址並使其無法使用ssh。我發現的唯一解決方法是重新啟動機器。顯然我想在不重新啟動的情況下解決這個問題。

如果相關,我已tlp啟用,但禁用它tlp false並不能解決問題。另外,我已經設置好USB_BLACKLIST_WWAN=1/etc/default/tlp,以防萬一。這些更改似乎都無法解決問題。

無論如何,斷開連接的原因似乎是沒有運營商。我的日誌中有很多這樣的內容,但調製解調器通常在斷開連接之間短暫可用:

Aug 18 15:57:01 laptop NetworkManager[630]: <info>  (cdc-wdm0): Activation: successful, device activ
ated.
Aug 18 15:57:01 laptop nm-dispatcher[9896]: Dispatching action 'up' for wwan0
Aug 18 15:57:04 laptop ModemManager[613]: <info>  Modem /org/freedesktop/ModemManager1/Modem/2: stat
e changed (connected -> registered)
Aug 18 15:57:04 laptop NetworkManager[630]: <info>  (cdc-wdm0): modem state changed, 'connected' -->
'registered' (reason: user-requested)
Aug 18 15:57:04 laptop NetworkManager[630]: <info>  (cdc-wdm0): device state change: activated -> fa
iled (reason 'modem-no-carrier') [100 120 25]
Aug 18 15:57:04 laptop NetworkManager[630]: <info>  NetworkManager state is now CONNECTED_LOCAL
Aug 18 15:57:04 laptop NetworkManager[630]: <info>  NetworkManager state is now DISCONNECTED
Aug 18 15:57:04 laptop NetworkManager[630]: <warn>  (cdc-wdm0): Activation: failed for connection 'V
erizon'
Aug 18 15:57:04 laptop NetworkManager[630]: <info>  (cdc-wdm0): device state change: failed -> disco
nnected (reason 'none') [120 30 0]
Aug 18 15:57:04 laptop NetworkManager[630]: <info>  Writing DNS information to /usr/bin/resolvconf
Aug 18 15:57:04 laptop nm-dispatcher[9896]: Dispatching action 'down' for wwan0

好吧,經過多年的巨大挫折,我終於設法解決了這個問題,那就是 NetworkManager 對調製解調器真的有問題。事實上,最近它變得更糟,甚至在我的寬頻調製解調器啟動時開始出現段錯誤。然而,事實證明,如果你只是手動配置調製解調器,它工作得非常好,即使在睡眠之後也是如此。(從睡眠中醒來必須重新連接,但它重新連接很快,然後穩定工作。)

以下說明假設您以 root 身份執行。第一步是讓 NetworkManager 不礙事。為此,請編輯文件/etc/NetworkManager/NetworkManager.conf並添加以下內容:

[keyfile]
unmanaged-devices=interface-name:cdc-wdm0

請注意,如果您希望它忽略多個設備,可以用分號分隔它們。接下來,您必須按如下方式配置 APN(和 mbim-proxy)。查看/usr/share/mobile-broadband-provider-info/serviceproviders.xml(或線上 git 儲存庫)以找到適合您網路的 APN。在 Verizon Wireless 的情況下,這是vzwinternet. 一旦你有了它,創建一個/etc/mbim-network.conf包含以下內容的文件:

APN=vzwinternet
PROXY=yes

現在執行以下命令:

rfkill unblock wwan
mbim-network /dev/cdc-wdm0 start
ip link set wwan0 up
mbimcli -p -d /dev/cdc-wdm0 --query-ip-configuration

如果mbim-network命令成功,該mbimcli命令隨後將產生如下輸出:

[/dev/cdc-wdm0] IPv4 configuration available: 'address, gateway, dns'
    IP [0]: '100.125.243.196/24'
   Gateway: '100.125.243.1'
   DNS [0]: '198.224.173.135'
   DNS [1]: '198.224.174.135'
   DNS [2]: '198.224.173.135'
   DNS [3]: '198.224.174.135'

[/dev/cdc-wdm0] IPv6 configuration available: 'address, gateway, dns'
    IP [0]: 'fe80::69:1c7d:5901/120'
   Gateway: 'fe80::69:1c7d:5902'
   DNS [0]: '2001:4888:68:ff00:608:d::'
   DNS [1]: '2001:4888:61:ff00:604:d::'

現在只需在網路介面上手動配置這些值,它就可以工作了。例如:

ip addr add dev wwan0 100.125.243.196/24
ip route add default via 100.125.243.1
echo 'nameserver 198.224.173.135' > /etc/resolv.conf

不要嘗試運​​行 DHCP(它不起作用)。不要嘗試 ping 網關 (100.125.243.1),因為這也不起作用。網關不響應任何網路數據包(甚至可能不存在)的事實讓我認為我的調製解調器沒有工作,直到我最終嘗試添加預設路由並禁用我的其他網路連接。

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