Linux--网络配置命令和配置文件--路由实战

基本网络配置

将Linux主机接入到网络中,需要做网络相关的配置,一般包括以下内容:

1.主机名  
    CentOS7之后使用"hostnamectl set-hostname xxxx",CentOS6不支持。
  
2.IP/netmask

3.路由:默认网关 
    跨网段通信时需要使用到网关,如果通信主机都在同一个网段就不需要配置网关,但其实每个主机都需要跨网段通信,比如访问互联网。

4.DNS服务器
    主DNS服务器
    次DNS服务器
    第三个DNS服务器

网卡命名规范

为什么要统一网卡名称

CentOS6之前,网络接口使用连续号码命名: eth0、eth1等(从0递增),当增加或删除网卡时,名称可能会发生变化。
CentOS7以上版使用基于硬件,设备拓扑和设置类型命名,可以保持网卡名称的稳定,但是会导致网卡名称不连续,从而导致环境不统一不标准,不统一就不能标准化,不标准化就不能自动化。

如下截图所示,当我使用vmware新增一个网卡后,
  CentOS6的网卡名称是连续的:eth0、eth1
  CentOS8的网卡名称序号则跳跃很大:ens160、ens224

centos6 eth0/eth1
在这里插入图片描述
centos8 ens160/ens224
在这里插入图片描述

修改网卡名称

1.修改/etc/default/grub配置

在改文件的GRUB_CMDLINE_LINUX的末尾处增加以下内容

net.ifnames=0

在这里插入图片描述

2.执行生效命令和重启

执行以下命令

grub2-mkconfig -o /boot/grub2/grub.cfg

重启改虚拟主机
在这里插入图片描述
查看是否修改成功
在这里插入图片描述
ens160、ens224已经变成eth0、eth1了。

Ubuntu的网卡名修改

Ubuntu的网卡名修改和Centos修改几乎一样,只是配置生效的命令少了个2

grub-mkconfig -o /boot/grub/grub.cfg

配置网络接口

修改网卡名称之后,就得修改网络接口的各种配置了,可以理解为网卡名就是这网络接口的名称。
网络接口里包括网络接口的启用、IP 地址的分配、DHCP启用、网关和 DNS 的设置等。

网络接口配置

以下截图可以看出,网络接口的命令规范是“ifcfg-ens160”,ifcfg是interface config的缩写,短横岗后面是网卡名称(这个名称可以随意,但是在配置文件“DEVICE=”里一定要指定具体的网卡名)。

cd /etc/sysconfig/network-scripts/

在这里插入图片描述

DHCP自动分配

vim ifcfg-eth1

DEVICE=eth1
NAME=eth1
BOOTPROTO=dhcp

配置了ip地址为dhcp自动分配,VMware上设置的dhcp过期时间是30分钟,当租约时间过了一半时,设备会尝试向 DHCP 服务器发送请求以更新或续约这个 IP 地址的租约。如果 DHCP 服务器同意,租约时间将被延长。如果没有继续租约,过期之后dhcp会重新分配一个新的ip地址。可以使用“ip a”命令查看valid lft剩下的过期时间(最开始是1800秒,会不断递减)。
在这里插入图片描述
在这里插入图片描述
配置dhcp=static的主机,valid_lft 就是forever
在这里插入图片描述

静态IP手动分配

vim ifcfg-eth1

DEVICE=eth1
NAME=eth1
BOOTPROTO=static         选项为static、none、dhcp
IPADDR=192.168.10.178
PREFIX=24
GATEWAY=192.168.10.2
DNS1=114.114.114.114
DNS2=8.8.8.8
ONBOOT=yes               是否启用该网卡,默认就是yes

在这里插入图片描述

网卡配置文件生效方法

CentOS6        
  service network restart

CentOS7         
  systemctl restart network

CentOS8和Rocky  
  1.nmcli connection reload  
  2.nmcli connection up eth0

所有版本都通用的方法
  reboot    #如果机器上已经跑了很多服务了,不建议动不动就重启机器。

验证文件是否生效

1.验证IP
ip a

在这里插入图片描述

2.验证网关
route -n

在这里插入图片描述

3.验证DNS
cat /etc/resolv.conf

在这里插入图片描述

VMware网卡工作模式

1.桥接模式(Bridged)

在桥接模式下,虚拟机的网卡直接与物理网络适配器连接。这意味着虚拟机会作为网络中的独立设备存在,并可以获取与物理网络中其他设备一样的 IP 地址。这种模式适用于希望虚拟机与宿主机及网络中其他设备进行自由通信的场景。

桥接模式特点

桥接模式特点
  1.虚拟机与宿主机在同一个物理网络中,可以与其他物理设备直接通信。
  2.需要在物理网络中有足够的 IP 地址可用。
  3.使用这种模式时,虚拟机的网络流量直接通过物理网络适配器传输。

2.NAT模式(Network Address Translation)

在NAT模式下,虚拟机通过宿主机的 IP 地址和网络连接访问外部网络。虚拟机的网络流量会经过宿主机的NAT引擎,因此虚拟机的 IP 地址对外部网络是不可见的。这种模式适合需要访问外部网络但不需要虚拟机作为独立设备出现的场景。

NAT模式特点

NAT模式特点:
  1.虚拟机通过宿主机访问外部网络,虚拟机的IP地址在外部网络中不可见。
  2.对于虚拟机之间或虚拟机与宿主机的通信通常没有限制。
  3.适用于需要网络访问但无需分配额外IP地址的场景。

3.仅主机模式(Host-Only)

仅主机模式创建一个独立的虚拟网络,仅允许虚拟机与宿主机之间进行通信。在这种模式下,虚拟机无法访问外部网络,但它们可以与宿主机以及其他使用同一网络的虚拟机通信。

