Linux下的网络管理

一、网络ip通信原理

网络 IP 通信的核心原理是 基于 IP 地址的分组交换,数据会被拆分成小的数据包(Packet),通过多台网络设备(路由器、交换机等)的转发,从源主机跨越网络到达目标主机,整个过程遵循 TCP/IP 协议簇的分层规则。

可以把 IP 通信类比成邮政寄信:源主机是寄信人,目标主机是收信人,IP 地址是收件地址,路由器是邮局,数据包是信件,每一封信件都会按地址经过多个邮局转发,最终送达目的地。

二、网络ip的配制方法

bash 复制代码
[root@localhost ~]# grep eth2 -r /sys/class/net/		#判定网卡是否存在
[root@localhost ~]# nmcli connection show				#拍档网卡是否被使用
NAME  UUID                                  TYPE      DEVICE
eth0  7ba00b1d-8cdd-30da-91ad-bb83ed4f7474  ethernet  eth0
lo    a2a842f6-cc9c-445d-945e-6c969a2707f4  loopback  lo


#如果要配置的网卡已经被使用了。那么修改配置文件后一定要刷新网络并重启连接
[root@localhost ~]# nmcli connection modify eth0  ipv4.addresses 172.25.254.100/24  
[root@localhost ~]# nmcli connection  reload
[root@localhost ~]# nmcli connection up eth0

#如果没有被系统使用那么直接可以设定或者编辑配置文件激活
[root@localhost ~]# cd /etc/NetworkManager/system-connections/
[root@localhost system-connections]# vim eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
method=manual
address1=172.25.254.100/24
gateway=172.25.254.2
dns=114.114.114.114;

[root@localhost system-connections]# chmod  600 eth1.nmconnection

#检测
[root@localhost system-connections]# ip a s eth1			#查看ip
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:67:23:80 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    altname ens224
    inet 172.25.254.100/24 brd 172.25.254.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::b7e8:d88a:6485:552a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

[root@localhost system-connections]# route  -n			#网关
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.25.254.2    0.0.0.0         UG    100    0        0 eth0
0.0.0.0         172.25.254.2    0.0.0.0         UG    101    0        0 eth1
172.25.254.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0
172.25.254.0    0.0.0.0         255.255.255.0   U     101    0        0 eth1

[root@localhost system-connections]# cat /etc/resolv.conf		#查看dns
# Generated by NetworkManager
search localdomain
nameserver 172.25.254.2
nameserver 114.114.114.114

三、网关的作用

网关(Gateway)是连接不同网络的"关口"或"门户"。它充当一个网络的"出口"点,当本网络内的设备需要与外部网络(如互联网或其他局域网)通信时,所有数据包都会先发送到网关,由网关负责转发。

主要作用

  1. 网络互联

    • 不同协议转换:早期的网关(如应用网关)能连接使用不同通信协议的网络(如TCP/IP和IBM SNA),但现在这个概念已泛化。

    • 不同网段路由 :这是最常见的作用。连接局域网(LAN)与广域网(WAN,如互联网),或在局域网内连接不同的子网(如 192.168.1.0/2410.0.0.0/24)。

  2. 路由功能

    • 数据包转发:网关内部运行路由协议或静态路由,分析数据包的目标IP地址,判断是发送到本地网络还是需要转发到其他网络(上游路由器或ISP)。

    • 默认网关 :对于局域网内的普通设备(PC、手机等),网关就是其网络设置中的 "默认网关" 。当目标地址不在本地网段时,设备会无条件地将数据包发给默认网关处理。

  3. 网络地址转换(NAT)

    • 这是家庭和企业路由器的核心功能。它将局域网内多个设备的私有IP地址(如192.168.1.x)转换成一个或多个公共IP地址,从而实现多设备共享一个公网IP上网,同时也起到隐藏内网结构、增强安全性的作用。
  4. 安全与过滤

    • 作为网络的唯一出口,网关是部署防火墙、访问控制列表、内容过滤、VPN等安全功能的理想位置。
  5. 协议转换与服务提供

    • 一些网关还提供DHCP服务(自动分配IP地址)、DNS代理或缓存、端口转发、DMZ主机等附加功能。

