查看网络接口信息
ifconfig:查看所有网络接口信息
语法:
ifconfig [网络接口名称]:查看网络接口信息
通常查看ens33接口
[ens33]:
-
en:Ether Net,表示网卡类型为以太网
-
s:表示热插拔卡槽上的设备(hot-plug Slot)
-
33:表示插槽编号
centos6的默认网卡是eth0(eth0是自定义名称)
centos7的默认网卡是ens33(ens33代表以太网第33号接口)
[root@localhost ~]#ifconfig ens33
ens33:flags=4163<up,BROADCAST,RUNNING,MULTICAST> mut 1500
# 接口已启用,支持广播,正在运行,支持组播 最大传输单元1500字节
inet 192.168.190.129 netmask 255.255.255.0 broadcast 192.168.190.255
# ip地址 子网掩码 广播地址
inet6 fe80::6e7:f7a9:1cd6:166e prefixlen 64 scopeid 0x2<link>
# IPV6地址 子网长度 作用域,link:仅该接口有效
ether 00:0c:29:38:ef:61 txqueuelen 1000 (Ethernet)
# mac地址 传输队列长度 接口类型:以太网
RX packets 2943 bytes 234118 (228.6 KiB)
#接收 报文个数 字节数总和
RX errors 0 dropped 0 overruns 0 frame 0
#接收 错误 丢弃 溢出 冲突帧数
TX packets 1133 bytes 135986 (132.7 KiB)
#发送 报文个数 字节数总和
TX errors 0 dropped 0 overruns 0 carrier 0 collisions
#发送 错误 丢弃 溢出 载荷数 冲突
临时配置网址
-
ifconfig 网卡名 ip地址及端口号:临时设置IP地址
[root@localhost ~]#ifconfig ens33 192.168.190.66/24
[root@localhost ~]#ifconfig ens33
ens33:flags=4163<up,BROADCAST,RUNNING,MULTICAST> mut 1500
inet 192.168.190.66 netmask 255.255.255.0 broadcast 192.168.190.255
#IP地址修改为192.168.190.66
#临时修改,重启后失效
-
ifconfig 网卡名:数字 ip地址/子网掩码:设置虚拟网卡,临时测试使用
-
ifconfig 网卡名 down:关闭网卡(等同于ifdown ens33)
-
ifconfig -a:查看所有网卡
-
ifconfig -s:查看网络通讯情况
网络接口配置文件:
-
/etc/sysconfig/network-scripts/目录下
ifcfg-ens33
#第一块网卡配置文件[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.190.2
NETMASK=255.255.255.0
GATEWAY=192.168.190.129
DNS1=192.168.180.10
DNS2=192.168.170.20[root@localhost ~]#systemctl restart network
#重启网络服务
ip:查看设备ip地址
常用命令:ip a
临时修改网卡名称:
ip link set ens33 down
#首先将原网卡ens33关掉
ip link set ens33 name net1
#修改网卡的名称为net1
ip link set net1 up
#最后重新启动网卡
ip link set ens33 down
#首先将原网卡ens33关掉
ip link set ens33 name net1
#修改网卡的名称为net1
ip link set net1 up
#最后重新启动网卡
[root@test1 ~]#vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's,release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBUMENU=true
GRUB_TERMIANL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/swap rhgb quit net.ifnames=0"
#在上方行加入 net.ifnames=0
GRUB_DISABLE_RECOVERY="true"[root@localhost ~]#grub2-mkconfig -o /boot/grub2/grub.cfg
#统一网卡名称[root@localhost ~]#reboot
[root@localhost ~]#ifconfig
[root@localhost ~]#cd /etc/sysconfig/network-scripts/
[root@localhost ~]#ls
[root@localhost ~]#vim /ifcfg-ens33
1 TPE=Ethernet
2 PROXY_METHOD=none
3 BROWSER_ONLY=no
4 BOOTPROTO=dhcp
5 DEFROUTE=yes
6 IPV4_FAILURE_FATAL=no
7 IPV6INIT=yes
8 IPV6_AUTOCONF=yes
9 IPV6_DEFROUTE=yes
10 IPV6_FAILURE_FATAL=no
11 IPV6_ADDR_GEN_MODE=stable-privacy
12 NAME=ens33
#删除name行,或改为net1
13 UUID=f432e08c-147d-41de-8c75-17d26b7737ad
14 DEVICE=net1
#将device改为net1
15 ONBOOT=no[root@localhost ~]#systemctl restart network
[root@localhost ~]#ifconfig
hostname 修改主机名
临时修改主机名:
[root@localhost ~]#hostname wang
[root@wang ~]#
#临时修改,重启后还原
[root@wang ~]#reboot
[root@localhost ~]#
永久修改主机名:
CentOS 7
方法一:
[root@localhost ~]#hostnamectl set-hostname wang
#重启后生效
[root@localhost ~]#reboot
[root@wang ~]#
方法二:
[root@localhost ~]#vim /etc/hostname
wang
#将原来的名称localhost改为wang
#只对第一行的名称生效,下面写其他内容无效[root@localhost ~]#reboot
[root@wang ~]#
CentOS 6
[root@localhost ~]#vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
#将原来的hostname修改
#保存并重启
ethtool 显示网卡的详细信息
-
ethtool -i ens33:查看网卡详细信息
-
ethtool -p ens33:让ens33网卡端口快速闪烁
route 查看路由表
-
route -n:查看默认路由条目
-
添加路由:route add -net IP地址/子网掩码 gw 下一跳地址
[root@localhost ~]#route add -net 192.168.100.0/24 gw 192.168.190.129
# 添加的网段及子网掩码 连接的下一跳地址
[root@localhost ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.190.2 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 192.168.190.129 255.255.255.0 UG 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.190.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
#可以看到添加了一个新的网段192.168.100.0
-
删除路由:route del -net 网段/子网掩码
[root@localhost ~]#route del -net 192.168.100.0/24
# 要删除的网段及子网掩码
[root@localhost ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.190.2 0.0.0.0 UG 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.190.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
#此时网段192.168.100.0已删除
-
删除默认路由:
[root@localhost ~]#route del default
-
重新添加路由:
[root@localhost ~]#route add default gw 192.168.190.129
内核调优:开启路由转发
-
Linux系统本身是没有转发功能的,只有路由发送数据
[root@localhost network-scripts]#tcpdump -i ens33 -nn icmp
临时打开:
[root@localhost network-scripts]#echo 1 > /proc/sys/net/ipv4/ip_sforward
或
[root@localhost network-scripts]#sysctl -w net.ipv4.ip_forward=1永久打开:
[root@localhost ~]#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#将配置写入文件
[root@localhost ~]#sysctl -p
#读取修改后的配置
netstat 查看网络连接情况
功能与ss相似
语法:
netstat [选项]
[选项]:
-
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-
-n:以数字的形式显示相关的主机地址、端口等信息
-
-r:显示路由表信息
-
-l:显示处于监听(Listening)状态的网络连接及端口信息
-
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
[root@test ~]#systemctl start httpd
[root@test ~]#netstat -ntap |grep 80
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6809/sshd
tcp 0 0 192.168.190.130:42016 60.191.80.11:80 TIME_WAIT -
tcp 0 0 192.168.190.130:42004 60.191.80.11:80 TIME_WAIT -
tcp 0 0 192.168.190.130:42020 60.191.80.11:80 TIME_WAIT -
tcp 0 0 192.168.190.130:51610 202.141.160.110:80 TIME_WAIT -
tcp6 0 0 :::80 :::* LISTEN 15617/httpd
tcp6 0 0 :::22 :::* LISTEN 6809/sshd
[root@test ~]#netstat -ntap |grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6809/sshd
tcp 0 36 192.168.190.130:22 192.168.190.1:10422 ESTABLISHED 12298/sshd: root@pt
tcp6 0 0 :::22 :::* LISTEN 6809/sshd
ss(socket statistics)内核搜索
-
查看网络连接状况,但主要用于获取socket(内核态)统计信息,比用户态更加直接
-
能够显示更多更详细的有关TCP和连接状态的信息,比netstat更加快速、高效
-
利用TCP协议栈中的tcp_diag,他是一个用于分析统计的模块,可以获得内核中的第一手信息
语法:
ss [选项]
[选项]:
-
-t:tcp协议相关,只显示tcp协议
-
-u:udp协议相关,只显示udp协议
-
-w:裸套接字相关
-
-x:unix sock相关
-
-l:listen状态的连接
-
-a:所有
-
-n:数字格式
-
-p:相关的程序及PID
-
-e:扩展的信息
-
-m:内存用量
-
-o:计时器信息
-
-r:--resolve 把 IP 解释为域名,把端口号解释为协议名称。 dns 服务
可以与time命令比较:time ss -atn
常用命令:
-
ss -natp
-
ss -naup
ping 测试网络连接性
常用命令:
-
ping -c:发送多少个包
-
ping -w:表示等待10秒
traceroute 路由追踪
-
traceroute IP地址
nslookup 域名解析
-
nslookup 域名
-
dig:显示更多详细信息
CDN:缓存服务器,内容分发网络(静态资源)
DNS:
配置文件:
/etc/resolv.conf[root@localhost ~]#vim /etc/resolv.conf
search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1
#CentOS 7需要再NetworkManager.conf文件main段内设置dns=none,并重启NetworkManager服务,或者使用CentOS 7新添加nmcil命令进行设置
补充:nslookup、dns、cdn等都与电商平台有关
重要文件路径:(服务器开启时优先检索以下文件)
-
/etc/hostname:主机名与IP地址的映射记录
-
/etc/hosts:域名解析文件,优先级最高
-
/etc/resolv.conf:域名解析服务器地址
本章重要命令:
-
route -n:查看网关
-
ifconfig:查看IP地址
-
nslookup:解析域名(Linux和Windows通用命令)
修改网卡配置
DEVICE=
BOOTPROTO=
ONBOOT=
IPADDR=
NETMAK(PREFIX)=
GATEWAY=
DNS1=
DNS2=
tcpdump 抓包、网络排障工具
默认抓第一块网卡的信息
语法:
tcpdump [选项] [协议] [数据方向] [抓取类型]
[选项]:
-
-i:指定抓取的网卡
-
-n或v:显示详细信息,n或v越多越详细
-
-t:每行输出不显示时间
-
-tt:输出一个时间戳
-
-ttt:每行间的时间间隔
-
-tttt:详细信息
-
-c:指定抓取包的个数并退出
[协议]:
-
tcp、udp、icmp
-
ip、ipv6
-
arp
[数据方向]:
-
src:源
-
dst:目的
-
src and dst
[抓取类型]:
-
host:主机
-
net:网段
-
port:端口
-
port range:端口范围
例题:
#请抓取源地址是10.0.0.6,目的地址是10.0.07,经过eth0网卡的icmp协议包
[root@localhost ~]#tcpump -i eth0 and src host 10.0.0.6 and dst host 10.0.0.7
bond 多网卡绑定技术
作用:
-
高可用:同一设备可以使用多网卡
-
负载均衡:将多块网卡虚拟合成一个网卡
-
可实现系统调优
网卡配置:
#在VMware虚拟机上创建一个新的网卡
[root@localhost ~]#ifconfig
#查看本机的网卡信息[root@localhost ~]#cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]#ls
ifcfg-ens33 ifdown-eth ifdown-isdn ifdown-sit ifup ifup-ib ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifcfg-lo ifdown-ib ifdown-post ifdown-Team ifup-aliases ifup-ippp ifup-plusb ifup-sit ifup-wireless
ifdown ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifdown-bnep ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-isdn ifup-ppp ifup-TeamPort network-functions
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-bond0
#新建ifcfg-bond0文件,并将ifcfg-ens33的内容复制进新文件
[root@localhost network-scripts]#vim ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路[root@localhost network-scripts]#vim ifcfg-ens33
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes[root@localhost network-scripts]#vim ifcfg-ens36
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes[root@localhost network-scripts]#systemctl restart network
#重启网络服务
网卡配置实验:
-
新建网卡
-
查看新的网卡名
-
进入网卡目录
-
配置bond0
-
配置ens33
-
配置ens36(新网卡)
-
重启网络服务
添加bonding接口:
#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.91.123/24
#添加从属接口
nmcli con add type bond-slave ifname ens33 master bond0
nmcli con add type bond-slave ifname ens36 master bond0
#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
#要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-ens33
nmcli con up bond-slave-ens36
#启动绑定
nmcli con up mybond0