UEFI启动的系统通常会挂载一个EFI系统分区(ESP)。你可以检查这个分区是否被挂载来判断系统是否是UEFI启动。
ls /sys/firmware/efi
你可以查看 /etc/fstab 文件中是否有EFI系统分区的挂载信息:
grep -i efi /etc/fstab
你还可以通过查看系统启动日志来确定启动方式,例如使用 dmesg 命令:
dmesg | grep "EFI v"
vim /etc/default/grub
在GRUB_CMDLINE_LINUX=右边引号里面最后加上 net.ifnames=0
#On a system with UEFI boot mode:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
#On a system with legacy boot mode:
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /etc/grub2.cfg
reboot
自定义网卡名
GRUB_CMDLINE_LINUX="... net.ifnames.prefix=<required prefix>"
例如
GRUB_CMDLINE_LINUX="... net.ifnames.prefix=lucy"
配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
其中 ifcfg 为固定名称 eth0 名称随便,最好和网卡名一致
#配置文件入下
DEVICE=eth0 #这个配置文件和那个网卡绑定
NAME=eth0 #用于nmcli connection 显示的时候连接的名字
BOOTPROTO=dhcp|static|none #使用静态ip还是dhcp
IPADDR=1.2.3.4 #IP地址
PREFIX=24 #子网掩码
IPADDR2=1.2.3.4 #IP地址
PREFIX2=24 #子网掩码
#NETMASK=255.255.255.0 #老式子网掩码指定方式
GATEWAY=10.0.0.2 #网关
DNS1=10.0.0.2 #DNS
DOMAIN=aliyun.com #这个可以用于ping www 这种缺省域名补全,没写用主机名称补全
直接通过命令配置,自动生成配置文件
nmcli connection add con-name test-eth1 \
ipv4.addresses 1.1.1.1/24,1.1.1.2/24 \
ipv4.gateway 1.1.1.4 \
ipv4.dns 114.114.114.114,8.8.8.8 \
type ethernet \
ifname eth1
一个网卡可以存在多个配置文件
nmcli connection modify #在原来的配置基础上增加ip地址
nmcli connection modify test-eth1 +ipv4.address 2.2.2.2/24
nmcli connection modify test-eth1 -ipv4.address 2.2.2.2/24
nmcli connection reload
nmcli connection up <name> #开启某个连接 开启之后链接是绿色的
mncli connect down <name> #禁用某个连接 关闭是白色的
nmcli connect delete <name> #删除某个链接 事实上删除了这个网卡对应的配置文件ifcfg-<name>
centos 7
systemctl restart network
centos6
service network restart
旧式命令 ifconfg 来自net-tools
ifconfig eth0 10.0.0.68 netmask 255.255.0.0 #网卡指定ip
ifconfig eth0 0.0.0.0 #清楚ip
ifconfig eth0 down #禁用网卡
ifconfig eth0 up #启动网卡
ifconfig eth0:1 172.16.0.8/24 #对一个网卡设置多个IP地址
ifconfig -s #查看统计数据
ficonfig -a #查看所有
做完配置查看有没有生效
查看DNS配置
cat /etc/resolv.conf #查看DNS配置
探测某个ip主机是否有DNS服务
yum install bind-utils
host www.baidu.com 10.0.0.1
dig www.baidu.com @114.114.114.114
查看ip ip a
查看网关 route -n
[connection]
id=ens160
uuid=5903ac99-e03f-46a8-8806-0a7a8424497e
type=ethernet
interface-name=ens160
timestamp=1670056998
[ethernet]
mac-address=00:0C:29:47:68:D0
[ipv4]
address1=192.168.100.4/24,192.168.100.1
dns=8.8.8.8;114.114.114.114;
method=manual
[ipv6]
addr-gen-mode=default
method=disabled
[proxy]
多个网卡绑定一起,相当于一块网卡
bond聚合链路模式共7种模式:0-6 Mode
mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。容错能力—只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。无负载均衡—此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。
创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路 fail_over_mac=1 在VMware配置上使用的,真实设备配置不需要
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
查看bond0状态:
/proc/net/bonding/bond0
删除bond0
ifconfig bond0 down
rmmod bonding
桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,这个网桥相当于一个交换机,被连接的这两个口相当于交换机上的两个口
使用 brctl 命令 在Linux 上实现两个网卡桥接
yum install bridge-utils
brctl show #查看网桥
brctl addbr|delbr br0 #添加/删除网桥br0
brctl addif|delif br0 eth0 #将网络接口eth0添加到网桥br0或者删除
#启用网桥
ifconfig br0 up
ip link set br0 up
#启用 STP
brctl stp br0 on
[root@rocky8-3 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
Genmask:目标网络对应的netmask
Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果
是直连网络,gateway是0.0.0.0
Metric: 开销cost,值越小,路由记录的优先级最高
Flags(标志): U(Up): 表示路由是活跃的。 G(Gateway): 表示这条路由通过一个网关。其他标志可能包括 H(Host,目的地是一个主机)、D(Dynamically,路由是动态设置的)等。
添加路由:route add
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
route add -host 10.0.0.4 dev eth0
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.3 dev eth0
route add default gw 10.0.0.4 dev eth0
删除路由:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.9
route del default gw 10.0.0.4
route del -net 10.0.0.0 netmask 255.255.255.0 gw 0.0.0.0
route del -net 10.0.0.4 netmask 255.255.255.255
如果想持久的添加路由信息
在 /etc/sysconfig/network-script/route-<网卡名>
里面添加路由信息
例如:
10.0.9.0/24 via 10.0.0.2 dev eth0
目标网段 网关 网卡接口名
然后重启对应接口的配置
nmcli connection reload; nmcli connection up eth0
如果想使用Linux作为路由器,来模拟实验,需要设置内核参数
vim /etc/sysctl.conf
net.ipv4.ip.forward=1
然后
sysctl -p
*****************
一个主机需要一个ip和子网掩码,这个子网掩码是给主机确定自己所在的网段,
而路由上的目标网络的子网掩码是为了让主机确定一个ip从那个路由发出去
一个主机如果往一个ip地址为A的机器发发数据包,搜先它会拿A和自己的子网掩码做与运算,如果跟自己在一个网段,那么走本网段路由
如果不跟自己一个网段,首先找路由表的路由网段的子网掩码与运算,确定是否是这个路由目标网段的ip如果是,走对应的网关,送出去
通过守护进程获取动态路由,安装quagga包,通过命令vtysh配置
支持多种路由协议:
RIP:Routing Information Protocol,路由信息协议
OSPF:Open Shortest Path First,开放式最短路径优先
BGP:Border Gateway Protocol,边界网关协议
vim /etc/default/grub
在GRUB_CMDLINE_LINUX=右边引号里面最后加上 net.ifnames=0
#On a system with UEFI boot mode:
grub-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
#On a system with legacy boot mode:
grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig -o /etc/grub.cfg
reboot
/etc/netplan/eth0.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.0.0.151/24
gateway4: 10.0.0.2
nameservers:
search:
- baidu.com
addresses:
- 8.8.4.4
- 10.0.0.2
修改完配置文件执行
netplan apply
查看生效
ip a
route -n
resolvectl status
旧的命令
ifconfig
route
netstat 和 ss 命令用法相同
新的命令
ip link set eth0 down
ip address add 10.0.0.188/24 dev eth0 label eth0:2 #临时生效
del 10.0.0.188/24 dev eth0 #删除地址
flush eth1 #清楚全部地址
ip address
ip route
ss
网络测试诊断工具
测试网络连通性 ping
显示正确的路由表
ip route
route
跟踪路由
yum install mtr traceroute iputils
traceroute
tracepath
mtr
确定名称服务器使用
yum install bind-utils
nslookup
nslookup www.baidu.com
nslookup www.baidu.com 114.114.114.114
host
host www.baidu.com
host www.baidu.com 114.114.114.114 #指定域名解析服务器去解析
抓包工具
yum install tcpdump
tcpdump
#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
tcpdump tcp port 22 and -i eth0 host 10.0.0.100
# and or 条件组合 src 来源 dst 目的 -w 保存为文件 注意条件组合顺序
tcpdump icmp -i eth0 -nn and \( src host 10.0.0.100 or dst host 10.0.0.3 \) -w /tmp/1.cap
否定 not
tcpdump -nn -i eth1 icmp and not host 10.0.0.1
-nn 这个选项告诉 tcpdump 不要将网络地址(IP)和端口号解析成名字。-n 选项避免了对 IP 地址的解析,而第二个 -n 避免了端口号的解析。这样可以加快数据捕捉速度并简化输出,因为不进行额外的 DNS 查询。
端口扫描:
nmap
扫描单个主机的所有端口
nmap -p- 192.168.1.1
扫描单个主机的常见端口:
nmap 192.168.1.1
扫描指定端口范围:
nmap -p 20-80 192.168.0.1
检测服务版本和操作系统:
nmap -sV -O 192.168.1.1
扫描单个主机的常见udp端口
nmap -sU 10.0.0.3