查看网卡
查看网卡状态:up、down
将eth0替换实际网卡名。ip add可查看网卡名。
dmesg | grep eth0
ethtool eth0 | grep Link
cat /sys/class/net/eth0/operstate
ip link show
查看是光口还是电口
ethtool 是一个在 Linux 系统中用于查询和控制网络设备驱动程序设置的命令行工具。它可以显示和更改网络接口的设置,例如速率、双工模式、MAC 地址、环回模式等。
显示网络接口信息: ethtool
ethtool eno1
Port: Twisted Pair 端口:双绞线
Port: FIBRE 端口:光纤口
ethtool eth0 | grep Port
查看网络接口的统计信息:
ethtool -S
查看网络接口的驱动程序信息:
ethtool -i
设置网卡
开启eth0网卡
ip link set eth0 up
或:ifconfig eth0 up
关闭eth0网卡
ip link set eth0 down
或:ifconfig eth0 down
开启网卡的混合模式
ip link set eth0 promisc on
关闭网卡的混合模式
ip link set eth0 promisc off
设置网卡队列长度
ip link set eth0 txqueuelen 1200
设置网卡最大传输单元
ip link set eth0 mtu 1400
在网卡上创建新的vlan虚接口
参考: ip link命令详解
在设备eth0上创建新的vlan设备eth0.10
ip link add link eth0 name eth0.10 type vlan id 10
id VLANID:指定要使用的VLAN标识符。请注意,带前导“0”或“0x”的数字分别被解释为八进制或十六进制
删除
ip link delete dev eth0.10
dev DEVICE:指定要操作的虚拟设备
参考: ip link命令详解
通过ifcfg文件 配置网络
示例文件:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=c6688d9d-2505-6d95-8e88-99e6c3aabbcc
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.20
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=192.168.1.1
DNS2=8.8.8.8
ZONE=public
# 重启网卡
[root@localhost ~]#systcmctl restart network
# 如果使用systemctl restart netwrok报错
[root@localhost network-scripts]# systemctl status netwrok
Unit netwrok.service could not be found.
# 就使用 service network restart
[root@localhost network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
参考: https://blog.csdn.net/weixin_44863237/article/details/121899374
配置静态网络
以enp4s0网络接口进行静态网络设置为例,通过在root权限下修改ifcfg文件实现,在/etc/sysconfig/network-scripts/目录中生成名为ifcfg-enp4s0的文件中,修改参数配置,示例如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.0.10
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp4s0
UUID=08c3a30e-c5e2-4d7b-831f-26c3cdc29293
DEVICE=enp4s0
ONBOOT=yes
修改连接配置后,需要重新连接和加载配置
# nmcli con up enps0 ifname enps0
# nmcli con reload
查看连接情况
$ nmcli connection show
通过nmcli 配置网络
在CentOS / RHEL 7中网络管理命令行工具,也叫nmcli
device叫网络接口,是物理设备
nmcli device help
nmcli device
nmcli device show
connection是连接,偏重于逻辑设置
nmcli connection help
NeworkManager是管理和监控网络设置的守护进程
设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效。
显示所有包括不活动连接
nmcli con show
显示所有活动连接
nmcli con show –active
显示网络连接配置
nmcli con show “System eth0“
显示设备状态
nmcli dev status
显示网络接口属性
nmcli dev show eno16777736
eth0为对应的网卡名
创建新连接default,IP自动通过dhcp获取
(eth0为对应的网卡名,default将显示在/etc/sysconfig/network-scripts/文件夹下)nmcli con add con-name default type Ethernet ifname eth0
删除连接nmcli con del default
创建新连接static ,指定静态IP,不自动连接nmcticon add con-name static ifnameeth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254
con add – 添加新的连接
con-name – 连接名
type – 设备类型
ifname – 接口名
autoconnect no – 禁止开机自动启动
nmcli con show
可以看到直接生成配置文件,但是网卡没有绑定,所以并没有生效
我们需要将这个接口启用
启用static连接配置
nmcli con up static
启用default连接配置
nmcli con up default
例:创建以个名字为home的,类型为以太网卡,绑定网卡为eth1,开机自动启动,定义ipv4地址和网关
[root@CentOS 7 ~]# nmcli connection add con-name home type ethernet ifname
eth1 autoconnect yes ip4 10.1.252.60/24 gw4 10.1.0.254
[root@CentOS 7 ~]# nmcli connection up home
这样,home接口已经生效,可以正常使用。但同一时间只能绑定在一个接口上。平时如果工作需要,可以多设置几套配置文件,环境需要时可以进行临时的切换。
当不需要再用时可以使用:nmcli connection delete home删除
[root@CentOS 7 ~]# nmcli connection delete home
Connection 'home' (2443d6ec-f92e-4402-b15c-9eec15405852) successfully deleted.
修改连接设置
nmcli con mod“static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
修改连接配置后,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活
iproute2替代net-tools对比
Centos7/RHEL7等发行版里面已经使用iproute2替代了net-tools
net-tools访问和修改网络配置是通过procfs(/proc)和ioctl系统调用来完成的,而iproute2是通过netlink socket方式与内核通信;重要的是,iproute2发展一直很好:https://www.kernel.org/pub/linux/utils/net/iproute2/
下面是net-tools和iproute2的使用对比:
一、列出所有网络接口(包括没有激活的网卡)
1、使用net-tools:
$ ifconfig -a
2、使用iproute2:
$ ip link show
二、激活和关闭网卡
1、使用net-tools:
$ sudo ifconfig eth1 up
$ sudo ifconfig eth1 down
2、使用iproute2:
$ sudo ip link set down eth1
$ sudo ip link set up eth1
三、配置IPv4地址
1、使用net-tools:
$ sudo ifconfig eth1 10.0.0.1/24
2、使用iproute2:
$ sudo ip addr add 10.0.0.1/24 dev eth1
3、使用net-tools配置多IP:
$ sudo ifconfig eth0:1 192.168.10.10 netmask 255.255.255.0 up
$ sudo ifconfig eth0:2 192.168.10.15 netmask 255.255.255.0 up
4、使用iproute2配置多IP:
$ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1
四、查看eth0的IP地址
$sudo ip addr list dev eth0
五、移除网卡上的IPv4地址
1、使用net-tools:
$ sudo ifconfig eth1 0
2、使用iproute2:
$ sudo ip addr del 10.0.0.1/24 dev eth1
六、查看网卡上配置的IPv4地址
1、使用net-tools:
$ ifconfig eth1
2、使用iproute2:
$ ip addr show dev eth1
3、如果是网卡绑定了多IP的话,iproute2能显示所有的地址,而net-tools只能显示一个
七、配置IPv6地址
1、使用net-tools:
$ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
$ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64
2、使用iproute2:
$ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
$ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1
八、查看网卡上配置的IPv6地址
1、使用net-tools:
$ ifconfig eth1
2、使用iproute2:
$ ip -6 addr show dev eth1
九、移除网卡上的IPv6地址
1、使用net-tools:
$ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64
2、使用iproute2:
$ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1
十、更改网卡MAC地址
1、使用net-tools:
$ sudo ifconfig eth1 hw ether 08:00:27:75:2a:66
2、使用iproute2:
$ sudo ip link set dev eth1 address 08:00:27:75:2a:67
十一、查看路由表
1、使用net-tools:
$route -n
$ netstat -rn
2、使用iproute2:
$ ip route show
十二、添加修改默认路由
1、使用net-tools:
$ sudo route add default gw 192.168.1.2 eth0
$ sudo route del default gw 192.168.1.1 eth0
2、使用iproute2:
$ sudo ip route add default via 192.168.1.2 dev eth0
$ sudo ip route replace default via 192.168.1.2 dev eth0
十三、添加和删除静态路由
1、使用net-tools:
$ sudo route add default gw 192.168.1.2 eth0
$ sudo route del default gw 192.168.1.1 eth0
2、使用iproute2:
$ sudo ip route add default via 192.168.1.2 dev eth0
$ sudo ip route replace default via 192.168.1.2 dev eth0
十四、查看socket统计
1、使用net-tools:
$ netstat
$ netstat -l
2、使用iproute2:
$ ss
$ ss -l
十五、ARP表
1、使用net-tools:
$ arp -an
2、使用iproute2:
$ ip neigh
十六、添加和删除静态ARP
1、使用net-tools:
$ sudo arp -s 192.168.1.100 00:0c:29:c0:5a:ef
$ sudo arp -d 192.168.1.100
2、使用iproute2:
$ sudo ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0
$ sudo ip neigh del 192.168.1.100 dev eth0
十七、添加、删除和查看多播地址
1、使用net-tools:
$ sudo ipmaddr add 33:44:00:00:00:01 dev eth0
$ sudo ipmaddr del 33:44:00:00:00:01 dev eth0
$ ipmaddr show dev eth0
$ netstat -g
2、使用iproute2:
$ sudo ip maddr add 33:44:00:00:00:01 dev eth0
$ sudo ip maddr del 33:44:00:00:00:01 dev eth0
$ ip maddr list dev eth0