Archlinux network configuration
net-tools vs iproute2
ifconfig是net-tools中被废弃使用的一个命令, 已经没有维护了。 iproute2里面提供了许多增强功能的命令,ip命令即是其中一个。
usage of ip command
SYNOPSIS
ip [OPTIONS] OBJECT {COMMAND | help}
OBJECT := {link | address | addrlabel | route | rule | neigh | ntable | tunnel | …}
当你不知道某个OBJECT的用法,可以输入help命令, 例如查看link的帮助信息:
ip link help
ip addr
设置IP地址
ip addr add 192.168.1.193/24 dev wlp5s0
注意: ip地址有一个后缀,比如/24, 表示子网掩码,24代表有24位为1, 所以/24表示子网掩码为255.255.255.0 这个后缀最大为/32.
这种用法用于 “无类域间路由选择(CIDR)” 用来显示所用的子网掩码
查看地址
ip addr show wlp5s0
$ ip addr show wlp5s0 3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether b8:ee:65:27:fe:2f brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global wlp5s0 valid_lft forever preferred_lft forever inet 192.168.1.193/24 scope global secondary wlp5s0 valid_lft forever preferred_lft forever inet6 fe80::baee:65ff:fe27:fe2f/64 scope link valid_lft forever preferred_lft forever
删除IP地址
ip addr del 192.168.1.193/24 dev wlp5s0
ip link
显示不同网络接口的统计数据
ip -s link
显示指定网络接口的统计数据
ip -s link ls wlp5s0
显示指定网络接口的统计数据, 显示更详细的数据
ip -s -s link ls wlp5s0
激活/停止特定的接口 ip set link wlp5s0 up ip set link wlp5s0 down
Wireless network configuration
wireless device driver
首先需要确保无线网卡驱动已安装,并且工作正常。
启动的的时候,udev会识别硬件,并加载相应的驱动。 有些芯片需要额外的firmware, 默认安装的linux-firmware提供了很多固件。
检查设备状态:
lspci -k
或者 lspci -v
检查设备驱动是否已经加载
例如:
05:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter Subsystem: Lenovo Device b728 Kernel driver in use: rtl8723be Kernel modules: rtl8723be
通过ip link
查看设备, 无线设备通常是wlp5s0这样的名称。
启用设备:
ip link set <设备名> up
如果设备加载正常,接口正常启用,则说明不需要安装额外的firmware. 如果显示错误信息: “SIOCSIFFLAGS: No such file or directory”, 那说明缺失firmware
查看已加载的firmware的kernel message信息
$ dmesg | grep firmware [ 11.644190] Using firmware rtlwifi/rtl8723befw.bin
install driver/firmware:
RTL Wi-Fi的git地址: https://github.com/lwfinger/rtlwifi_new.git
manage the wireless connections
管理方法 | 接口激活 | 无线连接管理 | IP地址分配 |
— | — | — | — |
手动设置 (无加密,或者WEP加密) | ip | iw | ip/dhcpd/dhclient/networkd |
手动设置 (WAP/WAP2 PSK加密) | ip | iw + wpa_supplicant | ip/dhcpd/dhclient |
自动管理 | netctl, Wicd, NetworkManger等 |
Just like other network interfaces, the wireless ones are controlled with ip from the iproute2
package
管理无线网络连接还需要安装一些软件包:
iw
只支持nl80211(netlink)标准, 不支持老的WEXT(Wireless EXTentions)标准, 如果iw没有显示网卡,可能是这个原因
wireless_tools
已经过时,但是依然广泛使用。 WEXT设备使用此工具
wpa_supplicant
提供WPA/WPA2加密支持,同时支持nl80211和WEXT
interface activation
在使用iw或者wireless_tools之前,有些网卡需要激活内核接口
$ ip link set wlp5s0 up
验证接口是否已经打开:
$ ip link show wlp5s0 3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
<BROADCAST,MULTICAST,UP,LOWER_UP>
UP表示接口已经打开
iw usage
iw只能连接开放网络或者WEP网络.
示例中的wireless device interface是wlp5s0 your_essid 是要连接的热点ssid
获取接口名
$ iw dev phy#0 Interface wlp5s0 ifindex 3 wdev 0x1 addr 12:34:56:78:9a:bc type managed channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
iw command | Description |
————————————————– | ——————————— |
iw dev wlp5s0 link | 获取连接状态 |
iw dev wlp5s0 scan | 扫描可用热点 |
iw dev wlp5s0 set type ibss | 设置操作模式为ad-hoc |
iw dev wlp5s0 connect youressid | 连接到开放网络 | | iw dev wlp5s0 connect youressid 2432 | 连接到开放网络的指定通道 |
iw dev wlp5s0 set power_save on | 启用省电模式 |
连接到WEP加密的网络
WEP的密码长度是固定的, key的格式如下:
[d:]index:data 'd:' means default (transmit) key 'index:' is a single digit (0-3) 'data' must be 5 or 13 ascii chars or 10 or 26 hex digits for example: d:2:6162636465 is the same as d:2:abcde
查看连接状态
$ iw dev wlp5s0 link Connected to 7c:7d:3d:73:e6:03 (on wlp5s0) SSID: MyESSID freq: 2437 RX: 1256767 bytes (11788 packets) TX: 4568 bytes (47 packets) signal: -8 dBm tx bitrate: 7.2 MBit/s MCS 0 short GI bss flags: short-preamble short-slot-time dtim period: 2 beacon int: 100
获取统计数据
$ iw dev wlp5s0 station dump Station 12:34:56:78:9a:bc (on wlp5s0) inactive time: 7813 ms rx bytes: 1456449 rx packets: 13661 tx bytes: 4568 tx packets: 47 tx retries: 0 tx failed: 0 signal: -10 dBm signal avg: -11 dBm tx bitrate: 7.2 MBit/s MCS 0 short GI rx bitrate: 1.0 MBit/s authorized: yes authenticated: yes preamble: long WMM/WME: yes MFP: no TDLS peer: no
NetworkManager
提供了两个工具: nmcli 命令行工具 nmtui 基于curses的ui
description | command |
– | – |
查看所有网络设备及其状态 | nmcli device |
显示附近的wifi | nmcli device wifi list |
连接wifi | nmcli device wifi connect SSID password PASSWORD |
使用网卡wlp5s0连接wifi | nmcli device wifi connect SSID password PASSWORD ifname wlp5s0 |
连接到隐藏的wifi | nmcli device wifi connect SSID password PASSWORD hidden yes |
断开一个网卡上的连接 | nmcli device disconnect eth0 |
连接一个网卡上的连接 | nmcli device connect eth0 |
查看所有连接过的网络的UUID | nmcli connection |
重新连接一个被标记为已断开的网卡 | nmcli connection up uuid UUID |
关闭wifi | nmcli radio wifi off |
显示网络连接托盘: nm-applet