将Linux主机接入到网络,需要配置网络相关设置一般包括如下内容:
主机名
iP/netmask (ip地址,网关)
路由:默认网关
网络连接状态
DNS服务器 (主DNS服务器 次DNS服务器 第三个DNS服务器)
一、查看linux基础的网络设置
网关 | route -n |
IP地址 | ifconfig 或 ip a |
DNS服务器 | cat /etc/resolv.conf |
主机名 | hostname |
路由 | route -n |
网络连接状态 | ss 或 netstat |
域名解析 | nslookup host |
ifconfig命令———查看网络接口信息
1.网卡信息介绍
新加网卡
1. ifconfig 网卡名称——显示具体网卡的详细信息
网卡名称详解:
eth0
ens33:第一块以太网卡的名称详解:
“ens33”中的“en”是“EtherNet”的缩写,表示网卡 以太网(局域网中的一种) 互联网
类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽 编号
2.ifconfig 显示活动(开启)的网卡
-
3. ifconfig -a ——显示所有网卡包括没有启动的网卡
-
4. ifconfig 网络接口 IP地址[/子网掩码长度]——临时设置网卡地址
5. ifconfig 网卡名称 :数字 地址/子网掩码——新建虚拟网卡
2.实验:网卡名称修改
1. 临时修改网卡名称
ip link set ens36 down =ifconfig ens36 down
#先将网卡down掉
ip link set ens36 name abc
#然后改名
ip link set abc up
#最后再启动网卡
2.永久修改网卡名称,写入文件
centos6之前的命名方式都是以网络接口使用连续号码命名:如eth0、eth1等,当增加或者删除网卡时,名称可能会发生变化
3.实验:
1.单个网卡修改
2.双网卡配置
首先添加一块网卡
3.网卡绑定bond (参考文章标题六哈)
二、hostname 查看或设置当前主机名
1.临时修改主机名
2.永久修改主机名
方法1:修改配置文件
方法2:
三、配置路由
route 查看或设置主机中路由表信息
添加 指定网段的路由记录route add -net 网段地址 gw IP地址
删除指定网段的路由记录route del -net 网段地址
向路由表中添加默认网关记录route add default gw IP地址
删除路由表中默认的网关记录route del default gw IP地址
1.临时添加路由:
1.添加路由:
添加一条去往10.0.0.0/8段的路由,通过192.168.246.2转发
2.添加一条默认路由,通过192.168.246.2转发
2.删除路由:
2.添加永久路由
3.traceroute 路由追踪
使用traceroute命令,可以显示数据包从本地主机到目标主机经过的路由路径。
用于测试当前主机到目的主机之间经过的网络节点,基本格式:tracerout ip地址或域名
四、检查网络环境,检查网络连接状态
1.命令 ss、netstat 这两条命令都是用于查看网络环境情况
ss:更靠近内核
ss -natp n :数字 a:详细 t:tcp u:udp p:进程
netstat:靠近用户,它要去遍历 文件查看状态
ss 的优势在于它能够显示更多更详细的有关 TCP 和UDP连接状态的信息,而且比 netstat 更快速更高效,ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。
2. ping 测试网络连通性 ICMP 协议
格式: ping [选项] 目标主机
五、nslookup域名解析
nslookup是一个命令行工具,用于查询DNS(域名系统)服务器以获取关于主机名或IP地址的信息。它主要用于诊断网络问题、验证DNS记录的正确性以及了解域名解析的过程。
格式:nslook 域名
dig 可以显示出更多详细信息
六、多网卡绑定 bond
bond(绑定)是指将两个或多个物理网卡虚拟化为一个逻辑接口的过程,以实现冗余、负载均衡或增加带宽。这种技术通常被称为“网络接口绑定”或“链路聚合
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
实验:多网卡绑定
方法一:
nmcli实现bonding
#创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
nmcli connection modify ens33 ipv4.addresses 192.168.91.100/2
nmcli connection up ens33
#添加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
方法二:
创建bonding设备的配置文件
/etc/sysconfig/network-scripts/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 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
/etc/sysconfig/network-scripts/ifcfg-ens33
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-ens36
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
#################################################################
vim ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.91.22
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim ifcfg-ens36
NAME=ens36
DEVICE=bond0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
PNBOOT=yes
[root@localhost network-scripts]#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:fe:e5:bf
Slave queue ID: 0
查看bond0状态: cat /proc/net/bonding/bond0
删除bond0
ifconfig bond0 down
rmmod bonding
实验:
用第二台虚拟机ping下地址
可以再连接起来,要不就去虚拟机里操作
查看bind0状态
断开ens33网卡,用第二台虚拟机ping
七、tcpdump
网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。 tcpdump命令, 是一个强大的网络协议分析器,它主要用于监控和捕获网络流量数据包,并能够以易于阅读的格式显示这些信息。
1. tcpdump -D 查看网卡
2. tcpdump -i ens33 指定查看ens33 网卡
3.tcpdump不指定任何参数,监听第一块网卡上经过的数据包。
主机上可能有不止一块网卡,所以经常需要指定网卡。
tcpdump src host hostname
#特定来源tcpdump dst host hostname
#特定目标地址tcpdump host hostname
#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
面试题:
tcpdump -nn -i ens33 icmp and src host 192.168.246.7 and dst host 192.168.246.8
抓192.168.246.7发给192.168.246.8的 icmp 包 条件之间要加 and
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络接口> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。