使用 nmcli 配置 gsm 連接
我有一個沒有 X 顯示器的系統,我想用它
nmcli
來配置我的蜂窩調製解調器以連接到某個 apn。我可以在 Ubuntu(使用 X)上很好地使用這個調製解調器,我現在想在命令行上實現同樣的效果。如何設置連接?到目前為止,我得到了這個:
# nmcli dev status ** (process:2379): WARNING **: Could not initialize NMClient /org/freedesktop/NetworkManager: Permissions request failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PolicyKit1 was not provided by any .service files DEVICE TYPE STATE ttyUSB1 gsm disconnected eth0 802-3-ethernet connected
聚會有點晚了,但我被困在了同樣的障礙上。既然我已經解決了,我想我會分享我的發現,因為關於該主題的所有其他文章都像泥巴一樣清晰。
雖然 NetworkManager 可以看到設備,但它不知道設備支持的任何連接。與 WiFi 不同,我們不能只進行掃描來列出可用連接。我們需要自己添加一個。
在創建連接之前,請確保 NetworkManager 不會阻止設備被管理。預設情況下,這發生在 Ubuntu 伺服器上,以防止 NetworkManager 接管現有的合法遺留連接(請參閱此處Ubuntu 開發人員的解釋)。
nmcli device
您可以在顯示您的設備狀態時驗證該設備是否不受管理unmanaged
,相反的是disconnected
. 在這種情況下,請跳到下一段。要讓 Ubuntu Server 上的 NetworkManager 處理連接,請將文件複製
/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
到,然後對其進行編輯:通過將type 添加到例外列表來/etc/NetworkManager/conf.d/10-globally-managed-devices.conf
修改以開頭的行:unmanaged-device``gsm
unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:gsm
升級 NetworkManager 時不要忘記檢查原始 /usr/lib 文件的更新。
創建連接
首先,我們使用(適當命名的 /s)
edit
命令創建一個您希望命名的新連接,例如:sudo nmcli connection edit type gsm con-name "My GPRS Connection"
如果
sudo
您不想在嘗試保存連接時感到失望,請使用此選項。當然,如果您不使用 GSM,您可以將 type 參數更改為 NetworkManager 支持的不同協議。
現在您將進入編輯模式。您需要的大部分設置都會自動為您填寫。
nmcli> print =============================================================================== Connection profile details (My GPRS Connection) =============================================================================== connection.id: My GPRS Connection connection.uuid: 27b012ca-453f-482f-bc0e-c81bbab07310 connection.interface-name: -- connection.type: gsm connection.autoconnect: yes connection.timestamp: 0 connection.read-only: no connection.permissions: connection.zone: -- connection.master: -- connection.slave-type: -- connection.secondaries: connection.gateway-ping-timeout: 0 ------------------------------------------------------------------------------- ipv4.method: auto ipv4.dns: ipv4.dns-search: ipv4.addresses: ipv4.routes: ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.never-default: no ipv4.may-fail: yes ------------------------------------------------------------------------------- ipv6.method: auto ipv6.dns: ipv6.dns-search: ipv6.addresses: ipv6.routes: ipv6.ignore-auto-routes: no ipv6.ignore-auto-dns: no ipv6.never-default: no ipv6.may-fail: yes ipv6.ip6-privacy: -1 (unknown) ipv6.dhcp-hostname: -- ------------------------------------------------------------------------------- gsm.number: *99# gsm.username: -- gsm.password: -- gsm.password-flags: 0 (none) gsm.apn: -- gsm.network-id: -- gsm.network-type: -1 gsm.allowed-bands: 1 (any) gsm.pin: -- gsm.pin-flags: 0 (none) gsm.home-only: no -------------------------------------------------------------------------------
鍵入
help
以查看完整的命令列表。您唯一可能需要編輯的是網路的 APN。這可以設置為
set gsm.apn <APN>
APN 類似於 的位置epc.t-mobile.com
,wholesale
或vzwinternet
用於 verizon。您還可以限制與特定介面的連接。不建議這樣做,尤其是對於設備名稱很容易更改的基於串列的連接。如果你想,你可以做
set connection.interface-name ttyS4
例如。如果您以 root 身份執行,您現在可以保存連接
nmcli> save
就是這樣。如果您需要返回編輯連接,請使用
nmcli c edit "My GPRS Connection"
,或直接編輯配置文件。在基於 Debian 的系統上,您會在 中找到它/etc/NetworkManager/system-connections/
,在 Redhat 上,它會在/etc/sysconfig/network-scripts/
. 這些文件似乎可以從一個系統轉移到另一個系統——UUID 基本上是隨機的。連接到我們的新連接
現在你應該可以連接了
sudo nmcli device connect <interface name>
如果一切順利,NetworkManager 會自動選擇“我的 GPRS 連接”。如果不,
sudo nmcli connection up "My GPRS Connection" ifname <interface name>
這就是我現在失敗的地方。它在連接期間超時,但我認為我超出了信號範圍。希望它對你更好。
如果您需要更多資訊,請發表評論。