ANTLR4 教程 p1:概论
前言:ANTLR4 作为一个编译器前端的生成器,具有非常高的应用价值。可谓是编译器涉及领域少数必学工具之一。
今天以一个 demo 作为出发点,讲解 ANTLR4 的要点:
ANTLR4 是什么?
ANTLR4 怎么用?
ANTLR4 能做什么?
1. ANTLR4 是什么·
ANTLR 的全称是 ANother Tool for Language Recognition,官方定位为 Parser Generator,即解析器的生成器。很多计算机术语翻译成汉语就显得很奇怪,这或许也是汉语言文化没有孕育出自然科学的一大问题。解析器指的是对语言进行结构的工具,常见的目的是将语言拆分成多个相关的语素,一般的生成目标是 Parse Tree,即语法解析树。
1234565+6 ADD / \ / \ 5 6
比如,5+6 在人看来是一个普通的算术式,但是在计算机看来就是一个字符串。能否通过计算机将之解析成一种结构?如 加数, +, 被加数。答案很显然是可能的。
如果定义一种语言:任意组合的、带算术优先级的代数式。我们能否写出解析器?答案也是可行的。下面举几个这种语 ...
NFS 配置 p1:基于可信网络
前言:NFS 是一种文件系统级别的共享,在 UNIX/Linux 环境里应用非常广泛。
尽管 NFS 的配置在很多系统管理员眼里是非常简单的,但是常规的 NFS 简单配置并不能保证合理的用户认证、多用户识别。网上很多教程对 NFS fstab 表项的小参数也解释得不够清楚,本文尝试做一个较为深入的 NFS 教程。
服务端
TrueNAS SCALE
Debian 12
客户端
Debian 12
1. NFS 服务端配置·
在配置之前需说明,目前 NFS 没有很简便的认证、加密方案,本文介绍的 Kerberos 配置相对比较复杂。如果没有特殊需求,可以考虑使用 iSCSI 块网络存储、SMB 文件网络分享。
1.1 TrueNAS SCALE NFS 共享·
在一般存储网络中,NFS Server 都是由专业 NAS 系统担任。本节先以 TrueNAS SCALE 为例进行图形化的讲解。
1.1.1 配置 TrueNAS SCALE NFS 服务参数·
在 System Settings -> Services -> NFS 里,进行如下图的配置。
这 ...
iSCSI 配置
前言:iSCSI 作为最通用的块存储协议,在数据中心、计算集群里获得了广泛应用。
iSCSI 协议的配置比 NFS、SMB/Samba 等常见的文件共享协议要复杂很多,其中涉及到 target、initiator、session 等多个概念,本文尝试从服务端和客户端两个角度进行配置。
服务端
TrueNAS SCALE
Debian 12
客户端
Windows 10/Server
Debian 12
1. iSCSI 服务端配置·
iSCSI 的配置非常复杂,介绍复杂系统一般有两种写作方法。第一种是先介绍前置知识,然后介绍技术流程,第二种是在技术流程中随机插入需要的前置知识。前者体系性较好,但是容易让读者在阅读前期理解困难。后者从流程出发,故事线漂亮,但是缺乏对知识的梳理。本文采取第一种介绍流程。因此为了保证准确理解 iSCSI 服务端配置过程中的一些术语,我要对下面几个词组进行解释。
Portals
指的是存储区域网络(SAN)中的一个网络位置,由 IP 地址和 TCP 端口(一般是 3260)构成,可以把它想象成一扇门,后面是 initiator 可以连接 ...
深入理解 Python 虚拟环境
前言:Python 作为一个优秀的解释型语言,在各个计算机细分领域都有着广泛的运用。然而 Python 不同版本之间的细微不兼容性使得 Python 解释器、第三方库的管理变得很困难。
为了解决依赖问题,Python 社区发明了许多方法。本文从三个角度出发,试图解释清楚新手面对 Python 虚拟环境时经常遇到的困惑。
Python 虚拟环境是如何创建的
系统如何识别并套用某个虚拟环境
Python 虚拟环境有哪些实现且推荐使用哪个虚拟环境管理器
1. 如何理解 Python 虚拟环境·
现阶段有若干个 Python 虚拟环境生命周期管理方法,这里列举较为常用的两种:
conda
virtualenv
Python 虚拟环境(Isolated Environment)看似神秘,实则非常简单,它的存在依赖于两种 Linux 对象:
PATH 环境变量
独立的 Python 虚拟环境对应的目录
使用下列命令可以输出环境变量:
1echo $PATH | sed 's/:/\n/g' | sort
查看不同虚拟环境下 PATH 环境变量的差异。
fuzzw ...
查看硬盘 S.M.A.R.T. 温度
前言:在 TrueNAS SCALE 上面监控磁盘温度挺简单,但是批量查看磁盘温度操作颇为繁琐,本文提供一个相对简单的脚本,方便用户使用。
1. 确定磁盘入口·
在 Linux 系统中一切都是文件,因此独立的磁盘也被认为是文件。通过查看 /dev/disk/by-id 目录(下称 by-id 目录)可以知道目前接入了哪些物理磁盘。by-id 目录里的文件,大多以如下前缀命名:
nvme-,表明这是 NVMe 固态硬盘
ata-,表明这是 SATA 硬盘
scsi-,表明这是 SAS 硬盘
wwn-,World Wide Naming,一般用来给 SATA 和 SAS 硬盘取独立串号的时候使用。
/dev/disk/by-id 目录下存放的均是软链接,所有设备均指向 /dev 目录下的块设备描述文件。
注意,使用 CrystakDiskInfo 无法识别 SAS 硬盘。
2. 生成 Python3 脚本·
使用 Python 进行运维管理是非常方便的,因为 Python 的数据结构比较高级,因此编程时更符合人的逻辑思维。Bash/Zsh 的数据结构太过简陋,要实现较为复杂的逻辑只 ...
Linux zsh 配置
坑边闲话:Zsh 的配置笔者用了许多年,丰富的生态和现代化的配置,使得 Zsh 的体验非常良好。2023 国庆之后,我把 Zsh 的配置用模块化的方式重新维护了一遍,更加贴合日常习惯。本文介绍我的 Zshell 配置文件,重点讲解总体架构和设计思路。
毫无疑问,Bash 依旧是 linux shell 编程的首选。但是,Zsh 的强大生态和丰富插件却吸引了越来越多用户去使用。
选择 Shell 类语言进行编程不是个好的方案,因为它在流程控制方面有先天的弱势,计算能力更是趋近于无。在进行编程时,我习惯用 Python 编码,其中会调用短的系统命令完成任务执行,但是将流程控制交给 Python 解释器。因此对我而言,选择什么 Shell 不是难题,因为我不用 Shell 编程。
Shell 是用户与 Linux 内核进行交互的重要中间件,Shell 一般通过 exec 系列命令生成新的进程执行 shell script,进而完成用户的意图。Shell 程序可以从命令行中获取参数、命令,也可以通过 stdin (一般是文件)获取输入,两者在功能上是等价的。
Zsh、Bash 等,均是 ...
Windows Terminal 配置
坑边闲话:忆往昔岁月,不堪回首,伟大的 Windows 竟然拿不出一个像样的终端模拟器。mintty.exe 和封装后的 cmder 之流,总是有各种问题,而且不兼容 emoji 字符。后来,全网 Windows 用户随着一个华丽的广告沸腾了,微软宣布了终端软件 Windows Terminal 的开发进程,而且开源!如今,Windows Terminal 正式版已经陪伴我们走过了很长一段时间,其稳定性和易用性已经非常不错,关键是颜值相当高。如果你是一个追求完美与和谐的 User,那么请跟上我的步伐,我们重新起航!
知乎原文
重要提醒:本文的所有配置经过无数网友的多重考验,请勿在配置过程中突发奇想而走弯路,一定要认真阅读每一个段落、每一个句子!
1. 相关软件下载与安装·
为保证后续配置过程顺利,用户需要将所需要的软件、字体下载到本地。
1.1 Windows Terminal·
相信这一步对大多数人不构成任何困难,Microsoft Store 里搜索 App 名称并下载即可。
如果你下载的版本低于 v1.18,则需要到 GitHub 仓库下载最新的 Release 版 ...
TexLive 安装指南:实机版
坑边闲话:每年的清明时节,除了期待已久的假期,还有 TeXlive 套件的更新。今年(2023)的 3 月 11 日,texlive-2023 如期而至。为了书写简介,文中一律使用 texlive 作为标识符,而不采用 TeXLive 等 LaTeX 专有的表示方法。
知乎原文:
v2019.May.03
v2020.Apr.28
v2021.Apr.04
1. 下载镜像·
texlive 2023 的下载速度可以做到飞快,因为我们有国内镜像。所谓镜像,也就是 mirror,指的是国外网站的一个完整拷贝,这份拷贝被放在国内,服务于中国用户。笔者常用的镜像网站是清华大学的金枪鱼镜像网站,在该网站下,可通过 CTAN 条目找到具体的 iso 镜像下载地址。
点击上图中红框里的文件,或者将 HTTPS 链接复制到迅雷,即可满速下载。
2. 安装 texlive 2023·
略。
环境变量:
1234export MANPATH=/usr/local/texlive/2021/texmf-dist/doc/man:${MANPATH}export INFOP ...
使用 ebtables 接入 IPv6 公网
坑边闲话:细心的伙伴可能留意到,我删除了最近一期的视频。大家可能感到疑惑,毕竟标题非常炸裂,效果可以说是杀手级的。这里我解释一下。
哔哩哔哩原文
1. 视频下架的原因·
首先,这个视频里我的北邮人 ID 没有打码,违反了北邮人社区公约。其实主要是我懒,现在不像 2020 年初疫情在家那么闲,没时间对视频做剪辑,只能尽量用通俗易懂的话表达清楚,同时附上尽可能详尽的博客、视频描述。
其次,虽然通过 ebtables-legacy 命令在以太网层次实现校园网 IPv6 接入很棒,而且我已经用了一周多了,效果非常稳定。但是,这里面存在安全隐患。这相当于把外网接到内网里来,而且是利用了 IPv6 + IPv4 双栈分离的特性,所以 OpenWrt 的防火墙是拦不住的,所有的基于转发的过滤规则都不起作用。这必然给骇客攻击留下了后门,毕竟 LAN Zone 是我们的后花园,允许另一个属性的生物自由出入,肯定不是个好事情。虽然我现在还不清楚有什么隐患,但是我知道这并不是 Best Practice.
主要是因为第二点,我下架了视频。
2. 原教程指南·
如果你确实对校园网 IPv6 分配 ...
九评 iPhone 14 Pro
坑边闲话:手机这玩意儿太复杂,但是也太普通,所以我一般不会测评。今天简单谈谈换机的体验。
从 iPhone X 64G 银色升级到 iPhone 14 Pro 256G 银色。
1. 质感拉满的扬声器·
手机要实现立体声其实挺难的,毕竟下部的喇叭和顶部的喇叭尺寸一般不同,因此保持两个声道的响度一致是困难的。之前的 iPhone X 也算可以,但是 iPhone 14 Pro 有质的提升,声音非常饱满,个人已经听不出有什么不对称了。
在这种麦克风、扬声器领域,苹果的升级从来都是不可忽视的。
2. 灵动岛可能是最没有感受的变化·
灵动岛给人的感受像是过山车:
发布会的动画震撼世界:交互和硬件设计的完美结合
到手后:有点难看,阳光下容易看到“卸妆照”
用了一段时间:感觉貌似还行。
目前我觉得灵动岛基本没什么感知上的障碍,反而觉得一代刘海挺宽,影响左右两个小耳朵内的内容呈现。毕竟灵动岛处于手机上部,眼睛不会经常聚焦在这里。如果你仔细观察就会发现,自己注视的 main focus 是屏幕中间,上下边框的存在感挺低的。
不过能把刘海做窄确实是个大好事,交互上升级一下也很不错。看得出苹果在任 ...
西部数据 SN850X 缓存设计分析
坑边闲话:感觉这个 SN850X 的 SLC 策略挺有意思的。
老第一号哔哩哔哩视频
前两天研究了一下 ZFS 的 ARC 策略,它大体是这样的。ARC 原本是 IBM 的专利算法,后来被 ZFS 改进升级,能支持不同的 Block Size,而且 Cache 块指针的类型可以在 LRU 和 LFU 之间切换[1]。
西部数据这个挺有意思,感觉创新性很大。尽可能把数据驻留在 SLC 状态的闪存里会提升读取速度,毕竟 SLC 比较简单,译码的时候无须主控调动复杂的纠错码。但是到底要不要采用 ARC 机制就不好说了。ARC 是加速读取,用各种动态适应性算法保证 LFU 和 LRU 都能驻留在 Cache 里,而不是像传统算法那样只能保证其中一种的可用性。
不过话说回来,这个 SLC/TLC 之间的缓存策略挺复杂。ZFS ARC 仅仅是读缓存,ARC 失效不会影响到 data vdev 里的数据。但是固态里的 SLC 和 TLC 一般是没有包含关系的。SN850X 动不动就 850MB/s 的缓外可能就是这个地方没处理好,导致有些数据频繁在 SLC 和 TLC 里挪动,所以也有可能造 ...
雷电 4 时代的繁荣
坑边闲话:春节回家,仿佛与科技生活隔离了。不过趁着春节刚过去,赶紧给大家分析一下我的一些见解。此前我做过很多扩展坞的视频,今天打算简单说说选择雷电 4 扩展坞的一些细节。
哔哩哔哩原文
1. 明确 JHL7440 和 JHL8440 的差异·
从字面上看,JHL8440 是 JHL7440 的取代者,但是从支持的引脚端口上看,两者并不是简单的新旧版本升级关系。
从本质上看,雷电扩展坞的强大 USB 性能、UHS II 读卡器性能都是 USB 通道的特点,与雷电本身关系不大。一个 JHL7540/8540 控制器本身就提供一个完整的 USB 控制器,所以雷电接口上接入的 USB 设备能充分发挥应有的带宽。而某些纯 USB 的扩展坞因为上游的 USB 是来自南桥的集成控制器,所以性能稍微有点弱。
不太恰当地说,USB 扩展坞上的 USB 是南桥预留 hsio 来的,而 MacBook Pro 等电脑的雷电控制器里的 USB 是独立于南桥的,其上游带宽更充足。要高性能 USB 扩展而不需要雷电的朋友,可以买个 USB 3.2gen2x2 的扩展卡,直接插在直连 CPU 的 PCI ...
RTX 3090 PCIe 3.0 不同通道数量性能测试
坑边闲话:坑边闲话:快过年了,家里什么年货也没买,就剩一张 RTX3090 Vulcan OC,那么是插 PCIe 3.0 x8 好呢还是插 PCIe 3.0 x16 好呢?废话,有条件当然是插 PCIe 3.0 x16 咯。但是两者差别大吗?让我们一起来看看。
哔哩哔哩原文
作为一个 X299 的老用户,虽然我 PCIe 版本老,但是我通道数量多啊!M.2 扩展卡、U.2 扩展卡、显卡、万兆网卡、SAS-RAID 卡任君选择。
然而,事情的真相是主板的 PCIe slot 插槽数量、带宽分配方式都决定,你不能随便插。就比如我这个某嘉的主板有四条 PCIe 插槽,从上到下分别是
x16_A
x8_B(与 x16_B 共享带宽)
x16_B
x8_C
其中后缀为 B 的共享带宽,用 switch 芯片做切分,且 x16 的优先级更高。于是总带宽就是 16 + 16 + 8 + (4 + 4 两个 M.2) 共计 48 lane,正好全部利用到位。相邻插槽之间是两槽宽度。于是庞大的 3090 最好是插在 x16_A 上,这样你的 3090 会挡住 x8_B,但是 x16_B ...
Docker 容器技术 p1:安装与常用命令
坑边闲话:容器技术作为微服务的底层,现已融入到开发、部署里。在许多教学场景下,教师为了方便学生集中注意力于课程实质,一般会提供配置好的开发环境并打包为容器镜像,然后进行统一发布。容器的底层细节非常复杂,而且只有在 Linux 内核下才有较为良好的实现,macOS 等 UNIX 和 Windows NT 目前只能靠底层安装一个 Linux 虚拟机的形式提供容器服务。Linux 容器技术缩写为 LXC. 然而本文不尝试从容器技术的前世今生开始逐步探讨,而是试图提供一个快速上手的引导。
知乎原文
1. 安装容器系统组件·
Container 技术发展了这么多年,已经较为成熟。最初的容器技术是由 docker.io 这家公司搞出来的,后来诸多行业大佬发现这块蛋糕无比巨大,十分有必要把它从 Docker 公司手里抢过来。于是 EMC、Redhat 等大牌公司联合起来,搞了个开放容器组织 OCI,试图架空 docker 公司在容器技术上的话事人角色。另一方面,Docker 公司的 Docker 产品确实存在一些问题,比如需要一个 docker-daemon 守护进程,而且 docker 命 ...
雷电技术将何去何从
坑边闲话:纵论 Thunderbolt,老湿玩过的设备可能比大多数网友都多一些,玩过十来个扩展坞,硬盘盒也不计其数,显卡坞也玩过几个。但是 Thunderbolt 4 时代,可谓是市场乏力。今天老湿谈谈未来走向。先说明,这篇文章被打脸毫不意外,我在这里只是说说个人想法。
雷电 3 时代有很多出色的雷电设备,不计其数的硬盘盒,迭代了两种网络控制器的雷电 3 万兆网卡(最新的是 Aqc100 系列,支持 M1 Mac,老款芯片不支持),从单控制器到双雷电控制器的显卡坞。说句俗话就是雷电是个筐,什么都能往里装。
雷电转换成 PCIe 标准插槽之后,可不就是你想插入什么外设都可以吗,前提是你的电脑有驱动。我就见过有些人玩过雷电转 PCIe ,然后插一个双口的 HPE 544+FLR 40Gb 网卡。而雷电 3 采集卡(4K 60Hz 采集)等玩意儿也不新鲜了。
可以说雷电 3 时代的雷电外设市场是非常给力的!产品遍地开花,玩家不亦乐乎。
1. 雷电 3 末期,产品同质化严重·
在雷电外设遍地开花之后,很多小厂也入坑了。因为 intel 怕外设厂商设计能力不足,所以给出了不少参考设计,其中包 ...
IPv6 中继的正确姿势
坑边闲话:Moments: 这又是一个全新的系列,平时发的动态也挺老长,有字有图。不如多写点直接弄成一篇水的一笔的博客吧!
哔哩哔哩原文
在之前的小愿望 IPv6 DHCP 模式下,我想进所有办法让 OpenWrt 把 IPv6 relay 给弄起来了。尽管可用,但是并不好用。我的视频还吸引了好多小白入坑,实在是良心过意不去。当然,这一切的锅都要推给校园网工作人员技术不行。
今天我们看看家庭环境 PPPoE 的拨号上网是怎么搞定 IPv6 地址分发的。
其实这个真的很简单,我们要做的有两步:
在光猫里启用 IPv6,不管你光猫是拨号还是桥接模式,都可以选择启用 IPv6
在光猫桥接的情况下,我们直接在 OpenWrt WAN 口输入宽带账号密码,拨号成功后,自动生成 WAN_6 接口(DHCP 模式不会自动生成该接口),然后我们就可以愉快使用 IPv6 了。而且是每个设备都有一个 IPv6 公网地址,连你家的烤面包机都有。是不是很棒棒呢!
在光猫拨号的情况下,也不要担心。我们只需要设置一个 WAN6 接口,协议为 DHCPv6,然后在这个 WAN6 上配置中继,并设为 R ...
手把手教你 Linux 平台的路由表配置
坑边闲话:Windows 平台现在是两套命令控制体系,一套是向后兼容的 CMD 窗口,另一套是 PowerShell Core. 非 Core 版本的 PowerShell 我们今天不谈。与之类似,Linux 平台的网络命令也是分了两代,一代是 net-tools,另一代是 iproute2. 紧随时尚潮流的你,赶紧跟我学起 iproute2 命令套装!
哔哩哔哩原文
1. net-tools 已是烈士暮年·
首先来介绍一下老一代的 net-tools 套装。
net-tools 是一个程序的集合,专门为 Linux 系统实现,而且构成了 NET-3 网络的基础。
传统的 net-tools 具体包括以下的若干程序:
arp
hostname
ifconfig
netstat
rarp
route
plipconfig
slattach
mii-tool
iptunnel
ipmaddr
注意,OpenWrt 21.02 并没有囊括 net-tools 所有的命令,只有部分依旧比较常用的命令得到支持。比如 ifconfig,netstat,route,miit-tool 等 ...
手把手教你 Windows 平台的路由表配置
坑边闲话:讲真,Windows 是我最爱的系统,没有之一。有人问,你作为一个 Geek 竟然不爱 UNIX,这“河狸”吗?其实真的很合理。Windows 是我见过的设计得最精妙的系统,保持强大兼容性的同时,Server 版的稳定性也好得没话讲。所以我想聊聊 Windows 的网络配置。后期也有可能出几期用 Windows Server 2019 当软路由的教程。
哔哩哔哩原文
1. 前言:请抛弃 DOS·
现在 Windows10 系统依旧内置了一个 DOS 模拟器,而这也就是我们常说的 cmd.exe 程序。通过这个程序可以运行好多简单的网络命令,比如 ping、ipconfig 等。尽管看起来如此方便了,但是我们要明确,cmd.exe 早就老掉牙了~~
有更好、更新的东西等着它呢~~
记得我本科时有位哲学课老师说,“新的就是好的”。我当初很不理解这句话,觉得这也太古怪了吧?!新的东西可能兼容性不好,所以有可能出各种问题。后来我把这句话魔改为“新的稳定版就是好的”,至今我仍旧奉行这句话,所以一直都保持着对新鲜事物的热爱与探索。
废话不多说,直接开始上主题:如何用 Powers ...
Hyper-V 与 VMware Workstation Pro 虚拟交换级连
坑边闲话:在前作中,我描述了如何用 Hyper-V 替代 VMware Workstation Pro 来承载 OpenWrt 虚拟机,以实现 10Gb 万兆虚拟网络。效果确实很好,而且占用更少。然而在文章最后我也提到了,这种模式有一些弊端,那就是 OpenWrt 的代理无法给 VMware 的虚拟机用。这是因为这两套虚拟平台并不互通。加上 Hyper-V 的弱鸡 Linux 桌面,我们不得不考虑让 VMware 虚拟机利用 Hyper-V 里的 OpenWrt.
哔哩哔哩原文
其实这个问题很通用,往大了说就是如何在两套虚拟化平台间建立通信。
1. 背景知识·
首先要明白,开启了 Hyper-V 之后,你的 Windows 就不再是以前那个 Windows 了。有人说开启了 Hyper-V,你的电脑就变成了一个虚拟机,所以游戏性能什么的会大大下降。这么说也不全错,毕竟微软文档有提到过这个问题,特别是在外设的 I/O 速度方面,确实有这部分问题,但是也不至于“大大降低性能”。
注意
开启了 Hyper-V 之后,在 Windows 10 21H1 上还是可以用 VMware 的, ...
利用 Hyper-V 提升 OpenWrt 软路由性能
坑边闲话:L.L 系列是一个记录平时感想的专栏系列。内容可能不会很硬核,也不见得经过多方求证。不过可能会比较有意思。欢迎评论区讨论。在 BV1Hv411H7WS 这个视频里,老湿基详细介绍了在办公室台式机(单机)环境下,如何利用 OpenWrt 软路由实现网关模式流量代理。当时的配置环境是 VMware Workstation Pro 16. 在我看来,这个视频确实很有用,真正看过的小伙伴往往大呼 Wow Awesome!
哔哩哔哩原文
但是在 Wow 之后,我内心也有个小纠结的地方,那就是性能问题。VMware Workstation Pro 的宿主机虚拟网卡只有 100Mbps,这可太慢了。因为我们的流量是通过虚拟网卡出去的,所以这个 100Mbps 的数字就很让我担心。尽管事实比较令人放心,真实的网速能远远超过这个标称数值,但是我依旧怀疑这个虚拟网卡并不能跑满千兆。
今天我重装了 Windows 10. 新版 win10 的一大特性就是允许 Hyper-V 虚拟化与 VMware Workstation 同时启用。以前是必须二选一,现在终于能同时启用了。考虑到 Hyper ...
深入理解 VMware Workstation 虚拟网络:理论篇
坑边闲话:ESXi 的虚拟网络是非常符合现实世界的直觉的,相对而言,我本人认为 ESXi 的网络比 VMware Workstaion Pro 的网络要更加简单纯粹。但 VMware Workstaion Pro 因属于 Type-II 型虚拟机监视器,所以具有一些 ESXi 所提供不了的功能。此外 VMware Workstaion Pro 是在宿主机上运行,因此在某些个人 PC、工作站上也能发挥很好的功用。
知乎原文
这篇文章将详细介绍 VMware Workstaion Pro 16 的虚拟网络。
1. VMware 虚拟网络编辑器·
点击带有管理员权限图标的“更改设置”,即可看到当前的虚拟网络配置。
在 VMnet 信息中可以选择将选中的网络设置为三种类型:
桥接模式(Bridged Networking)
NAT 模式(Network Address Translation)
仅主机模式(Host-Only Networking)
关于这三种模式的官方介绍,参见:https://docs.vmware.com/en/VMware-Workstation-Pro ...
VMware ESXi 学习指南 p3:硬件直通
坑边闲话:虚拟机能利用通用计算的能力模拟出很多实机本身并不具备的硬件,比如通过软件实现一个万兆网络等。但是对虚机而言,某些场景不仅仅需要设备的完备,更需要硬件的高性能。在这种情况下,如果不能提供足够的的硬件性能损耗,那么用户可能不太乐意买单。在这种场景下,逐渐衍生出了硬件直通技术 Hardware Passthrough 和 SR-IOV 技术。
知乎原文
软件版本
本教程适用于 ESXi 7.0 和 8.0 版本。
1. 故事还得从图灵机开始说起·
阿兰·图灵在提出图灵机计算机模型时,解决了很多重要的问题。其中包括指明哪些问题是可计算的,哪些是计算机无法解决的。同时,图灵的《论可计算数》这篇文章还产生了很多推论,那就是有多条 Tape 的图灵机在计算能力上与单 tape 图灵机是一致的。这也就是说,哪怕你给最朴素的图灵机多加几个纸带,也顶多是提高计算效率,并不能让改进版机器解决先前机器所不能解决的问题。(这一段看不懂不要紧!)
上述一段话虽然太理论化,但是也是十分重要的。一般与学生打交道时,我会问他们一个问题:显卡是不是一个 Computer?同学们大致有以下几种结论。
...
VMware ESXi 学习指南 p2:虚拟网络
坑边闲话:虚拟机与实机在计算模型上是一致的,所以我们可以放心地把任务交给虚拟机做。但是,在设计虚拟机的托管平台时却需要考虑很多细节上的问题,比如存储、网络通信等。这是 ESXi 学习指南系列的第一篇正式文章,我们从网络虚拟化入手。
知乎原文
软件版本
本教程适用于 ESXi 7.0 和 8.0 版本。
1. ESXi 网络虚拟化概览·
在上图中可以看到,ESXi 的 Networking 分得很细,总共有如下选项:
Port groups,端口组
Virtual switches,虚拟交换机
Physical NICs,物理网卡
VMkernel NICs,虚拟机管控网卡(笔者自译)
TCP/IP stacks
Firewall rules
这六大部分的设计,借鉴了实体网络中的一些常见做法,下面我们一一道来。
1.1 虚拟交换机·
在非虚拟化环境下,如果我们有多台电脑想要彼此通信,那么最简单的方案就是买一个网口数量充分多的交换机,然后用这台交换机连接起我们所有的电脑;之后配置这些电脑的网卡 IP 在同一个交换域中,即可实现互联互通。如果仅有两台电脑 A 和 B,那么 A ...
OpenWrt 如何开启 IPv6 NAT
坑边闲话:IPv6 是一个很老但是又很新的技术,它已经发布很多很多年了,但是它至今没有完全普及。在某些 IPv4 地址特别多的发达国家,你甚至看不到 IPv6 的影子。而在另一些特殊场景,ISP 不愿意给用户分配 IPv6 前缀,而只是分配一个简单的 IPv6 地址。这导致内网里的 IPv6 分配出现麻烦。一种可行的解决方式就是对 IPv6 开 NAT. 然而,这并不是一个优美的做法。
知乎原文
1. 查询路由器的默认 IPv6 网关·
首先通过命令 ip -6 route 获取路由器的 default 网关,也就是你路由器的上一级路由器的地址,即下面的 fe80::7625:8aff:fe0e:b250 dev eth2.
123root@OpenWrt:~# ip -6 route | grep defaultdefault from 2400:dd01:103a:4008::/64 via fe80::7625:8aff:fe0e:b250 dev root@OpenWrt:~#
然后将上面查询得到的默认网关设置为当前 NAT6 模式下的默认网关。运行命令如下:
1rou ...
VMware ESXi 学习指南 p1:概论
坑边闲话:作为一个浸淫计算机世界多年的老萌新,经常产生现实世界与计算机世界的冲突感。有时把周遭环境弄得一团乱,此时就幻想能 Ctrl Z 回退一下。在现实世界中,这自然不太可能,在管理很多计算机设备、系统、软件的时候也很难做到。但是借助虚拟化技术,上述的“幻想”将变得很好操作,今天就让我们来探索一下虚拟化技术。
知乎原文
软件版本
本教程适用于 ESXi 7.0 和 8.0 版本。
VMware 是现在虚拟化技术做得比较好的公司之一,该公司有完整的一整套企业级云服务解决方案。但是直接上来就介绍 VMware 的各种产品未免有点打广告的嫌疑。本着授人以渔的思想,我准备先从管理(运维管理、个人计算机管理)中的痛点入手,然后顺着这条线讲讲为何要做虚拟化。
1. 告别管理的痛苦·
如果你对计算机比较熟悉,那么肯定遇到过以下这些问题:
P1: 计算机软件环境好不容易配置好了,然后一个错误操作导致环境崩溃了
P2: 多台计算机不方便集中管理
P3: 做工作需要多种计算机环境,这时候需要用双系统乃至多系统来解决;不差钱的话甚至可能已经动了买多台电脑的想法
针对上述的几个问题,大部分老鸟有以 ...