使用ip addr / ip a
查看设备,包含没有配置的网络设备
网络设备默认的配置路径:/etc/sysconfig/network-scripts/
配置文件:ifcfg-*
其中参数值不分大小写,可以不用引导。
使用编辑器直接修改配置文件,修改前做好备份;配置修改后不会立即生效,需要重启 NetworkManger 服务进程或者重启系统。
# 备份配置文件:
cp ifcfg-eth1 ifcfg-eth1.bak
# 重启 NetworkManager 服务进程:
systemctl reload NetworkManager
一份可用的网卡配置文件并不需要列出所有的配置选项,有时过多配置项反而会增加网络排障难度,最小配置如下:
TYPE=Ethernet
BOOTPROTO=static
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.100
NETMASK=255.255.255.0
使用 ip 命令显示设备和地址信息:
使用 ss 命令查看套接字统计信息,加上参数可过滤不同类型的套接字,如显示所有 TCP 套接字信息:
NetworkManager 是系统中动态控制及配置网络的守护进程,用于保持当前网络设备和连接处于工作状态。通过命令行工具 nmcli
可以控制 NetworkManager,nmcli 全面,强大且复杂。
关键概念:
con 代表连接,–active 选项可以过滤出活动的连接
显示单个连接的详细信息:ncmcli con show “连接名”
,与 ip link 命令相似
显示设备状态,使用:ncmcli dev status
显示设备信息,使用:ncmcli dev show [设备名]
步骤:
例如:
nmcli con add con-name “test” type Ethernet ifname enp3s0
nmcli con show
nmcli con up “test”
nmcli con show
nmcli con add 中还有很多可选类型,如网桥、绑定、VPN、VxLAN 等,要查看所有选项,使用 nmcli con add help
使用命令 nmcli con mod
修改连接,传入的参数为键值对。键为属性名称,可通过 nmcli con show [连接名]
查询,如:
配置参数可以增加或删除值,在参数前使用 +/- 符号,如:
添加辅助 DNS 服务器
nmcli con mod “test” +ipv4.dns 114.114.114.114
修改完成后需要 up 活动中的连接,使之生效:
nmcli con up “test”
nmcli 还有交互式编辑模式和图形界面。
要让不同子网的两台主机能够相互通讯,就需要有一种能够描述如何从一台主机到另一台主机的机制,这一机制称为:路由选择(Routing),路由选择通过路由项进行描述。
路由项是一对预先定义的地址,包括:目的地(Destination)和网关(Gateway)。路由项的含义是通过网关能够完成与目的地的通讯;路由表是多个路由项的集合。
许多Linux中,都使用 route 查看、配置、管理本机路由。除了 route 命令,ip 和 nmcli 命令也可以用来管理系统路由。这些命令作用于系统中的路由表,系统运行时,路由表加载到内存中,由系统内核进行维护。
使用route -n
参数显示路由时,Destination字段显示的是IP。采用route命令查看路由时,共有八个字段,字段意义说明如下:
新增(暂时) 一条到网段或主机的路由,如下:
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
route add -net 192.168.101.0 netmask 255.255.255.0 dev enp3s0
,代表新增到192.168.101.0/24网段路由,经由enp3s0发送出去。route add -host 192.168.101.100 dev enp3s0
,代表新增到192.168.101.100主机路由,经由enp3s0发送出去。例如:
[root@localhost~]# route add -net 192.168.101.0 netmask 255.255.255.0 dev enp4s0
[root@localhost~]# route add -host 192.168.100.10 dev enp4s0
[root@localhost~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 enp4s0
192.168.100.10 0.0.0.0 255.255.255.255 UH 0 0 0 enp4s0
192.168.101.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
192.168.110.0 0.0.0.0 255.255.255.0 U 100 0 0 enp4s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
使用route del
命令删除到网段或者主机的路由。语法:
route del [-net|-host] [netmask Nm] [gw Gw] [[dev] If]
route del -net 192.168.101.0 netmask 255.255.255.0 dev enp3s0
,代表删除到192.168.101.0/24网段路由。删除网段路由时,网段和掩码这两个参数一定需要携带,dev 参数可以不携带route del -host 192.168.101.100 dev enp3s0
,代表删除到192.168.101.100主机路由。后面的dev参数可以不带使用nmcli命令为网络连接配置静态路由,如下:
# nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
使用编辑器配置静态路由,使用交互式命令如下:
# nmcli con edit type ethernet con-name enp3s0
===| nmcli interactive connection editor |===
Adding a new '802-3-ethernet' connection
Type 'help' or '?' for available commands.
Type 'describe [.]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> set ipv4.routes 192.168.122.0/24 10.10.10.1
nmcli>
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? [yes] yes
Connection 'enp3s0' (1464ddb4-102a-4e79-874a-0a42e15cc3c0) successfully saved.
nmcli> quit
主机名是一个局域网中唯一标识一台机器的名称。这台机器不一定是一台物理机器,也可以是一台虚拟机。主机名信息存放在文件 /etc/hostname
中。
hostname new-name
。hostnamectl set-hostname new-name
。设置完成后并不会立即生效,重新登陆后才能在命令提示符中看到,或者 source .bashrc
。使用 hostname 命令查看当前系统的主机名。
局域网中存在着一些主机,我们可以通过 IP 地址去访问它们。随着局域网中主机数量增加,IP 地址较难记忆,我们希望通过主机名直接访问其他主机。这时我们可以通过一张记录着主机名和 IP 地址的表找到这些主机,这张表就是 hosts。
hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的 IP 地址,一旦找到,系统就会立即打开对应网页。如果没有找到,则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
查看 hosts 文件:cat /etc/hosts
可以用编辑器修改 hosts 文件内容,格式:
ip<TAB>domain.com
192.168.10.20 www.example.com
#若想去掉某条记录,加#注释即可
#192.168.10.20 www.example.com
随着网络中主机数量的增加,单个 hosts 文件难以承载众多的映射关系。当在 hosts 中找不到域名对应的 IP 时,主机会将域名提交给域名解析服务器(DNS),然后 DNS 返回 IP 给主机,这个过程称为:域名解析。
DNS 就像是一个公共的 hosts 文件/分布式数据库。
使用 nslookup 命令查询 DNS 中的记录,并且可以查看域名解析是否正常,帮助诊断网络问题。
nslookup 的命令格式如下:
nslookup domain [dns-server]
其中 domain 是要查询的域名,
[dns-server] 是域名解析服务器,非必选参数,常见的如:8.8.8.8,114.114.114.114
nslookup 未安装,采用如下命令进行安装:
yum install -y bind-utils
DNS中除了将域名解析到一个IP地址之外,还支持其他类型的解析记录
解析记录详解:https://itbilu.com/other/relate/EyxzdVl3.html
直接输入nslookup可进入交互式查询界面。