Answers:
这适用于12.04+,因为这些是我可以测试的,但也可以在较旧的版本中使用。我将本指南分为几个部分,包括:
根据无线网卡,无线安全性和无线路由器设置,以下命令行可用于连接和断开连接。在继续之前,请确保已启用网络服务(对于可能使用恢复模式启动Ubuntu的情况):
根据您的Ubuntu版本,您需要使用以下一种方式启动它:
如果使用SystemD(从14.10开始):
sudo systemctl start networking
如果使用传统的init.d方法: sudo /etc/init.d/networking restart
如果使用旧版新贵方式: sudo service network-manager restart
对于无线路由器没有密码或WEP安全的情况,请执行以下操作:
打开终端并查找无线连接:
iwlist wlan0 s
(s用于扫描。wlan0是我的无线网卡,但对于每个用户可能是不同的。有些用户有eth0,另一些用户是wlan2。。您需要sudo
执行此选项。要查找无线网卡的名称,只需键入iwlist并按TAB。这将自动完成带有网卡名称的行。您也可以iwconfig
在将显示的列表中键入并找到名称。)
如果您不知道无线设备的名称,请输入::iwconfig
它将显示您的有线/无线设备及其名称。它们可能类似于wlan0,wlan1,eth1,eth2。
查找将为您显示对您可见的所有可能的接入点(AP)。在列表中看到路由器后,尝试连接到它:
如果没有密码,请执行以下操作:
iwconfig wlan0 essid NAME_OF_ACCESS_POINT
例如
iwconfig wlan0 essid CYREX
在那之后,请确保使用它,dhclient
以便在路由器没有分配一个动态IP的情况下获得动态IP。那应该使您连接到CYREX路由器。
如果有密码,请执行以下操作:
iwconfig wlan0 essid CYREX key PASSWORD
那应该使用您在此处输入的PASSWORD进行连接。
同样,dhclient
在连接后再进行一次操作以确保分配了IP。
确保正确连接始终是好的,因此请执行iwconfig
以确保您的无线卡已连接到上述SSID。它应该显示您连接的设备和分配给您的IP。如果不支持,并给您一个错误,例如“ 接口不支持扫描”,请尝试以下两个选项:
sudo ifconfig wlan0 up
sudo
进行扫描时尝试添加:sudo iwlist wlan0 s
尝试将设备放下然后再备份:
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
对于无线路由器具有WPA / WPA2密码的情况,有几种方法可以这样做。我会提到两种最受欢迎的:
打开终端并查找无线连接:
iwlist wlan0 s
(s用于扫描。wlan0是我的无线网卡,但对于每个用户可能是不同的。有些用户有eth0,另一些用户是wlan2。。您需要sudo
执行此选项。要查找无线网卡的名称,只需键入iwlist并按TAB。这将自动完成带有网卡名称的行。您也可以iwconfig
在将显示的列表中键入并找到名称。)
如果您不知道无线设备的名称,请输入::iwconfig
它将显示您的有线/无线设备及其名称。它们可能类似于wlan0,wlan1,eth1,eth2。
查找将为您显示对您可见的所有可能的接入点(AP)。在列表中看到路由器后,尝试连接到它:
在终端中键入以下内容(假设您已经wpasupplicant
安装了用于安装我们将在此处使用的所有必需命令的软件包):
wpa_passphrase SSID PASSWORD > CONFIG_FILE
例: wpa_passphrase Virus LinuxFTW > wpa.conf
其中Virus是我的路由器的名称,LinuxFTW是我的密码,并且wpa.conf
是我要将所有这些信息存储在其中的文件。请注意,您可以将文件保存在另一个位置,许多用户使用/etc/wpa_supplicant.conf
而不是来保存文件wpa.conf
。wpa.conf文件的数据应如下所示:
network={
ssid="Virus"
#psk="LinuxFTW"
psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae
}
至此,我们应该知道无线网卡接口的名称(例如:Wlan0,eth2,Wlan2 ...)。现在,我们需要知道正在使用哪个驱动程序。为此,我们输入:
wpa_supplicant
它应该向我们显示很多信息,但是会有一个名为** Drivers *的部分,其中显示了所有可用的驱动程序(在编译时可用wpa_supplicant
)。在我的情况下是这样的:
drivers:
wext = Linux wireless extensions (generic)
nl80211 = Linux nl80211/cfg80211
wired = Wired Ethernet driver
none = no driver (RADIUS server/WPS ER)
整个列表是hostap,hermes,madwifi,wext,broadcom,wired,roboswitch,bsd,ndis。这可以根据wpa_supplicant
编译方式而改变,但是为我显示的代码应该与您系统上的代码相似。大多数用户将选择wext
驱动程序。
因此,既然我们有了无线接口卡的名称和驱动程序的名称,就可以使用以下格式,使用已经创建的配置文件继续连接到它:
wpa_supplicant -iINTERFACE_NAME -cCONFIGURATION_FILE -DDRIVER_NAME
例如:
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
哪里-i
是你的接口卡的名字,-c
是你的配置文件是和-D
是您将使用连接驱动程序的名称。如果连接正确,则我们按CTRL+ C取消它,然后再次执行该行,但这一次我们将其发送到后台,-B
因此我们可以继续使用终端:
wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
之后,只需执行一个操作sudo dhclient wlan0
即可从路由器获取IP。
一些用户报告说已删除哈希并仅在配置中保留密码,例如:
network={
ssid="Virus"
psk="LinuxFTW"
}
其他人已将ssid_scan添加到配置文件中:
network={
ssid="Virus"
scan_ssid=1
#psk="LinuxFTW"
psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae
}
甚至添加Key类型:
network={
ssid="Virus"
scan_ssid=1
key_mgmt=WPA-PSK
#psk="LinuxFTW"
psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae
}
有关此的更多信息 man wpa_supplicant.conf
网络管理器的好处是它附带了两个不错的脚本和工具。其中两个是nmcli
和create_connection
(整洁的Python 3脚本),在这种情况下我们将使用它们。
在执行了前面提到的找到路由器的SSID名称的步骤(记住iwlist
上面的部分)之后,我们执行以下操作:
sudo /usr/share/checkbox/scripts/create_connection -S SECURITY_TYPE -K PASSWORD SSID_NAME
其中“ 安全性”是路由器使用的安全性类型(WPA,WEP),“ 密码”是密码,“ SSID_NAME”是路由器的SSID名称。例如:
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.
之后,您应该从路由器获得一个IP分配。如果不是那么简单地做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
在一台PC 上使用的尝试均无效,但在另一台PC上,这是我第一次尝试的方法。因此,请同时发布这两种方法,以帮助解决每种情况,并使用户更轻松地确定所需的方法。
尽管我们已经讨论了在没有网络管理器的情况下连接到它的方法,但在应用时也有使用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密码ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME
例如,在我的情况下,设备的名称是,wlp9s0
因此我将使用此行来指定用于连接的设备:
通过使用help参数可以获得有关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权限。
要查看Network Manager type的状态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
现在让我们说我们要删除Xcentral,然后继续执行以下命令:
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 ASSIGNED_IP
netmask 255.255.255.0
gateway THE_GATEWAY
wireless-essid YOURSSID
wireless-key WIRELESSKEY_HERE
保存文件并重新启动计算机。请注意,这将保存在纯文本文件中,该文件可从同一台计算机上访问。
单击网络管理器,然后转到连接信息
转到保存无线网卡的标签
在此图像中,此网卡被命名为eth1(在括号内),但是对于每个用户而言,这可能是不同的。通常,它是一个wlan(如wlan0,wlan1,wlan2 ...),但也可以是eth1,eth2等。因此,您需要查看其名称。
快速查找名称的另一种方法是键入iwconfig
,它将显示所有可用的无线网卡。
iwlist
两次后,按tab键,终端将在iwilst
如果您知道该怎么做,这将非常容易。
显示可用的无线接入点:
nmcli dev wifi
与接入点连接:
nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
network manager command line interface
没有回答原始问题How to connect without a network manager
。
wicd带有2个命令行实用程序:wicd-curses和wicd-cli(它们可能需要单独安装)wicd-curse允许您交互地配置/连接到网络(有线或无线)的断开连接,widd-cli提供了相同的功能,但是通过仅命令行选项(对脚本有用)我在cron作业中使用它来解决一些自动重新连接错误:
wicd-cli -y -c -m MY_NETWORK_SSID
您也可以“只是”拥有wpa_supplicant配置,例如:
/ etc / network / interface:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf
和(作为WPA示例)/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"
}
对此有很多考虑,其中出于安全方面的考虑,以明文形式使用预共享密钥(wpa_supplicant可以让您提供加密的或可能只是混淆的密钥,请检查手册页),还使该文件仅拥有并可读从根本上讲是一种缓解措施。
我认为拥有多个网络部分将能够按优先级顺序连接多个网络。
我使用wicd-curses
,到目前为止,它是最简单的用户界面。
您需要使用→(向右箭头键->
)设置配置;根据屏幕上的说明,其他所有内容都很明显。
当然,您需要找到一些无需使用Internet即可上网的方法wicd
;我假设您已经解决了这个问题,否则您将不会发布。
(这对OP来说不及时,只是张贴后代,因为这个问题仍然出现在Google上。对于Google搜寻者:如果您是从咖啡馆或朋友的计算机或其他设备上阅读此书,也许您可以在某处使用电汇进行wicd-curses
安装sudo apt-get install wicd-curses
;然后确保在离开之前可以在已知可以正常工作的网络上对其进行测试!)