还是刚刚的邮政寄信例子:

小区的大门 就是网关 。它有对内的地址(如 192.168.1.1,小区居民都知道这个地址),也有一个对外的地址(公网IP,如 123.123.123.123,邮政系统知道这个地址)。

当你想寄信(发送数据)给外地的朋友时,你会把信先送到小区大门。门卫(网关)负责把信上的内部地址换成小区的公网地址,然后根据外部地址找到路径寄出去。反之,外面寄给你的信,也会由门卫换成你的内部地址,送到你家。

四、dns的作用

DNS 是互联网的"电话簿"或"翻译官",它的核心作用是将人类容易记忆的域名(例如 <www.google.com>)转换为计算机用于定位和通信的 IP 地址(例如 142.250.190.78)。

方面 要点
核心作用 域名与 IP 地址的翻译系统,是互联网寻址的基石。
系统特点 分布式层次化缓存机制(极大提升效率)。
关键角色 递归解析器 (帮你跑的"跑腿员")、权威服务器(掌握最终答案的"管理员")。
对用户的价值 无需记忆 IP ,只需输入易记的域名。提升访问速度与可靠性(通过智能解析)。
配置方式 终端 :设 DNS 服务器 IP(手动或自动)。 域名所有者:在管理后台配置各种 DNS 记录。

五、网络脚本编写

为了实现更快捷的增删改对应网卡上的IP地址,编写脚本:

bash 复制代码
[root@node10 ~]# vim /bin/vmset.sh
#!/bin/bash
[ "$#" -lt "3" ] && {
  echo "error!!"
  exit
}
CONNECTION=`nmcli connection show | awk "/$1/"'{print $1}'|grep $1`
[ "$?" -ne "0" ] && {
  echo "$1" is in used !!
  nmcli connection delete  $CONNECTION
}
[ "$4" = "noroute" ] && {
cat >>  /etc/NetworkManager/system-connections/$1.nmconnection <<EOF
[connection]
id=$1
type=ethernet
interface-name=$1


[ipv4]
method=manual
address1=$2/24
EOF
}||{
cat >>  /etc/NetworkManager/system-connections/$1.nmconnection <<EOF
[connection]
id=$1
type=ethernet
interface-name=$1


[ipv4]
method=manual
address1=$2/24,172.25.254.2
dns=8.8.8.8;
EOF
}

chmod 600 /etc/NetworkManager/system-connections/$1.nmconnection
nmcli connection reload
nmcli connection up $1
hostnamectl hostname $3

cat > /etc/hosts<< EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
$2     $3
EOF

ip a s $1
hostname
   -------------------------------------------------------

#赋予执行权限
[root@node10 ~]# chmod  +x /bin/vmset.sh

#脚本使用

#NAT模式
[root@vsnode ~]# vmset.sh eth0 172.25.254.100 vsnode
#仅主机模式
[root@vsnode ~]# vmset.sh eth1 192.168.0.100 vsnode noroute

​注:本实验基于Red Hat Enterprise Linux 9 (RHEL 9)

相关推荐
s_daqing2 小时前
ubuntu(arm)安装redis
linux·redis·ubuntu
林鸿群2 小时前
ubuntu 26.04 安装mysql-server
linux·mysql·ubuntu
betazhou3 小时前
rsync使用案例分析
linux·运维·服务器·rsync·同步数据
欧洵.3 小时前
深入理解TCP/IP协议栈:数据链路层核心知识点解析
网络
安静的技术开发者3 小时前
Linux Ubuntu学习笔记
linux·ubuntu
雨声不在3 小时前
udp穿透的方法V2
网络·网络协议·udp
geshifei3 小时前
Sched ext回调1——init_task (linux 6.15.7)
linux·ebpf
嗨 ! 海洋4 小时前
K8S创建pod,CNI插件的网络配置过程
网络·kubernetes·php
尼古拉斯·纯情暖男·天真·阿玮4 小时前
实验十一 动态主机配置(DHCP)实验
网络·智能路由器