linux网络配置
网络配置命令
ifconfig
ifconfig 命令通常用于查看、配置和管理网络接口的信息,其通常用法如下:
- 查看所有网络接口信息:可以直接运行 ifconfig 命令来查看系统上所有网络接口的信息,包括接口名、IP 地址、MAC 地址等。
- 查看特定网卡信息:可以指定网卡名来查看特定网卡的详细信息。
- 配置网络接口的 IP 地址:可以使用 ifconfig 命令配置网卡的 IP 地址、子网掩码等信息。(临时修改)
ifconfig 网卡 IP地址/掩码
- 控制网卡开启或关闭:
ifconfig 网卡名 up #开启
ifconfig 网卡名 down #关闭 - 取消网卡设置
ifconfig 网卡名 0
-
添加虚拟网卡
ifconfig 网卡名:num ip地址/掩码
ip
ip
命令是一个更现代化和强大的替代工具,用于管理网络接口信息。
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT 为常用对象,值可以是以下几种:
-
link:
ip link show
: 显示所有网络接口的信息。ip link set <interface> up/down
: 启用或禁用指定的网络接口。ip link add <interface>
: 添加新的网络接口。ip link delete <interface>
: 删除指定的网络接口。
-
address:
ip address show
: 显示所有网络接口的IP地址信息。ip address add <ip_address>/<subnet_mask> dev <interface>
: 将指定的IP地址添加到网络接口。ip address delete <ip_address>/<subnet_mask> dev <interface>
: 从网络接口中删除指定的IP地址。
-
addrlabel:
ip addrlabel show
: 显示地址标签配置信息。ip addrlabel add <prefix> <label>
: 添加地址标签。ip addrlabel del <prefix>
: 删除指定前缀的地址标签。
-
route:
ip route show
: 显示系统路由表。ip route add <network> via <gateway>
: 添加静态路由。ip route delete <network> via <gateway>
: 删除静态路由。
-
rule:
ip rule show
: 显示路由规则。ip rule add <rule>
: 添加路由规则。ip rule del <rule>
: 删除路由规则。
hostname
用于查看或设置当前主机名。
临时修改:
hostname [主机名]
永久修改:
永久修改:
route
-
显示路由表:
route -n
-
添加静态路由:
route add -net <network> netmask <netmask> gw <gateway>
-
删除静态路由:
route del -net <network> netmask <netmask> gw <gateway>
-
添加默认网关:
route add default gw <gateway>
-
删除默认网关:
route del default gw <gateway>
-
清除路由表:
route flush
永久添加路由
使用route命令添加的路由会在重启后删除,想要添加永久路由,我们可以将路由写到下面的文件中。
vim /etc/sysconfig/network-scripts/route-ens33
systemctl restart network
netstat和ss
netstat和ss的选项基本一致,并且ss运行更接近内核位置,所以ss的运行速度快于netstat,以下直接介绍ss。
-t
:仅显示TCP协议相关的套接字。-u
:仅显示UDP协议相关的套接字。-w
:仅显示裸套接字(raw socket)相关的套接字。-x
:仅显示UNIX域套接字相关的套接字。-l
:仅显示处于监听状态的套接字。-a
:显示所有状态的套接字,等同于未指定任何状态的套接字。-n
:以数字格式显示,IP地址和端口号不解析为域名和协议名称。-p
:显示相关的程序及其PID。-e
:显示扩展的信息,包括进程信息。-m
:显示套接字的内存用量。-o
:显示计时器信息。-r
:解析IP地址为域名,端口号为协议名称,需要使用DNS服务。
修改网卡配置
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 NAME=ens33 //网卡名称 BOOTPROTO=static //网卡获取地址模式 none dhcp ONBOOT=yes //开机是否自启动 IPADDR=192.168.146.140 //配置你自己的IP地址子网网关还有dns服务器 NETMASK=255.255.255.0 //PREFIX=24 GATEWAY=192.168.146.2 DNS1=8.8.8.8
修改后需要重启网卡服务。网卡的其他配置如下所示。
#TYPE:接口类型;常见有的Ethernet, Bridge
#PROXY_METHOD:此配置文件应用到的设备
#BROWSER_ONLY:
#BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
#DEFROUTE:
#IPV4_FAILURE_FATAL:
#IPV6INIT:
#IPV6_AUTOCONF:
#IPV6_DEFROUTE:
#IPV6_FAILURE_FATAL:
#IPV6_ADDR_GEN_MODE:
#NAME:此配置文件应用到的设备
#UUID:设备的惟一标识
#DEVICE:设备名
#ONBOOT:在系统引导时是否激活此设备
#IPADDR:
#NETMASK:
#GATEWAY:
#DNS1:
scp
在CentOS 7中,scp
命令用于在本地系统和远程系统之间进行安全的文件传输。它使用SSH协议来加密传输数据,并提供了类似于cp
命令的使用方式。
以下是scp
命令的基本用法:
scp [选项] [源文件] [目标位置]
其中:
[选项]
:可以是一些可选参数,用于指定传输的一些选项,如-r
用于递归地复制目录。[源文件]
:是要传输的文件或目录的路径。[目标位置]
:是文件或目录的目标位置。如果是远程系统,则应该包含用户名和主机名,格式为username@hostname:/path/to/destination
。
示例:
ethtool
[root@localhost ~]#ethtool -p ens33
#让ens33 网卡快速闪烁
tcpdump
tcpdump
是一个强大的网络抓包工具,可以在命令行中使用。它能够捕获网络数据包,并将其以各种格式显示出来,用于网络故障排除、网络监控等任务。以下是tcpdump
的基本用法:
tcpdump option proto dir type 选项 协议 数据的方向 抓取的数据类型
option(选项):
- -i 指定网卡
proto(协议):
- tcp udp icmp
- ip ipv6
- arp
dir(方向):
- src
- dst
- src and dst
type(类型)
- host 主机
- net 网段
- port 端口
- port range 端口范围
示例:
请抓取源地址是10.0.0.6目的地址是10.0.0.7经过eth0网卡的icpm协议包
[root@centos8 ~]#tcpdump -i eth0 -nn icmp and src host 10.0.0.6 and dst host 10.0.0.7
修改网卡名称
要将centos7上的网卡ens33改为和centos6上相同的eth0需要以下几步:
1.复制ens33的配置文件到eth0的网卡配置文件
2.修改grub文件
vim /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0" #在上面的行加入 net.ifnames=0
3.重新生成 grub的配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
4.重启后可以看到网卡名称改变
Bonding(聚合链路)是一种网络技术,用于将多个物理网络接口(例如以太网、无线网卡)组合成一个虚拟的网络接口,以增加带宽、提高可靠性或实现负载均衡。Bonding技术允许多个网络接口并行工作,从而提高网络性能和可靠性。
聚合链路工作模式(也称为聚合链路模式或Bonding模式)指定了如何将多个物理接口组合在一起工作。以下是几种常见的聚合链路工作模式:
-
Round Robin(轮询):
mode=0
,balance-rr
。在此模式下,数据包依次从每个接口发送,实现负载均衡。这意味着传输的数据包将依次分布到各个接口上,从而利用所有可用接口的带宽。然而,Round Robin并不考虑接口的实际负载情况,可能会导致不均匀的流量分布。 -
Active-Backup(主备模式):
mode=1
,active-backup
。 在主备模式下,只有一个接口处于活动状态,而其他接口处于备用状态。如果活动接口失效,备用接口将接管数据传输,以实现冗余和故障转移。这种模式适用于对可靠性要求较高的场景,但未充分利用所有接口的带宽。 -
XOR(异或模式):
mode=2
,balance-xor
。XOR模式使用源和目标MAC地址以及IP地址的散列来决定将数据包发送到哪个接口。这种方式可以确保同一会话的数据包始终通过相同的物理接口发送,以避免乱序问题。 -
Broadcast(广播模式):
mode=3
,broadcast
。广播模式将数据包广播到所有接口,适用于某些特定的场景,如网络监控或数据包捕获。 -
802.3ad(IEEE 802.3ad聚合):
mode=4
,802.3ad
。802.3ad模式基于IEEE标准,通过链路聚合控制协议(LACP)实现动态链路聚合。它允许交换机动态地将多个物理接口聚合成一个逻辑接口,并根据负载情况动态分配流量,以提高带宽利用率和网络可靠性。
示例:
现有ens36,37,将他们绑定为ip为192.168.146.180/24的聚合网卡bond0。
新建虚拟网卡bond0,配置如下所示:
#mode=1为主备模式
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路 #fail_over_mac=1" 永远使用活着的 网卡的mac地址
修改ens36和ens37的配置文件。
重启网卡后可以看到配置成功。
cat /proc/net/bonding/bond0