网络管理基础

Linux网络管理

1.网络管理概念

shell 复制代码
网络接口和名称 :网卡
ip地址
网关
主机名称
路由
2.管理工具
shell 复制代码
net-tools:     #安装包
ifconfig  netstat  准备要废掉了。

iproute:    #安装包
ip  #提供ip命令
3.认识网卡
shell 复制代码
lo网卡 :本地回环网卡,本机上的服务自己访问自己时用的
#网卡里面信息
ip 地址
子网掩码
广播地址
mac地址

查看网卡

shell 复制代码
[root@linux-server ~]# ip a   #方式一
[root@linux-server ~]# ifconfig  #方式二

临时设置ip

方式如下

shell 复制代码
[root@linux-server ~]# ip a a 192.168.246.161/24 dev ens33

删除设置的临时ip

shell 复制代码
[root@linux-server ~]# ip a d 192.168.246.161/24 dev ens33

add------添加
del------删除

启动关闭网卡

shell 复制代码
启动:
#ifconfig 网卡名  up  #方式一
#ifup  网卡名  #方式二
shell 复制代码
关闭网卡            
# ifconfig 网卡名 down  #方式一
# ifdown 网卡名   #方式二
4.网关
shell 复制代码
网关:网络的关卡:是为了访问其他网络。
静态路由和动态路由

路由器在转发数据时,需要先在路由表中查找相应的路由,有三种途径

(1)直连路由:路由器自动添加和自己直连的路由

(2)静态路由:管理员手动添加的路由

(3)动态路由:由路由协议动态建立的路由

静态路由

缺点

不能动态的反映网络拓扑,当网络发生变化的时候,管理员必须手动的改变路由

优点

不会占用路由器太多的cpu和RAM资源,也不会占用太多带宽。

默认路由

(1) 实际上默认路由是一种特殊的静态路由,指的是当 路由表中与包的目的地址之间没有匹配的表项时,路由器能够做出选择。如果没有默认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。

(2)默认路由(Default route),如果IP数据包中的目的地址找不到存在的其它路由时,路由器会默认的选择的路由。

默认路由为0.0.0.0

动态路由

动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。

Linux路由操作
shell 复制代码
查看路由表:
[root@linux-server ~]# ip r #r:route。查看路由和网关
default via 192.168.246.2 dev ens33 proto static metric 100 
192.168.246.0/24 dev ens33 proto kernel scope link src 192.168.246.160 metric 100

#via:通过的意思,相当于下一跳

添加静态路由删除静态路由

