本文时间 2023-05-18

作者:sugerqube漆瓷

本文面向新手,重在理解会舍弃不少精密的理论,还请大佬们见谅。

本文目标:成功使用ssh工具登录linux,同时linux能连接外网。

网络基础

关于局域网

一切网络的目的:为了链接两台计算机

知识点1:每台物理机应该有一个ip地址

windows用户可以在win+R输入cmd打开命令行使用ipconfig查看自己的ip

IPv4 就是我这台电脑的ip地址192.168.1.117。

注:192.XXX一般是局域网


知识点2:存在物理链接的两台电脑可以互相访问




一般用在cmd窗口用ping检查连通性。



ctrl+c结束ping

注:以上即以下情况介默认防火墙开放

知识点2.1:防火墙可以添加规则限制上述的访问。

知识点2.2:路由器一般兼具交换机的功能。


知识点3:在到达最后一个“设备”前经过的节点,可以被等效忽略

知识点3.1:网关地址为直接连接的ip地址

举例一个常见网络架构

以我的A为例,电脑的网线连接着路由器

路由器ip为192.168.1.1

所以网关地址为:192.168.1.1

同时作为同局域网下的B可以直接被我访问。

现在我想要访问sugerqube.org服务器的服务

我的网络经过了路由器的网关

路由器再经过112.X的(光纤)/(交换机),然后就可以等效为下图。

显然我可以访问通局域网下的sugerqube。

再次强调,上述只是一种理解方式,真实的环境还要涉及防火墙和协议

简述VBox的网络(桥接模式)

有上述基础 一个拓扑图就可以理解桥接模式是什么:



这种模式胜在方便,但是有个缺点,他的ip是由真实路由器分配的,不方便我们ssh链接。

当然可以像下文那样改配置文件固定ip,不过存在隐藏问题。

如果是笔记本接校园网,你的网关将是变动的,不能定死

笔者更喜欢下文的host-only模式不继续深入讨论桥接模式。

配置VBox的网络(HostOnly)

VBox的配置

有了上述基础,我们就可以很好的理解与配置VBox的网络了。





IPv4的地址就相当于上述路由器的地址,是等一下我们linux里要配的网关地址。

DHCP服务器,相当于平时路由器给我们分配ip地址,192.168.1.X的由来。

可以看到我们挂在在这个“路由器”下的虚拟机的ip地址范围应该在(101-254)

服务器占用100地址,相当于上面的sugerqube提供服务的机子。

把虚拟机连上“VBox路由器”

启动配置Linux网络。

开机后使用ip addr查看ip,发现之前的100已经为我们分配了ip:192.168.137.120

但是此时的故名思议是host-only,我们的实机没有什么关系。

这里展示一个拓扑图:



所以很明显,现在我们的linux是不联网的。

想要联网,需要把VBox插到我们真机的路由器上,当然不是真的插网线 :)

真机的配置

从控制面板-》网络和Internet-》网络链接,蓝色的理解为“VBox路由器”,红色的理解为真机“路由器”



右键以太网属性





将他共享给VBox。

!!!!!!!!!

在电脑重启后共享极有可能失效,需要重新共享(VBox的bug)。

!!!!!!!!!

新的拓扑结构:



这时候就可以用我们的真机访问虚拟机了。





但是此时Linux还不能访问互联网,因为现在的Linux的网络配置是按照之前的拓扑图生成的。

这里我们手动改一下,顺便固定一下ip。

Centos配置

因为真机可以ping通linux所以我们可以上我的ssh工具。







注:bash窗口在手动关闭,物理通道断开,之前都可以保持链接,所以我们可以把ip改成其他,只是下次需要用新的ip连接。

配置文件地址/etc/sysconfig/network-scripts/ifcfg-enp0s3

因为是==只读文件==所以需要==权限==,在命令前加上sudo,或者切换为root用户。

使用命令

cd /etc/sysconfig/network-scripts/:移动到文件夹

sudo vi ifcfg-enp0s3:编辑文件

可以看到 BOOTPROTO 是 ‘dhcp’就是我们上面看到的100服务器,是由他分配的意思,我们改成static(静态)

然后我们再在文末添加我们需要的配置

IPADDR=192.168.137.120
GATEWAY=192.168.137.1
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8