仅主机模式特点

仅主机模式特点特点:
  1.虚拟机只能与宿主机通信,不能直接访问外部网络。
  2.虚拟机与其他使用Host-Only网络的虚拟机可以相互通信。
  3.适用于需要隔离虚拟机与外部网络通信的场景。

网络配置命令

ifconfig

ifconfig来自于net-tools包,ifconfig命令将会淘汰被弃用,取而代之的是ip addr和ip link
在这里插入图片描述

NOTE
       This program is obsolete!  For replacement check ip addr and ip link. 
        For statistics use ip -s link.

启用/禁用网卡

我新增了一个eth2的网卡
在这里插入图片描述
禁用eth2网卡

ifconfig eth2 down

在这里插入图片描述
启用网卡

ifconfig eth2 up

在这里插入图片描述
允许一个网卡配置多个ip
在这里插入图片描述
其实eth2:1就相当于是给eth2增加了一个别名

统计网卡流量

在这里插入图片描述

route

在这里插入图片描述

路由:路径的选择
路由表:导航,地图,不仅仅是路由器上有,在任何通信的主机设备上都有

路由表的构成

字段描述
Destination目的地网络或主机的IP地址。表示数据包将要发送到的目标。
Gateway下一跳的IP地址。数据包将通过该网关转发到目的地。如果是*,表示没有网关,直接传送到目的地。
Flags路由标志,表示这条路由的状态和属性。常见标志有U(路由已启用)、G(使用网关)、H(目标是一个主机)。
Metric花费此值越小,优先级越高
Iface接口如果要到达目标网络ID,需要从本机的哪个将数据包发出(例如eth0, wlan0等)

route add

添加路由

route add [-net|-host|default] target [netmask Nm] [gw Gw] [[dev] If]

范例

#目标:192.168.1.3  网关: 172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
#目标:192.168.0.0  网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
route add -net 192.168.8.0/24 dev eth1 metric 200
#默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add -net 0.0.0.0/0 gw 172.16.0.1
route add default gw 172.16.0.1

route del

删除路由

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

范例

#目标:192.168.1.3  网关:172.16.0.1
route del -host 192.168.1.3

#目标:192.168.0.0  网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0

实现静态路由

环境准备

四台主机:
  A主机:  eth0 NAT模式
  R1主机: eth0 NAT模式, eth1仅主机模式
  R2主机: eth0 桥接模式, eth1仅主机模式
  B主机:  eth0 桥接模式

在这里插入图片描述

四台主机的配置

配置A主机
ifconfig eth0 10.0.0.123/8
route add -net 10.0.0.0/8 dev eth0
route add default gw 10.0.0.200 dev eth0

配置R1路由
ifconfig eth0 10.0.0.200/8
ifconfig eth1 192.168.0.200/24
route add -net 10.0.0.0/8 dev eth0
route add -net 192.168.0.0/24 dev eth1
route add -net 172.16.0.0/16 gw 192.168.0.201 dev eth1
echo 1 > /proc/sys/net/ipv4/ip_forward          #注意:想让Linux主机充当路由器功能,需要开启ip_forward配置

配置R2路由
ifconfig eth0 172.16.0.200/16
ifconfig eth1 192.168.0.201/24
route add -net 192.168.0.0/24 dev eth1
route add -net 172.16.0.0/16 dev eth0
route add -net 10.0.0.0/8 gw 10.0.0.200 dev eth1
echo 1 > /proc/sys/net/ipv4/ip_forward          #同样开启ip_forward配置

配置B主机
ifconfig eth0 172.16.0.123/16
route add -net 172.16.0.0/16 dev eth0
route add default gw 172.16.0.200 dev eth0

网络测试诊断工具

tcpdump

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。

常用选项:
  -nn: 禁用主机名和端口号解析,显示原始数字。
  -c <数据包数量>:捕获指定数量的包。
  -w <文件>:将捕获的数据写入文件。
  -i <网络接口>:使用指定的网络截面送出数据包。

tcpdump -D

查看网卡
在这里插入图片描述

#不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。
tcpdump

#监听特定网卡
tcpdump -i eth0

在这里插入图片描述

#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
tcpdump host 10.0.0.100

#特定来源、目标地址的通信
tcpdump src host hostname

#特定目标地址
tcpdump dst host hostname

#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
tcpdump host hostname

面试题

抓包:源地址156主机ping目标152主机的包

tcpdump  -i ens160 -nn icmp and src host 192.168.10.156 and dst host 192.168.10.152

在这里插入图片描述

#特定端口
tcpdump port 3000

#监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
tcpdump tcp

#来源主机+端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包
tcpdump tcp port 22 and src host 10.0.0.100

#监听特定主机之间的通信
tcpdump ip host 10.0.0.101 and 10.0.0.102

#10.0.0.101和除了10.0.0.1之外的主机之间的通信
tcpdump ip host 10.0.0.101 and ! 10.0.0.1

详细示例

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

nmap

扫描远程主机工具,比发送ICMP报文的ping命令的功能要强大很多。

官方帮助:https://nmap.org/book/man.html

安装nmap
在这里插入图片描述

nmap -sP

扫描制定一个IP地址范围

nmap -sP 192.168.10.1-168

在这里插入图片描述
使用grep过滤出up的ip地址

nmap -sP 192.168.10.0-160 | grep "Nmap scan" | cut -d" " -f5

在这里插入图片描述
使用sed过滤出up的ip地址

nmap -sP 192.168.10.0-160 | sed -n '/^Nmap scan/s/Nmap scan report for //p'

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值