shell 复制代码
[root@linux-server ~]# ip r add 192.168.223.0/24 via 192.168.246.2  #添加路由
[root@linux-server ~]# ip r del 192.168.223.0/24 #删除路由
#via  表示通过的意思,下一跳
5.设置永久静态ip
shell 复制代码
[root@linux-server ~]# cd /etc/sysconfig/network-scripts/  #网卡配置文件存放路径
[root@linux-server network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak #将源文件备份
[root@linux-server network-scripts]# vi ifcfg-ens33 #编辑网卡配置文件
TYPE="Ethernet"         #网络类型:以太网类型
PROXY_METHOD="none"   
BROWSER_ONLY="no"
BOOTPROTO="static"    #默认值none或static 这两种属于静态获取ip地址,dhcp自动获取ip
IPADDR=192.168.246.134 #设置静态ip地址
GATEWAY=192.168.246.2 #设置网关,nat模式网关是2,桥接为1.
NETMASK=255.255.255.0  #设置掩码或者
#PREFIX=24
DEFROUTE="yes"  #是否设置默认路由,yes表示该配置
NAME="ens33"    #网卡名称,可以不存在
DEVICE="ens33"   #设备名称
ONBOOT="yes"    #开机启动
DNS1=114.114.114.114 #dns全国通用地址,dns最多可以设置三个
DNS2=8.8.8.8 #谷歌的dns
DNS3=202.106.0.20 #北京的DNS。
shell 复制代码
重启网络---修改完配置文件一定要重启网络
# systemctl restart network   #rhel7
# /etc/init.d/network restart  红帽5、6里面的。

编辑DNS配置文件设置DNS

shell 复制代码
[root@linux-server ~]# vi /etc/resolv.conf   #添加如下内容
nameserver 114.114.114.114    #指定dns地址

设置动态ip

shell 复制代码
[root@linux-server ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"   #只需要将这里修改为dhcp。
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"

重启网络
[root@linux-server ~]# systemctl restart network
6.查看mac地址
shell 复制代码
[root@soso666 ~]# ifconfig
arp协议:地址解析协议。

查看某个IP的MAC地址
[root@soso666 ~]# arping -I ens33 192.168.246.135  #要查看的ip地址
-I:指定使用那快网卡ping
7.开启路由转发
shell 复制代码
临时设置
[root@linux-server ~]# echo 1 > /proc/sys/net/ipv4/ip_forward #默认是零,没有开路由。1表示开启
永久设置 
# vim  /etc/sysctl.conf---添加如下内容
net.ipv4.ip_forward = 1
# sysctl  -p    #立即生效
8.修改主机名
shell 复制代码
方式一
[root@linux-server ~]# hostname #查看主机名
[root@linux-server ~]# hostnamectl set-hostname linux-server  #主机名
方式二
[root@linux-server ~]# vi /etc/hostname   ---编辑配置文件
soso666
[root@linux-server ~]# reboot 
[root@soso666 ~]#
9.配置本地解析
shell 复制代码
写法:ip   主机名
[root@soso666 ~]# vi /etc/hosts    ---添加如下内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.130 soso666 soso   #添加解析

10.修改网卡

将CentOS7修改网卡为eth0

shell 复制代码
1.修改网卡配置文件
[root@linux-server ~]# cd /etc/sysconfig/network-scripts/
[root@linux-server network-scripts]# mv ifcfg-ens33 ifcfg-eth0  #改名
[root@linux-server network-scripts]# vim ifcfg-eth0  #只需要修改配置文件中的名称
NAME="eth0"
DEVICE="eth0"
2.GRUB添加kernel参数
[root@linux-server ~]# vim /etc/sysconfig/grub   #在文件中最后一行添加
GRUB_CMDLINE_LINUX="...... net.ifnames=0" #告诉系统关闭原来命名功能
3.执行命令生效---#加载配置文件
[root@linux-server ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
4.重启机器
 # reboot
[root@linux-server ~]# cd /etc/sysconfig/network-scripts/

tcpdump抓包

复制代码
大鹏一日同风起,扶摇直上九万里。

tcpdump是一款强大的网络抓包工具,运行在Linux平台上。熟悉tcpdump的使用能够帮助我们分析、调试网络数据。

在实际工作中,需要以root权限去执行该命令。

一、常用命令选项

shell 复制代码
-i #指定监听网络接口
-nn #进行ip和端口名称的转换,一个n不要ip解析到域名,将协议转换为端口
-w #将捕获到的信息保存到文件中,且不分析和打印在屏幕
-r #从指定的文件中读取数据,一般是-w保存的文件
-v #输出稍微详细的信息
-vv#输出详细的报文信息

二、安装tcpdump工具

shell 复制代码
[root@tcpdump-server ~]# yum install -y tcpdump

实验环境

shell 复制代码
1.准备两台机器
192.168.80.128 ----tcpdump-server
192.168.80.129 ----test-server
2.两台机器均关闭防火墙和selinux

六个标记

shell 复制代码
SYN(synchronous建立联机) 
ACK(acknowledgement 确认) 用.表示
PSH(push传送)
FIN(finish结束) 
RST(reset重置) 
URG(urgent紧急)
==========
Sequence number(顺序号码)

监听网卡端口为80的应用发出和接收的所有http协议包

shell 复制代码
[root@tcpdump-server ~]# tcpdump -i ens33  port 80 -vv -nn
[root@test-server ~]# curl http://192.168.80.128   #测试

监视ens33网卡上源地址192.168.80.129的所有网络包

shell 复制代码
[root@tcpdump-server ~]# tcpdump -i ens33 src 192.168.80.129
[root@test-server ~]# ssh 192.168.80.128 #测试

监视ens33网卡上目的地址是192.168.80.129的所有网络包

shell 复制代码
[root@tcpdump-server ~]# tcpdump -i ens33 dst 192.168.80.129

两台机器同时操作

shell 复制代码
[root@tcpdump-server ~]# ip a  #查看自己网卡
#抓来自192.168.80.129这台机器的imcp协议的包
shell 复制代码
[root@test-server ~]# ping -c 1 192.168.80.128 #ping tcpdump的机器一次
PING 192.168.80.128 (192.168.80.128) 56(84) bytes of data.
64 bytes from 192.168.80.128: icmp_seq=1 ttl=64 time=0.751 ms

--- 192.168.80.128 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.751/0.751/0.751/0.000 ms
shell 复制代码
[root@tcpdump-server ~]# tcpdump -i ens33 icmp -vv -nn
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
00:55:58.756161 IP (tos 0x0, ttl 64, id 33221, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.80.129 > 192.168.80.128: ICMP echo request, id 1139, seq 1, length 64
00:55:58.756254 IP (tos 0x0, ttl 64, id 11681, offset 0, flags [none], proto ICMP (1), length 84)
    192.168.80.128 > 192.168.80.129: ICMP echo reply, id 1139, seq 1, length 64

echo request :请求包
echo reply:回复包

实验二抓一个tcp的包--全部在文本模式下操作

shell 复制代码
[root@tcpdump-server ~]# yum install -y epel*
[root@tcpdump-server ~]# yum install -y nginx
[root@tcpdump-server ~]# systemctl start nginx
shell 复制代码
[root@test-server ~]# curl -I http://192.168.80.128/  #测试访问
shell 复制代码
[root@tcpdump-server ~]# tcpdump -i ens33 tcp -vv -nn -w tcp.txt  #抓包tcp--在文本模式下

#测试
[root@test-server ~]# curl -I http://192.168.80.128/  --访问
shell 复制代码
[root@tcpdump-server ~]# ls
anaconda-ks.cfg  tcp.txt   ---抓包生成的文件,不能用vim查看
[root@tcpdump-server ~]# tcpdump -r tcp.txt  #读生成的文件
shell 复制代码
[root@tcpdump-server ~]# tcpdump -i ens33 tcp -vv -nn
[root@test-server ~]# curl -I http://192.168.80.128/  --访问,文本模式下

按shift键加pu键可以上翻。pd键可以下翻

=======导入wireshark

1.需要重新抓包一次并保存。

shell 复制代码
[root@tcpdump-server ~]# rm -rf tcp.txt #将原来的删除
shell 复制代码
[root@linux-server ~]# curl -I http://192.168.80.120
shell 复制代码
2.用客户端工具连接tcpdump-server的机器将产生的文件导入wireshark中
[root@tcpdump-server ~]# ls
tcp.txt
[root@tcpdump-server ~]# sz tcp.txt #下载到桌面
相关推荐
律宏阔4 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔4 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴4 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千4 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei374 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei374 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei374 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh4 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
AKAMAI4 小时前
随着瓦尔·基尔默的AI分身诞生,生成式AI是否正在将好莱坞推向边缘?
人工智能·云原生·云计算
GeW4 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux