Linux三种网络方式

前言

发现运维啥都得会,这周就遇到了网络问题自己无法解决,因此痛定思痛学一下。

参考文献

你管这破玩意叫网络?

桥接模式、NAT模式、仅主机模式,原来是这样工作的

交换机

构成局域网,实现所有设备之间的通信。

在这里插入图片描述

因此通信就非常方便了,只需要写明目标物理地址,通过交换机进行转发,就可以达到想要通信的电脑。

路由器

作为一台独立的拥有Mac地址的设备,并且可以把数据包进行一次转发,路由器的每个端口都有独立的Mac地址。

在这里插入图片描述
此时192.168.0.10要和192.168.1.30通信,怎么知道是需要通过路由器进行转发呢?

  • 如果源IP目的IP在同一个子网,直接将包通过交换机发出去。
  • 如果源IP目的IP不在同一个子网,就交给路由器去处理。

192.168.0.x比如192.168.0.2就和192.168.0.10在同一个子网。
实际上是通过子网掩码进行与运算的结果对比是否在同一个子网。

还有一个问题就是如何知道哪个设备是路由器呢?
需要在192.168.0.10上面配置默认网关,一旦发现在不同子网,就将数据发给默认网关的设备。
在这里插入图片描述

NAT技术

NAT技术,可以帮助局域网设备通过私有IP地址访问局域网。

  1. 私有IP地址:在一个局域网中,通常使用私有IP来为设备分配网络标识。这些地址范围是在互联网上不是唯一的,因此不能直接通过互联网访问。
  2. 公共IP地址:公共IP地址是全球范围内唯一的。
  3. NAT转换:当局域网设备通过路由器的WAN口访问互联网时,NAT技术将私有IP地址转为公共IP地址。

