theme: z-blue highlight: gruvbox-light
1、linux网络设置
网络是运维的基础。
1.1 网络设置包括四部分:
- 主机名
- IP/netmask #想保持网络通讯,必须要ip地址和子网掩码。
- 路由:默认网关 #不同网段之间的设备进行通讯,需要通过网关。
- DNS服务器 #可以有多个DNS,与外网有关,设置了DNS,设备可以上外网。
1.2 CentOS网卡的配置文件位置:
vim /etc/sysconfig/network-scripts/ifcfg- ,后面的ens33 是网卡名字,网卡名字不是固定的。
ethtool -p命令,可以让网卡快速闪烁
1.3 如何将网卡名字从ens33改成eth0?
mv ifcfg-ens33 ifcfg-eth0
vim ifcfg-eth0
最后再:重启网络 systemctl restart network
2、网络配置命令
2.1 ifconfig
ifconfig命令 来源于net-tools(网络工具)包。
ifconfig命令,可以查看网卡,但是默认只能查看已开启的网卡
ifconfig -a 与ip -a 都可以查看网卡信息。
网卡信息拆分:
[root@localhost ~]# ifconfig #查看所有已开启网卡的信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ens33: 网卡名称
up : 网卡已开启
BROADCAST: 广播
running: 正在运行
BROADCAST: 组播
mtu 1500: 网络传输时的最大传输单元,一般最大为1500字节左右。
inet 192.168.125.100 netmask 255.255.255.0 broadcast 192.168.125.255
inet: ip地址
netmask: 子网掩码
broadcast: 广播地址
ether 00:0c:29:95:55:89 txqueuelen 1000 (Ethernet)
txqueuelen: 传输队列长度
RX packets 163365 bytes 230325757 (219.6 MiB)
报文个数、总字节
RX errors 0 dropped 0 overruns 0 frame 0
errors: 错误个数
dropped: 丢包个数
overruns: 溢出个数
overruns: 冲突帧数
命令
功能描述
ifconfig
查看所有开启的网卡
ifconfig 网卡名称
查看单独的网卡
ifconfig down
关闭网卡
ifconfig up
开启网卡
ifconfig -a
all 显示所有网卡,包括未开启的网卡
ifconfig 网卡名称 ip地址/子网
临时设置地址
ifconfig 网卡名称:0 ip地址/子网
虚拟网卡,设置临时网卡,主要用于测试使用。
ifconfig 网卡名称 0
取消网卡设置,0就代表没有
以上命令都是临时设置, 主要作用是查看网卡信息,临时修改网卡配置。
// 命令设置分为:
- 临时设置
- 永久设置
2.2 ip
ip命令非常有用,但是选项非常多,并且比较复杂。
- ip link 代表数据链路层
- 临时修改网卡名称:
ip link set ens33 down #先关闭
ip link set ens33 name ky36 #再改名
ip link set ky36 up #开启改名后的网卡
-
永久修改网卡名称:
grub2 配置文件位置:/etc/default/grub
[root@localhost ~]# vim /etc/default/grub #进入配置文件
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0" #在最后面添加"net.ifnames=0"的配置信息
GRUB_DISABLE_RECOVERY="true"
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成配置文件
-
ip addr 代表网络层
-
ip a 可以查看网卡
2.3 route 路由
默认路由很重要,里面包含了网关,所以尽量不要动默认路由。
命令 功能描述 route -n 查看路由、网关,显示路由信息 -n是数字形式显示。 route del default 删除默认路由 route add default gw + ip地址 添加默认路由,加完需要重启网络,才会生效 route add -net + 网段 gw + 网关 添加静态路由,示例:route add -net 192.168.125.0/24 gw 192.168.125.100 route del -net + 网段 删除路由,示例:route del -net 192.168.125.0/24// -net是静态路由,default是默认路由。
永久添加路由:
via 网关
#第一种方法:
[root@localhost ~]#vim /etc/sysconfig/network-scripts/route-ens33
10.0.0.0/24 via 192.168.91.2
[root@localhost ~]#systemctl restart network
#第二种方法:
[root@localhost ~]#vim /etc/sysconfig/static-routes
any net 172.16.0.0/16 gw 172.16.1.2
[root@localhost ~]#systemctl restart network
2.4 hostname 主机名
修改 hostname 后,用su 刷新 或者exit退出登录 或者重启。
临时修改主机名:
[root@localhost ~]# hostname #查看主机名
localhost.localdomain
[root@localhost ~]# hostname wxj #修改主机名,为临时修改。
[root@localhost ~]# su #切换
[root@wxj ~]# #可以看到主机名发生了变化
[root@wxj ~]# exit #登出
exit
[root@localhost ~]# #又变回了之前的主机名,所以设置是一次性的。
命令
功能描述
hostname
查看主机名
hostname 主机名
临时修改主机名
vim /etc/hostname
将主机名添加到该文件中,但是默认只有第一行生效
hostnamectl set-hostname + 主机名
永久修改主机名
永久修改主机名(两种方法):
-
修改配置文件:vim /etc/hostname
[root@localhost ~]# vim /etc/hostname #进入修改主机名的配置文件 abc #第一行 localhost.localdomain #第二行 #将主机名添加到该文件中,但是只有第一行生效。 [root@localhost ~]# reboot [root@abc ~]# #主机名改为第一行的abc
-
使用命令修改:
hostnamectl set-hostname + 新主机名
[root@abc ~]# hostnamectl set-hostname wxj #修改主机名
[root@abc ~]# cat /etc/hostname #查看新主机名
wxj
2.5 ss和netstat
查看本机网络链接状态 和本机端口状态。
1、ss(socket statistics)
选项 含义 -t tcp协议相关 ,只显示tcp -u udp协议相关,只显示udp -w 套接字相关 -x unix sock相关 -l listen状态的连接 -a 所有 -n 数字格式 -p 相关的程序及Pid -e 扩展的信息 -m 内存用量 -o 计时器信息 -r - -resolve 把ip解释为域名,把端口号解释为协议名称。2、netstat
选项 含义 -a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) -n 以数字的形式显示相关的主机地址、端口等信息 -r 显示路由表信息 -l 显示处于监听(Listening)状态的网络连接及端口信息 -t 查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息 -u 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息 -p 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)ss和netstat组合选项:
ss和netstat的选项, 一般采用组合方式,最常见的组合方式为:
-
-natp:t是tcp协议
-
-naup:u是udp协议
ss -natp |grep ”:80” #查看tcp协议下的80端口。
ss和netstat的区别:
-
ss:内核态、速度快
-
netstat:用户态、速度慢
推荐使用ss
2.6 ping
测试网络连通性。
选项 含义 -w 超时时间 -c count ,指定发送报文的次数 -i 指定收发信息的间隔时间 -s 设置数据包的大小 -n 只输出数值 -p 设置填满数据包的范本样式 -q 不显示指令执行过程 -R 记录路由过程 -t 设置存活数值TTL的大小 -v 详细显示指令的执行过程2.7 traceroute
路由追踪。
通式:
traceroute + ip地址
2.8 nslookup 域名解析
示例:
[root@abc ~]# nslookup www.baidu.com //将域名解析为IP地址
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 36.155.132.76
Name: www.a.shifen.com
Address: 36.155.132.3
小拓展:dig(需要安装)
可以显示出更多详细信息。
2.9 scp 远程拷贝
[root@kgc opt]#scp /opt/passwd [email protected]:/opt/passwd
命令字 本地文件地址 对方用户名@地址冒号对面地址
[root@kgc opt]#scp [email protected]:/opt/passwd /opt/
命令字 对方用户名@地址冒号对面地址 本地地址
2.10 ethtool
查看网卡信息
选项 含义 -p 可以让网卡快速闪烁 -i 显示网卡的详细信息ethtool -i ens33
2.11 永久修改网络相关配置文件
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens36
B00TPROT0=static
#地址获取方式,分为静态和动态,静态又分为static 、none ;动态是 dhcp
NAME=ens36
#描述,等号后面的网卡名,前后设置要保持一致。
DEVICE=ens36
#设备名,同样保持一致。
0NB00T=yes
#是否开启
IPADDR=192.168.125.105
#ip地址
NETMASK=255.255.255.0
#子网掩码,另一种写法:PREFIX=24
GATEWAY=12.0.0.1
#网关
DNS1=8.8.8.8
#DNS服务器地址
实验一:双网卡 永久配置
第一步:添加网卡
第二步:查看网卡信息
第三步:编辑配置文件
- 设置ens33配置
[root@abc ~]# cd /etc/sysconfig/network-scripts/
[root@abc network-scripts]# vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.125.101 #设置一个未被使用的ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.125.2
DNS1=8.8.8.8
DNS2=114.114.114.114
- 设置ens36配置
[root@abc ~]# cd /etc/sysconfig/network-scripts/
[root@abc network-scripts]# cp ifcfg-ens33 ifcfg-ens36 #复制ens33,并命名为ens36
[root@abc network-scripts]# vim ifcfg-ens36
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.125.101 #设置一个未被使用的ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.125.2
DNS1=8.8.8.8
DNS2=114.114.114.114
第四步:重启网络 并查看
[root@abc network-scripts]# systemctl restart network
#重启网络
[root@abc network-scripts]# ifconfig ens36 #查看ens36网卡信息
2.12 tcpdump(重点!!!)
抓包工具
通式:
tcpdump option proto dir type
命令 选项 协议 数据的方向 抓取的数据类型
2.12.1 option选项
选项 含义 -D 显示所有可用的列表 -i interface 指定网卡2.12.2 proto 协议
- tcp、udp、icmp
- ipv4 、ipv6
- arp协议
2.12.3 dir 方向
- src 源地址
- dst 目的地址
- src and dst:在源地址和目的地址的区间内。
2.12.4 type 类型
- host 主机
- net 网段
- port 端口
- port range 端口范围
[root@localhost data]#tcpdump -i ens33
输出格式
11:53:55.288476 IP 192.168.91.1.47496 > localhost.localdomain.ssh: Flags [P.], seq 261:313, ack 1688848, win 4106, length 52
#输出格式拆解:
第一列:时分毫秒 11:53:55.288476
第二例:网络协议ip
第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向
第四列:主机名协议 主机名:localhost.localdomain 协议:ssh
第五列: seq号 ack号 win窗口长度 tcp的标志位 #滑动窗口代表AB双方可以协商,比如协商发送数据包的大小
2.12.5 过滤规则
1、基于ip地址/网段过滤
[root@localhost data]#tcpdump -i ens33 host 192.168.91.101
#只关心 和 192.168.91.101 有关的流量
[root@localhost ~]#tcpdump -i ens33 dst 192.168.91.101
#抓取主机ens33中,目的地址为192.168.91.101 的流量
[root@localhost ~]#tcpdump -i ens33 src 192.168.91.101
#抓取主机ens33中,源地址为192.168.91.101 的流量
2、基于端口过滤
port端口号
[root@localhost ~]#tcpdump -i ens33 port 80 #抓取端口号为80的流量
[root@localhost ~]#tcpdump -i ens33 port 80 -n #抓取端口号为80的流量,并显示端口号。
[root@localhost ~]#tcpdump -i ens33 src port 80 or port 22
#抓取主机ens33中,源 为80或者22的端口号
[root@localhost ~]#tcpdump -i ens33 dst port 80 or port 22
#抓取主机ens33中,目的 为80或者22的端口号
3、基于协议
[root@localhost ~]#tcpdump -i ens33 icmp
#抓取主机ens33中的icmp协议包
[root@localhost ~]#tcpdump -i ens33 tcp
#抓取主机ens33中的tcp协议包
4、指定输出位置(类似标准输出重定向)
tcpdump -i ens33 icmp -w /data/test.cap
#把抓取的数据存放到/data/test.cap文件,可以在抓包软件中进行分析。
示例:
[root@abc ~]# tcpdump -i ens36 icmp and src 10.0.0.6 and dst 10.0.0.7 #多个选项之间必须要加and
#抓取经过ens36网卡的icmp协议包中,地址为10.0.0.6到10.0.0.7之间的流量
2.13 bond 多网卡绑定
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。
bond功能强大,共有七种模式,分别是0-6。其中常用的是0 1 3 6
-
0是轮询模式,流量平分;
-
1是主-备份模式
实验二:bond实验
第一步:添加网卡
将ens33和ens36 两个网卡,绑定到bond0上。
第二步:编辑配置文件
- 设置bond0
[root@abc ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0 #描述
TYPE=bond #类型是bond
DEVICE=bond0 #网卡名称bond0
BOOTPROTO=none #静态
IPADDR=192.168.125.102 #ip地址
PREFIX=8 #子网掩码,等于netmask
GATEWAY=192.168.125.2
DNS1=8.8.8.8
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1" #每100毫秒检测一次主设备是否活着,fail_over_mac=1是永远使用活着网卡的mac地址。
- 设置ens33
[root@abc ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@abc network-scripts]# vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
MASTER=bond0
SLAVE=yes
ONBOOT=yes
- 设置ens36
[root@abc network-scripts]# cp /ifcfg-ens33 /ifcfg-ens36
#复制33,改名为36
[root@abc network-scripts]# vim ifcfg-ens36 #修改36里的信息
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
MASTER=bond0
SLAVE=yes
ONBOOT=yes
第三步:重启网络
systemctl restart network
查看bond0状态:
cat /proc/net/bonding/bond0
删除bond0:
ifconfig bond0 down
rmmod bonding