解析:

gateway是网关,就是我们上面拓扑图看到的插的路由器,就是VBox的192.168.137.1

netmask是网络掩码,dns1和dns2,一般都是上述值,推荐自行深入了解。

注:vi编辑器,按i开始编辑,按输入wq保存退出

重置一下网卡

service network restart

可以看到现在已经可以顺利访问互联网了。

关于Nat转换网络

涉及比较多的深入计算机网络知识,

且主机无法访问虚拟机,不符合本文目标,有机会单开详解。

【Linux】(小白向)详解VirtualBox网络配置-配置Linux网络的更多相关文章

  1. Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

    Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...

  2. Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

    启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...

  3. Linux启动过程详解

    Linux启动过程详解 附上两张图,加深记忆 图1: 图2: 第一张图比较简洁明了,下面对第一张图的步骤进行详解: 加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的 ...

  4. 【转发】linux yum命令详解

    linux yum命令详解 yum(全 称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理, ...

  5. linux yum 命令 详解

    linux yum命令详解 yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能 ...

  6. Linux串口编程详解(转)

    串口本身,标准和硬件 † 串口是计算机上的串行通讯的物理接口.计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备.虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接 ...

  7. linux netstat 命令详解

    linux netstat 命令详解 1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表  接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所 ...

  8. SVN的Windows和Linux客户端操作详解

    SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...

  9. Java网络编程和NIO详解9:基于NIO的网络编程框架Netty

    Java网络编程和NIO详解9:基于NIO的网络编程框架Netty 转自https://sylvanassun.github.io/2017/11/30/2017-11-30-netty_introd ...

  10. (转)linux route命令详解

    linux route命令详解 原文:https://www.cnblogs.com/lpfuture/p/5857738.html   &&   http://blog.csdn.n ...

随机推荐

  1. 如何在 Net6.0 中对 WebAPI 进行 JWT 认证和授权

    一.简介 我们做微服务开发,或者说做分布式开发,有一项技术我们是避不开的,那就是WebAPI,在 Net6.0中,有两类 WebAPI,一类是极简 WebAPI,它砍掉了很多冗余的东西,更纯粹的是做 ...

  2. flutter系列之:创建一个内嵌的navigation

    目录 简介 搭建主Navigator 构建子路由 总结 简介 我们在flutter中可以使用Navigator.push或者Navigator.pushNamed方法来向Navigator中添加不同的 ...

  3. Python学习笔记--序列+集合+字典

    序列 切片:从一个序列中,取出一个子序列 注意: 案例: 实现: 集合 无序性.唯一性 添加新元素: .add 移除元素: .remove 随机取出某个元素: 清空集合: .clear 取两个集合的差 ...

  4. MyBatisPlus---DQL编程控制

    MP将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合. 一.条件查询 package com.itheima; import com.baomidou.mybatisplus.c ...

  5. Docke的使用与详解2 --RabbitMQ安装与使用

    一.RabbitMQ安装与使用 1.RabbitMQ安装 --RabbbitMQ官网 1>使用docker pull rabbitmq拉取镜像,默认拉取最新版本: 这时你会想,我要拉取指定版本该 ...

  6. swiper.js Bscroll 轮播

    <!-- 轮播banner图 --> <div class="banner"> <div class="swiper-container&q ...

  7. DSLinux介绍

    本发行版 名字叫 Damn Small Linux 整个磁盘大小是40多M, 相对于如今几十G起步的操作系统(对, 就是你Windows), 确实太tm小了 Kernel版本是2.4.26, 2004 ...

  8. R数据分析:生存分析的列线图的理解与绘制详细教程

    列线图作为一个非常简单明了的临床辅助决策工具,在临床中用的(发文章的)还是比较多的,尤其是肿瘤预后: Nomograms are widely used for cancer prognosis, p ...

  9. Install Ansible on CentOS 8

    环境准备: 1.至少俩台linux主机,一台是控制节点,一台是受控节点 2.控制节点和受控节点都需要安装Python36 3.控制节点需要安装ansible 4.控制节点需要获得受控节点的普通用户或r ...

  10. [软件测试] sonar 常见问题及修复思路【待完善】

    1 sonar 概述 sonar 是什么? Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. 与持续集成工具(例如 Hu ...