惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
量子位
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
Scott Helme
Scott Helme
A
About on SuperTechFans
博客园 - 司徒正美
Hacker News: Ask HN
Hacker News: Ask HN
The GitHub Blog
The GitHub Blog
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
S
Security Affairs
宝玉的分享
宝玉的分享

无妄当自持

在 RTX 4060 Laptop(8GB 显存)笔记本上部署 Qwen3.5-4B 和 Qwopus3.5-9B-Coder 的完整实战 给 Hermes Agent 接入 Sciverse:5 分钟搞定学术搜索 MCP MinerU:让 AI Agent 读懂 PDF 的文档提取利器 用 Firecrawl + SearXNG 给 Hermes Agent 搭建本地搜索与网页抓取 让服务器的 AI 读写你的 Obsidian 笔记库:从自建同步到 MCP 集成 在 RTX 4060 笔记本上运行 Qwen 3.5 9B:llama.cpp 本地部署实录 在 Fedora 44 上编译支持 CUDA 的 llama.cpp:完整指南 Hermes WebUI 安装与使用指南 Hermes Agent 使用实践:核心机制与命令技巧 小米 MiMo 模型本地部署实践:从选型到踩坑 介绍并初步使用 Hermes Agent Linux 下将浏览器缓存放到内存,并在登录登出时进行同步 Fedora 使用脚本配置国内镜像源 在 Fedora server 39 中纯手动部署 Nextcloud 使用 shell 脚本和 systemd 定时替换 Gnome 壁纸 Linux 下字体配置 在启用安全启动的 Fedora 中安装 Nvidia 驱动 曲登尼玛冰川 面向神经科学家的人工神经网络
设置 VirtualBox 虚拟机为静态 ip 以方便主机访问
insidentally · 2023-10-19 · via 无妄当自持

现在的 Virtualbox 支持无界面启动了,这时我们一般是在主机上直接用 ssh 访问虚拟机。但是如果主机经常使用不同的网络,IP 地址无法固定(比如主机是笔记本,经常往返于办公室和卧室),最终导致虚拟机的 IP 地址也经常变动,那无疑为我们用 ssh 访问虚拟机添加了许多麻烦。本文介绍如何使 Virtualbox 虚拟机的 IP 地址相对于主机固定的方法。

本文的主机为 Windows 11 系统,虚拟机软件为 VirtualBox 7.0,虚拟机系统为 Debian 13。正常情况下应该适用于所以操作系统。

网络连接种类

Virtualbox 网络连接方式有很多种选择,但是我们常用的是这是三个:

  1. 网络地址转换(NAT);
  2. 桥接网卡;
  3. 仅主机(Host-Only)网络。
Virtualbox 网络连接方式

每种网络连接有着自己的特点,下面列举下主要特点

模式名称 特点
网络地址转换(NAT) 连接这个网络可以访问外部网络,但是外部网络不可访问虚拟机
桥接网卡 这个网络完全可以共享主机网络,主机网络发生变化时,也跟随变化,IP 也随之变动
仅主机(Host-Only)网络 这个网络也可以用来主机访问虚拟机以及虚拟机上 Web 服务,但是虚拟机不可访问外网

选择网络连接方式

从上面的介绍来看有多种网络连接可以选择

最简单的就是选择桥接网卡,直接共享主机网络,主机、虚拟机之间访问都没有问题

但是我们家用或者公司使用,都不会固定 IP 的,主机随时变化,那么虚拟机的 IP 也随时变化,很不方便,我们希望虚拟机的 IP 是固定的,方便我们连接和访问服务使用

所以最终的选择是:网络地址转换(NAT) + 仅主机(Host-Only)网络的组合。

操作步骤

新增 仅主机(Host-Only)网络

在 Virtualbox 中依次选择:管理 => 工具 => 网络管理器

Virtualbox 网络管理器

点创建,仅主机(Host-Only)网络,在下面的网卡设置中选择手动配置网卡,填上你喜欢的 IP 地址和正确的子网掩码(本文选择的地址是192.168.56.1,子网掩码为255.255.255.0),最后点击应用。DHCP 服务器选择不启用。

然后就会在 Windows 主机的设置 => 网络和 Internet => 高级网络设置这里看到对应的网络:Virtualbox Host-Only Ethernet Adapter。

Virtualbox Host-Only Ethernet Adapter

这样主机(Host-Only)网络的 IP 就配置好了。

配置虚拟机网络

点击安装好的 Debian 虚拟机:设置 => 网络。

网卡1:启用网络连接,连接方式为网络地址转换(NAT)

网卡 1 配置

网卡2 启用网络连接,连接方式为仅主机(Host-Only)

网卡 2 配置

网络这里的网卡顺序也是有意义的,会对应虚拟机对两张网卡识别的顺序。

虚拟机内部设置

启动 Debian

执行

1
ip address

会看到类似于如下输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:6e:2d:62 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 77591sec preferred_lft 77591sec
inet6 fe80::a00:27ff:fe6e:2d62/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ad:06:3c brd ff:ff:ff:ff:ff:ff

可以看到网卡 1 被识别为 enp0s3,并且自动获取了 IP 地址,(这一般是安装系统时自动设置的,如果你没有自动设置,那还需要手动设置)。网卡 2 被识别为 enp0s8,当前没有 IP 地址。

我们需要手动编辑网络配置文件。网络配置文件一般为:/etc/network/interface。可以用你自己喜欢的编辑器来编辑这个文件。

可以按照下面的示例来编辑网络配置文件,要注意网卡 2(enp0s8)需要设置为 static,并且地址需要设置为上文主机(Host-Only)网络的同一个网段的 IP,且不能于主机(Host-Only)网络的地址相同。比如上文我们将主机(Host-Only)网络的 IP 设置为 192.168.56.1,那么此处我们可以将 address 设置为 192.168.56.2。并且需要注意,不要为网卡 2 设置网关gateway,否则虚拟机将不能联网。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface 网卡 1 的配置
allow-hotplug enp0s3
iface enp0s3 inet dhcp

# The second network interface 网卡 2 的配置
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.56.2
netmask 255.255.255.0

修改完毕之后,需要重新启动网路

1
systemctl restart network

到这里就可以执行 ip address 查看网卡情况,网卡 2(enp0s8)已经设置成固定 IP 了,同时 ping http://www.baidu.com也是可以联网的。

至此虚拟机设置完成,我们可以愉快的使用 ssh 管理我们的虚拟机了。