由于网络管理器给我带来了很多困扰,我想要替换它(可能是从 ppa:volanin
中的 wicd
或 NM
)。
我不知道如何在终端中连接和断开网络而不使用网络管理器。
我希望有一种命令行方式来管理网络。
由于网络管理器给我带来了很多困扰,我想要替换它(可能是从 ppa:volanin
中的 wicd
或 NM
)。
我不知道如何在终端中连接和断开网络而不使用网络管理器。
我希望有一种命令行方式来管理网络。
适用于12.04+版本,因为这些是我可以测试的版本,但也适用于旧版本。我将本指南分为几个部分:
根据无线网卡、无线安全和无线路由器设置,可以使用以下命令行进行连接和断开连接。在继续之前,请确保网络服务已启用(对于可能使用恢复模式启动Ubuntu的情况):
根据您的Ubuntu版本,您需要使用以下一种方式启动它:如果使用SystemD(自14.10+起):
sudo systemctl start networking
sudo /etc/init.d/networking restart
如果使用传统的Upstart方式:sudo service network-manager restart
第一部分:没有密码或WEP密钥的无线路由器打开终端并查找无线连接:
iwlist wlan0 s
(s 代表扫描。 wlan0 是我的无线网卡,但对于每个用户可能不同。有些人是eth0,其他人是wlan2.. 执行此选项需要使用 sudo
。要找出您的无线网卡名称,只需键入 iwlist 然后按下 TAB 键。这将自动完成网络卡名称的行。您还可以键入 iwconfig
并在显示的列表中找到名称。)
如果您不知道无线设备的名称,请键入: iwconfig
,它将显示有线/无线设备及其名称。它们可能是类似 wlan0、wlan1、eth1、eth2 的东西。
查找结果将显示您可见的所有可能的接入点(AP)。在列表中看到您的路由器后,尝试连接到它:
iwlist
的部分)后,我们执行以下操作:sudo /usr/share/checkbox/scripts/create_connection -S SECURITY_TYPE -K PASSWORD SSID_NAME
sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
$ sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
[sudo] password for cyrex:
Connection Virus registered
Connection Virus activated.
sudo dhclient wlan0
(假设wlan0是您的接口名称)。您还可以使用nmcli检查网络管理器的连接,如下所示:nmcli c
,它应该显示类似于这样的内容:$ nmcli c
NAME UUID TYPE TIMESTAMP-REAL
Xcentral f51a5a64-8a91-47d6-897c-28efcd84d2b0 802-11-wireless Fri 22 Mar 2013 02:25:54 PM VET
Realtek 9ded7740-ad29-4c8f-861f-84ec4da87f8d 802-3-ethernet Tue 05 Mar 2013 01:18:31 AM VET
Intel e25b1fd8-c4ff-41ac-a6bc-22620296f01c 802-3-ethernet Fri 05 Apr 2013 10:04:05 PM VET
Virus 3f8ced55-507b-4558-a70b-0d260441f570 802-11-wireless Tue 09 Apr 2013 06:31:10 AM VET
我提到网络管理器的方法,因为有一些情况下使用 wpa_supplicant
将无法工作(路由器和无线网卡之间的问题,安全性问题等)。在我的情况下,所有尝试在一台电脑上使用 wpa_supplicant
都失败了,但在另一台电脑上第一次尝试就成功了。所以我发布这两种方法来帮助每个情况并让用户更容易决定他们想要哪种方法。
虽然我们已经讨论了如何在没有网络管理器的情况下连接,但还有一种情况可以使用 nmcli(网络管理器的CLI版本)。要做到这一点,我们需要按照以下步骤操作:
检查我们能够看到哪个ESSID:
nmcli dev wifi
验证ESSID的名称,然后在下一行中使用它及其所需的密码(包括WEP和WPA类型的密码):
nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD
这是我连接到ESSID Linux5G的示例
如果您的计算机上有多个无线设备,可以使用ifname
参数指定要使用的设备,如下所示:
nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME
例如,在我的情况下,设备的名称是wlp9s0
,因此我会使用此行来指定我将用于连接的设备:
通过使用帮助参数,可以获取有关nmcli的更多信息。例如,如果您想了解有关nmcli dev
的信息,您可以键入nmcli dev help
。如果您想了解有关nmcli dev wifi
的更多信息,您可以键入nmcli dev wifi help
,依此类推。
有几种方法可以实现这一目标:
强制断开连接: sudo ifconfig wlan0 down
这将关闭您的无线网卡接口(驱动程序关闭)。要打开它,只需输入ifconfig wlan0 up
,然后输入sudo dhclient wlan0
。如果通过网络管理器查看,它仍然会显示为已连接,但实际上与路由器没有连接。尝试ping
会出现connect: Network is unreachable
错误。
释放DHCP IP地址: sudo dhclient -r wlan0
记得使用sudo dhclient wlan0
重新分配IP地址。
使用网络管理器断开连接: nmcli nm enable false
其中nm是nmcli的参数,用于管理和设置网络管理器的状态。选项enable
可以是true或false,如果设置为false,则所有由网络管理器管理的网络连接都将断开。请注意,nmcli不需要root权限。
nmcli nm
,它应该显示类似于以下内容: $ nmcli nm
RUNNING STATE WIFI-HARDWARE WIFI WWAN-HARDWARE WWAN
running connected enabled enabled enabled enabled
nmcli c down id NAME` - Will disconnect the connection NAME
nmcli c up id NAME` - Will connect the connection NAME
nmcli c
$ nmcli c
NAME UUID TYPE TIMESTAMP-REAL
Realtek 9ded7740-ad29-4c8f-861f-84ec4da87f8d 802-3-ethernet Tue 05 Mar 2013 01:18:31 AM VET
PrivateSys 86b2b37d-4835-44f1-ba95-46c4b747140f 802-11-wireless Sun 21 Apr 2013 07:52:57 PM VET
pepe 9887664b-183a-45c0-a81f-27d5d0e6d9d8 802-11-wireless Thu 18 Apr 2013 02:43:05 AM VET
Virus 3f8ced55-507b-4558-a70b-0d260441f570 802-11-wireless Tue 16 Apr 2013 11:33:24 AM VET
Intel e25b1fd8-c4ff-41ac-a6bc-22620296f01c 802-3-ethernet Sun 21 Apr 2013 08:12:29 PM VET
Xcentral f51a5a64-8a91-47d6-897c-28efcd84d2b0 802-11-wireless Fri 22 Mar 2013 02:25:54 PM VET
nmcli c delete id Xcentral
$ nmcli c delete id Xcentral
$ nmcli c
NAME UUID TYPE TIMESTAMP-REAL
Realtek 9ded7740-ad29-4c8f-861f-84ec4da87f8d 802-3-ethernet Tue 05 Mar 2013 01:18:31 AM VET
PrivateSys 86b2b37d-4835-44f1-ba95-46c4b747140f 802-11-wireless Sun 21 Apr 2013 07:52:57 PM VET
pepe 9887664b-183a-45c0-a81f-27d5d0e6d9d8 802-11-wireless Thu 18 Apr 2013 02:43:05 AM VET
Virus 3f8ced55-507b-4558-a70b-0d260441f570 802-11-wireless Tue 16 Apr 2013 11:33:24 AM VET
Intel e25b1fd8-c4ff-41ac-a6bc-22620296f01c 802-3-ethernet Sun 21 Apr 2013 08:12:29 PM VET
/etc/NetworkManager/system-connections/
文件夹中。$ ls /etc/NetworkManager/system-connections
Intel pepe PrivateSys Realtek Virus
这只是在您希望手动编辑/删除/添加连接时使用。
对于您希望自动登录到无线路由器的情况,以下是步骤:
打开 interface
文件:
sudo nano /etc/network/interfaces
添加以下信息(假设您的接口名称为 wlan0):
auto wlan0
iface wlan0 inet static
address 分配的 IP 地址
netmask 255.255.255.0
gateway 网关地址
wireless-essid 您的无线网络名称
wireless-key 无线网络密钥
保存文件并重新启动计算机。请注意,这将保存在一个纯文本文件中,可以从同一台计算机访问。
点击网络管理器,进入连接信息
转到包含您的无线网卡的选项卡
在这个图片中,这个网络卡的名称是eth1(括号内)。但对于每个用户来说,这可能是不同的。通常它会是一个wlan(比如wlan0、wlan1、wlan2...),但也可以是eth1、eth2等等。所以你需要看一下它的名字。
另一种快速找到名字的方法是输入iwconfig
,它将显示所有可用的无线网络卡。
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext -d
时,出现了ioctl [SIOCSIWENCODEEXT] Invalid argument
错误。 - PHP Learnercreate_connection
脚本的人来说:它不再存在于checkbox
软件包中,而是出现在plainbox-provider-checkbox
软件包中的/usr/lib/2013.com.canonical.certification:checkbox/bin/create_connection
路径下。 - arsioctl[SIOCSIWENCODEEXT]
错误的人来说,我发现重新启动设备可以解决这个错误。一旦我重新启动,就能够连接到网络并获得一个分配的IP地址。 - The Thirsty Ape如果你知道怎么做的话,这很容易。
显示可用的 WLAN 接入点:
nmcli dev wifi
连接到访问点:
nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
nmcli networking on
。要关闭它,请执行nmcli networking off
。 - Brōtsyorfuzthrāxwicd-cli -y -c -m MY_NETWORK_SSID
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf
network={
ssid="MY_NETWORK_SSID"
proto=RSN
key_mgmt=WPA_PSK
pairwise=CCMP_TKIP
group=CCMP_TKIP
psk="my network key in the clear"
}
wicd-curses
,我发现它是迄今为止最简单的用户界面。
->
)来设置配置;其他的都可以从屏幕上的指示中明显看出。wicd
的情况下上网的方法;我假设你已经解决了这个问题,否则你就不会发帖了。
(这对于楼主来说已经不及时了,只是为了记录而发布,因为这个问题仍然在谷歌上出现。对于谷歌搜索者:如果你正在从咖啡馆、朋友的电脑或其他地方阅读这篇文章,也许你可以用一根线连接到某个地方,然后使用sudo apt-get install wicd-curses
安装wicd-curses
;然后确保在离开之前在一个已知可用的网络上进行测试!)
在新安装的Ubuntu Server 20.04上使用RasPi进行工作:NetworkManager(nmcli / nmtui等)尚未安装,因此可能需要更多手动操作,至少在开始阶段是有帮助的。
从18.04版本开始,Ubuntu的底层网络似乎由netplan处理,因此需要为这些版本进行配置。一个有用的指南提供了答案;简而言之(例如),
确定您的无线接口的名称,
$ ip a
$ sudo vi /etc/netplan/50-cloud-init.yaml
wifis:
部分,network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
optional: true
access-points:
"network-name-here":
password: "wifi-password-here"
dhcp4: true
启用此功能,
$ sudo netplan apply
$ ip a
wicd-curses
,我觉得这是迄今为止最简单的用户界面。你需要使用 <kbd>→</kbd>(右箭头键->
)来设置配置;其他所有操作都可以从屏幕上的指示中明显看出。 - isomorphismes