要想在 Linux 命令下对网络进行相关设置,总的来说不外乎两类方法:其一乃写配置文件,如 /etc/network/interfaces
进行网络接口配置,其二直接在终端调用 Linux 网络管理命令,在终端间接同文件打交道。
首先为大家所熟知的,ifconfig
命令和 iwconfig
命令自不必多言。它们作为基础命令预装在绝大部分的 Linux 发行版中。相比之下,iwconfig
更偏向于 “网路元素” (如 essid、wep key 等),而 ifconfig
命令则更偏向于 “网卡”,你可以使用该命令对针对网卡的大部分属性进行设置。顺便一提,ifconfig,可以拆为 “interface configurations”,而 iwconfig 则可以被拆成 “wireless interface configurations”。方便你的理解。
$ ifconfig eth1 10.0.0.1 netmask 255.0.0.0 hw ether 10:10:10:10:10:10
这里我还要介绍两个工具,分别名为 nmcli
和 nmtui
,它们被预装在 RHEL(Red Hat Enterprise Linux)和 CentOS7+ 发行版中。在尝试后,发现基于 Debian 的 Kali Linux 也同样可以直接调用该命令。看名字,“nmcli” 即 “network manager command line interface”(网络管理器命令行界面),而 “nmtui” 即 “network manager text user interface”(网络管理器用户文本界面)。二者不过是从不同角度实现对网络管理的演绎罢了。简单起见,下面我只讲 nmcli
这款基于命令行的 Linux 网路管理器。你可以在这里得到一些帮助。事实上,相对于经典的 ifconfig
命令,nmcli
命令更为强大,从某种意义来说。
$ nmcli [ OPTIONS ] OBJECT { COMMAND | help }
nmcli 的命令参数有很多,下面我挑几条代表性的来讲。
0x01:激活网络
nmcli networking on
0x02:检查 Network Manager 的状态
nmcli general status
0x03:检查设备和连接之间的连接状态
nmcli device status
0x04:连接设备
nmcli device connect DEVICENAME
0x05:更改主机名
nmcli general hostname HOSTNAME
0x06:确认连接
nmcli connection show
0x07:激活连接
nmcli connection up CONNECTIONNAME
0x08:更改连接的 IP 地址
nmcli connection modify CONNECTIONNAME ipv4.addresses IPADDRESS
0x09:删除设备的连接
nmcli connection delete CONNECTIONNAME
如此一来,我们的网络备用库又多了一款工具。下次遇到问题也不会至于干着急。