​外网进WAN,内网接LAN

  1. 路由表:NAT(比如路由器)会维护一个NAT转换的路由表记录每个局域网设备的私有IP地址和对应的公共IP地址、端口号。这样,当互联网上的响应数据包返回时,路由器可以根据路由表中的信息将数据包正确转发到对应的局域网设备。
  2. 端口转发:NAT技术还支持端口转发(PortForwarding,允许外部网络访问局域网中特定设备的特定端口。通过在路由器上配置端口映射规则,路由器可以将外部网络的请求转发到局域网设备的私有IP地址和端口上

普通设备(电脑/手机)​一般只有私网IP,除非特殊网络环境(如直连光猫、双网卡)。
通过ipconfig查看
在这里插入图片描述
路由器/网关设备:通常同时拥有公网IP(对外)和私网IP(对内)。
路由表
在这里插入图片描述
端口转发
在这里插入图片描述

桥接模式

linux 如何查看网卡配置是桥接还是nat还是其他
请参考桥接模式的图

在这里插入图片描述

桥接模式下,虚拟机会直接“插”在你的物理网线上,就像你家里新买了一台电脑,直接用网线连到路由器上一样——它和物理机是完全平等的“邻居”,共用同一个物理网络。

为什么需要同一网段、相同网关/DNS

  • 同一网段:就像你家的所有设备(手机、电脑)必须连到同一个路由器(比如 192.168.1.x)。
  • 相同网关:网关就是路由器的IP(比如 192.168.1.1),所有设备都要通过它上网。
  • 相同DNSDNS是“地址簿”,虚拟机要和物理机用同一个地址簿(比如 8.8.8.8)才能找到网站。

关于DNS在这里可以多说一点关于我自己的理解:

一个域名,可以访问到成百上千台服务器。那么我们怎么知道到底要访问哪一台呢?

负载均衡,轮询的方式,一台一台的访问。

为什么没有 VMnet0 虚拟网卡?

桥接模式直接使用物理网卡,不需要虚拟网卡做中间人。

  • 对比NAT模式:NAT模式相当于虚拟机“躲在”物理机后面,通过物理机的虚拟网卡(如 VMnet8)上网,所以需要虚拟网卡。
  • 桥接模式:虚拟机自己“光明正大”用物理网卡,直接和路由器对话。

实操一下

在这里插入图片描述
vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static       # 更改为静态,为什么要调成静态呢?因为DHCP分配IP,比如这个时候你是9过一会又变成10,连接就会变得很麻烦
ONBOOT=yes             # 设置开机⾃动启⽤⽹络连接
IPADDR=192.168.1.200    # 虚拟机的静态ip,一定要按 主机的实际网络情况进行配置,不和已有的冲突即可
NETMASK=255.255.255.0  # 和 主机 的子网掩码一致
GATEWAY=192.168.1.1   # 和 主机 的网关IP一致
DNS1=192.168.1.1      # 和 主机 的网关IP一致

重启一下网络service network restart
在这里插入图片描述
虚拟机
在这里插入图片描述
主机
在这里插入图片描述
那么为什么虚拟机ping不同主机呢?
在这里插入图片描述
我又有一个想法虚拟机是不是可以也可添加防火墙,额之前防火墙忘记开启了。现在开启了再试一下。

systemctl start firewalld
systemctl status firewalld

在这里插入图片描述
那么专门隔绝一下主机IP访问再看看。

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.165" reject'
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

在这里插入图片描述
在这里插入图片描述

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.165" reject'
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

说实话我现在不太会,等学会了补上。

NAT网络

linux 如何查看网卡配置是桥接还是nat还是其他
请参考NAT网络模式的图
在这里插入图片描述

NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。

相比桥接模式,多了虚拟NAT设备虚拟DHCP服务器虚拟网卡

虚拟交换机目的是为了搭建一个局域网,会把所有虚拟机和VMware Network Adapter VMnet8搭建在一个局域网内,虚拟机和VMware Network Adapter VMnet8可以互联互通的,主机可以通过虚拟网卡VMware Network Adapter VMnet8访问到虚拟机,但是虚拟机不能直接通过虚拟网卡VMware Network Adapter VMnet8访问到主机网卡的,因为不通也不在同一个网段,虚拟机想要访问主机网卡需要通过NAT设备。

所以主机和虚拟机是互通的,但是走的链路不同。

实操一下

在这里插入图片描述
在这里插入图片描述

BOOTPROTO=static       # 更改为静态
ONBOOT=yes             # 设置开机⾃动启⽤⽹络连接
IPADDR=192.168.111.15    # 虚拟机的静态ip,一定要按 VMnet8 的实际网络情况进行配置,不和已有的冲突即可
NETMASK=255.255.255.0  # 和 VMnet8 的子网掩码一致
GATEWAY=192.168.111.2   # 和 VMnet8 的网关IP一致
DNS1=192.168.111.2      # 和 VMnet8 的网关IP一致

service network restart
经过测试,虚拟机和主机相互都能通信,并且都可以访问外网。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

端口转发

此路不通,可以走另一条路。

可以把外部的请求转发到局域网内,主机的网卡,相当于虚拟机的集群来说就是一个外部的设备,VMware Network Adapter VMnet8禁用以后不能通过虚拟网卡访问虚拟机。
如果想通过主机的网卡访问到虚拟机,需要在NAT设备配置端口转发
在这里插入图片描述
这个操作就是把主机的80端口,转发到虚拟机的192.168.111.15的22端口
在这里插入图片描述
在这里插入图片描述
路线就是这样的通过主机网卡->NAT设备(端口转发)->虚拟机。注意此时被VMware Network Adapter VMnet8禁用了

仅主机模式

仅主机模式可有看成是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
在这里插入图片描述
虚线代表着不能通信。
虚拟机不能访问主机的网卡,主机可以通过VMware Network Adapter VMnet1虚拟网卡访问到虚拟机,

在这里插入图片描述
vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static       # 更改为静态
ONBOOT=yes             # 设置开机⾃动启⽤⽹络连接
IPADDR=192.168.222.15    # 虚拟机的静态ip,一定要按 VMnet1 的实际网络情况进行配置,不和已有的冲突即可
NETMASK=255.255.255.0  # 和 VMnet1 的子网掩码一致

service network restart
在这里插入图片描述
当然关闭了VMware Network Adapter VMnet1虚拟网卡主机也不能访问虚拟机。

总结

所有结论都需要反复测试!如果有错误欢迎指正!一起努力!
如果喜欢的话,请点个赞吧就算鼓励我一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26567.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PHP和MySQL的用户登录注册系统实现

系统架构 系统采用前后端分离的架构,使用PHP作为后端语言,MySQL作为数据库。以下是系统的整体架构图: 这个架构图展示了系统的三个主要层次: 前端界面层:包含用户交互的三个页面(注册、登录和欢迎页面&am…

脚本无法获取响应主体(原因:CORS Missing Allow Credentials)

背景: 前端的端口号8080,后端8000。需在前端向后端传一个参数,让后端访问数据库去检测此参数是否出现过。涉及跨域请求,一直有这个bug是404文件找不到。 在修改过程当中不小心删除了一段代码,出现了这个bug&#xff0…

【计网】计算机网络概述

第一章 计算机网络概述 1.2 因特网概述1.2.1 网络、互联网和因特网1.2.2 因特网发展的三个阶段1.2.3 因特网的标准化工作1.2.4 因特网的组成 1.3 三种交换方式1.3.1 电路交换1.3.2 分组交换1.3.3 报文交换1.3.4 三种交换的对比 1.4 计网的定义与分类1.4.1 定义1.4.2 分类 1.5 计…

前端依赖nrm镜像管理工具

npm 默认镜像 :https://registry.npmjs.org/ 1、安装 nrm npm install nrm --global2、查看镜像源列表 nrm ls3、测试当前环境下,哪个镜像源速度最快。 nrm test4、 切换镜像源 npm config get registry # 查看当前镜像源 nrm use taobao # 等价于 npm…

LinkedList与链表

目录 1、链表 2、实现自己的链表 (不带头结点) 2.1、遍历链表 2.2、求链表长度 2.3、判断链表是否包含关键字 2.4、插入节点 2.5、任意位置插入一个节点 2.6、删除一个节点 2.7、删除所有值为key的节点 2.8、清空所有节点 1、链表 链表是一种物理结构上不连续的存储结…

StableDiffusion打包 项目迁移 项目分发 1

文章目录 SD项目迁移前置知识webui-user.batwebui.batlaunch_utils.py 下一篇开始实践 SD项目迁移 显卡驱动更新:https://www.nvidia.cn/geforce/drivers/ 下载安装三个程序: python3.10.6: https://www.python.org/downloads/release/python-3106/gi…

架构案例:从初创互联网公司到分布式存储与反应式编程框架的架构设计

文章目录 引言一、初创互联网公司架构演化案例1. 万级日订单级别架构2. 十万级日订单级别架构3. 百万级日订单级别架构 二、分布式存储系统 Doris 架构案例三、反应式编程框架架构案例总结 引言 分布式架构 今天我们将探讨三种不同类型的架构案例,分别探讨 一个初…

Xshell客户端免费版无需注册Linux连接客户端8.0详细安装教程(2025年最全最详细的图文教程)附安装包

目录 关联链接 前言 一、下载安装程序 二、安装Xshell客户端 1.启动安装 2.下一步 3.许可协议 4.安装目录 5.开始安装 6.安装完成 7.免费许可 8.大功告成! 关联链接 Xftp免费客户端安装教程:https://blog.csdn.net/xiaoguo1001/article/detai…

electron多进程通信

进程间通信 | Electron 进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。 由于主进程和渲染器进程在 Electron 的进程模型具有不同的职责,因此 IPC 是执行许多常见任务的唯一方法,例如从 UI 调用原生 API 或从原生菜单触发…

登录日志管理:通用分页和排序封装、 查询登录日志列表、删除登录日志、清空登录日志、解锁用户登录状态(解锁密码错误次数超限)

文章目录 引言I 登录日志管理接口列表II 通用分页和排序封装Java 分页和排序封装vue前端排序页面III 工具类字段名转换 : 驼峰转下划线命名引言 I 登录日志管理 接口列表 import request from @/utils/request// 查询登录日志列表 export function list(query) {return

基于MATLAB红外弱小目标检测MPCM算法复现

摘要:本文详细介绍了一种基于人类视觉系统特性的红外弱小目标检测算法——Multiscale patch-based contrast measure (MPCM)。该算法通过增强目标与背景的对比度,有效检测红外图像中的弱小目标,并在MATLAB环境中进行了复现与实验验证。 关键…

Flutter系列教程之(8)——CheckBox多选框及动态更改多选框

目录 1.星级组件使用 2.多选框使用及数据更改 3.完整源码 最近项目需求需要调整页面,记录一下实现过程 这次主要是要实现个评价页面,选择不同的星级显示不同的多选框数据,加上之前也没有使用过CheckBox,今天便是一起讲吧 1.星级组件使用 首先,我们有使用到星级评分组件 在p…

神经网络|(十一)|神经元和神经网络

【1】引言 前序已经了解了基本的神经元知识,相关文章链接为: 神经网络|(一)加权平均法,感知机和神经元-CSDN博客 神经网络|(二)sigmoid神经元函数_sigmoid函数绘制-CSDN博客 神经网络|(三)线性回归基础知识-CSDN博客 把不同的神经元通过…

微软Office 2016-2024 x86直装版 v16.0.18324 32位

微软 Office 是一款由微软公司开发的办公软件套装,能满足各种办公需求。包含 Word、Excel、PowerPoint、Outlook 和 OneNote 等软件。Word 有强大文档编辑功能和多人协作;Excel 可处理分析大量数据及支持宏编程;PowerPoint 用于制作演示文稿且…

Python从0到100(八十九):Resnet、LSTM、Shufflenet、CNN四种网络分析及对比

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

TinyEngine v2.2版本发布:支持页面嵌套路由,提升多层级路由管理能力开发分支调整

2025年春节假期已过,大家都带着慢慢的活力回到了工作岗位。为了让大家在新的一年继续感受到 Tiny Engine 的成长与变化,我们很高兴地宣布:TinyEngine v2.2版本正式发布!本次更新带来了重要的功能增强------页面支持嵌套路由&#…

线程(Thread)

一、概念 线程:线程是一个轻量级的进程 二、线程的创建 1、线程的空间 (1)进程的空间包括:系统数据段、数据段、文本段 (2) 线程位于进程空间内部 (3) 栈区独享、与进程共享文本段、…

【含文档+PPT+源码】基于微信小程序的校园志愿者管理系统的设计与实现

项目介绍 本课程演示的是一款 基于微信小程序的校园志愿者管理系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…

yolov8,yolo11,yolo12 服务器训练到部署全流程 笔记

正在进行中,随时更新 一. Anaconda配置 1.安装anaconda (1)下载.sh文件 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror (2)scp到服务器后,运行安装包 bash Anaconda3-2020.07-Linux-x86_64.sh (3)安装anacond…

CentOS vs Ubuntu - 常用命令深度对比及最佳实践指南20250302

CentOS vs Ubuntu - 常用命令深度对比及最佳实践指南 引言 在 Linux 服务器操作系统领域,CentOS 和 Ubuntu 是广泛采用的发行版。它们在命令集、默认工具链及生态系统方面各有特点。本文深入剖析 CentOS 与 Ubuntu 在常用命令层面的异同,并结合实践案例…