VyOS 入门指南:从概念认知到基础配置

一、 什么是 VyOS

1.1 VyOS简介

VyOS 是一个基于 Debian GNU/Linux 的开源网络操作系统。Debian GNU/Linux:"一个基于 Linux 内核,并使用 GNU 工具集来提供基础运行环境,由 Ian 和 Debra 发起的操作系统项目。

对比维度 硬路由(家用路由器) 软路由(VyOS、OpenWrt等)
硬件构成 一体机:CPU、内存、交换芯片都焊在一块主板上,高度集成。 组装机:CPU(通常x86)、内存、硬盘、网卡都是独立配件,像攒电脑一样。
核心芯片 使用 ASIC 或 NPU(专用硬件转发芯片),处理数据包极快。 使用通用 CPU(如Intel/AMD)进行软件运算,处理能力依赖CPU性能。
功耗与体积 低功耗、小体积(几瓦到十几瓦),通常无风扇静音。 功耗较高(几十瓦甚至上百瓦),体积较大,通常需要风扇散热。
功能扩展 封闭或半封闭,功能由厂商固件决定,刷第三方固件有变砖风险。 极其开放,基于Linux,你可以自由安装插件、脚本、甚至开发新功能。
性能瓶颈 小包转发性能极强,但受制于硬件规格(如并发连接数)。 大流量下载和BT多连接很强,但小包转发延迟略高于硬路由的专用芯片。
价格范围 从几十元到几千元,跨度大。 硬件成本取决于你选的配件,低成本玩家可以百元内搞定,发烧友可以上万。

1.2 VyOS下载

vyos 官网:https://docs.vyos.io/en

因稳定版注册用户的折腾,选择 vyos-nightly-build 每日构建版

github官网:https://github.com/vyo

因网络,最终选择:

社区下载站(立陶宛)https://community-downloads.vyos.dev/stream/2026.02/vyos-2026.02-generic-amd64.iso

VyOS 2026.02 系列是基于 Debian 的"Stable"分支,虚拟机里安装 vyos-2026.02-generic-amd64,

选择 Linux-Debian 12 (64-bit)。

  • 使用默认凭据(用户名:vyos,密码:vyos)登录 VyOS Live 系统。

  • 运行 install image 命令,并按照安装向导的提示完成操作。

从 ISO 镜像启动后,进入的是一个运行在内存中的、完整的 VyOS 系统。在这个环境里,所有的配置和操作都是临时的,一旦关机或重启,所有更改都会丢失

复制代码
// 安装到你指定的虚拟硬盘上
install image

二、基础配置

2.1 接口网卡简介

  • 配置(在 # 模式下)只管"设置成什么样"。

  • 状态(在 $ 模式下)只管"现在实际是什么样"。

javascript 复制代码
configure
//将当前配置加载到运行配置中,立即生效.系统重启,更改丢失
commit
//将当前的运行配置写入硬盘中的配置文件.重启后配置仍然保留。
save
查看内容 所需模式 命令
网卡的配置(IP、MTU等) 配置模式 (#) show interfaces ethernet eth0
网卡的 MAC 地址 配置模式 (#) show interfaces ethernet eth0 hw-id
网卡的物理状态(速率、双工) 操作模式 ($) show interfaces ethernet eth0 physical
网卡的实时运行状态(up/down、流量) 操作模式 ($) show interfaces ethernet eth0
javascript 复制代码
$show version 
$show interfaces
#show interfaces

看到 00:50:56 → 这是 VMware 的"基础设施",比如你在宿主机上看到的 VMnet 虚拟网卡。

看到 00:0c:29 → 这是一台虚拟机的网卡,比如你在 VyOS 里看到的 eth0

00:0c:29 分配给虚拟机的虚拟网卡

依靠 VMware 在宿主机上安装的虚拟网络服务 和 虚拟网卡 来实现。这些服务本身会被操作系统识别为"网络设备",自然也拥有自己的 MAC 地址.

VMware 自身的虚拟网络服务(虚拟交换机、NAT、DHCP 服务等)00:50:56

VyOS虚拟机 = 机房里的核心路由器 + 防火墙 + DHCP服务器 + DNS服务器==

在 VMware 中,vmnet8 (NAT模式) 其实是一个虚拟网络。为了让虚拟机能够访问外网,VMware 会在您的宿主机(Windows电脑)上模拟出一个虚拟路由器和交换机。这个虚拟路由器就充当了 DHCP 服务器和网关。

因为 VMware 默认的"仅主机模式"默认使用的是 VMnet1 网卡。

2.2 Interface Configuration

层面 状态 说明
VMware 硬件层面 ✅ 已连接 网卡已添加并设为桥接模式,虚拟链路已通。
VyOS 系统层面 ✅ 已识别 show interfaces 显示 eth0 存在且状态 u/u(已启动,链路已连接)。
VyOS 配置层面 ❌ 未配置 eth0 没有配置任何 IP 地址获取方式(既没设静态 IP,也没启用 DHCP)。

结论:虽然"网线"插好了、"交换机"也通了,但 VyOS 还没说"我要用 DHCP 去要地址"。

在 VyOS 终端中,进入配置模式并执行以下命令:

python 复制代码
configure
set interfaces ethernet eth0 address dhcp
commit

执行完 commit 后,稍等几秒,再运行 show interfaces,你应该就能看到 eth0 获得了 IP 地址。

当你进行了一系列修改,但发现思路错了或操作失误,决定不保存这些改动时,可以直接输入 discard

python 复制代码
exit discard

因自己是在虚拟机中的虚拟机实验,也就是嵌套虚拟化中,桥接模式会失效。大家可以尝试修改桥接模式后重新获取ip

python 复制代码
release dhcp interface eth0    # 释放当前 IP
renew dhcp interface eth0      # 重新获取 IP

物理网络

→ 宿主机 VMware NAT 网络 (网络段 192.168.10.0/24)

→ 第一层 VyOS 虚拟机 eth0 → 获得 IP 192.168.10.139

→ 第二层 VyOS 虚拟机 eth0 (WAN) → 作为 WAN 口

→ 第二层 VyOS 虚拟机 eth1 (LAN) → 配置为 192.168.0.1/24

→ 内网设备 (如 192.168.0.x)

添加网卡eth1

关闭 VyOS 虚拟机(不是重启,而是关机)。

在 VMware 中,右键点击 VyOS 虚拟机,选择 "设置"。

点击 "添加" 按钮,选择 "网络适配器",然后点击 "完成"

如果要让 eth1 作为内网 LAN 口,需要把它改为"仅主机模式"

  • 网络适配器 1 → 对应 VyOS 里的 eth0 → 连接方式可能为 NAT 或桥接。
  • 网络适配器 2 → 对应 VyOS 里的 eth1 → 连接方式通常设为"仅主机模式",以便与宿主机或其他虚拟机组成内网
python 复制代码
config
# 是在虚拟机中勾选的dhcp
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'OUTSIDE'
set interfaces ethernet eth1 address '192.168.0.1/24'
set interfaces ethernet eth1 description 'LAN'

当 VyOS 里的 eth0 设置为 dhcp 时,它会自动接收 VMware 的 DHCP 服务器发来的信息:

IP地址(比如 192.168.10.139)

默认网关(正是您看到的 192.168.10.2)

DNS服务器

取消了 VMware 的 DHCP,如果 VyOS 只用 set interfaces ethernet eth0 address '192.168.10.100/24' 配置了静态 IP,它只知道自己的门牌号,却不知道"出门找谁(网关)"

python 复制代码
# 可以ping 8.8.8.8
set protocols static route 0.0.0.0/0 next-hop '192.168.10.2'
# 可以ping www.baidu.com
set system name-server '8.8.8.8'
python 复制代码
# 查看 offload 状态
vyos@vyos:~$ show interfaces ethernet eth0 physical offload
vyos@vyos# show interfaces ethernet eth0 offload
vyos@vyos# set interfaces ethernet eth0 offload gro    # 开启 GRO
vyos@vyos# set interfaces ethernet eth0 offload tso    # 开启 TSO
vyos@vyos# delete interfaces ethernet eth0 offload tso # 关闭 TSO
vyos@vyos# commit
python 复制代码
# 系统显示的是硬件最大支持值:在 Ring parameters for eth0: 如4096
vyos@vyos:~$ show interfaces ethernet eth0 physical
# 你在配置模式中手动设定的值 (ring-buffer { rx 4095 })
vyos@vyos# set interfaces ethernet eth0 ring-buffer rx 4096

新增ubuntu虚拟机自动获取eth1的dhcp

  1. 查看当前生效的 DHCP 租约(看谁在用内网)
python 复制代码
show service dhcp-server leases

附:Ubuntu

Ubuntu 出于安全考虑的设计,如果你想使用 su - root,需要先为 root 账户设置一个密码

python 复制代码
sudo passwd root
#安装 SSH 服务端
# 更新软件包列表
sudo apt update
# 安装 OpenSSH 服务器
sudo apt install openssh-server -y
# 放行 SSH 服务
sudo ufw allow ssh
# 或者直接放行 22 端口
sudo ufw allow 22/tcp
# 重新加载防火墙规则
sudo ufw reload
# 本机测试 因是本机模式 者可以在vyos中ssh连接
ssh ubuntu@192.168.1.100

2.3 SSH Management

python 复制代码
config
//或set service ssh
set service ssh port '22'
commit

2.4 DHCP/DNS quick-start

python 复制代码
configure
# 1. 配置 DHCP 服务
# 网关(必须) 67 
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 default-router '192.168.0.1'
# DNS 服务 直接指给 8.8.8.8 比较方便,指给 VyOS 自己 192.168.0.1,需配置配置 DNS 转发 (必须)
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option name-server '192.168.0.1'
# 域名  只影响通过 DHCP 获取 IP 的内网客户端。它就像一个"标签",贴在每个从 VyOS 获取 IP 的设备上
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 domain-name 'vyos.net'
# 租约时间
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 lease '86400'
# 可分配的 IP 地址范围,range 0:只是一个编号,含义是"第一个地址池"
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 start '192.168.0.9'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 stop '192.168.0.254'
# 子网标识(必须)
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 subnet-id '1'

# 2. 配置 DNS 转发/递归服务 53
#允许所有在这个网段内的设备(即所有连接到 eth1 的内网主机)使用 VyOS 的 DNS 转发服务  '0.0.0.0/0' 所有接入这台 VyOS 的设备(包括 eth0 外面的设备)
set service dns forwarding allow-from '192.168.0.0/24'
set service dns forwarding listen-address '192.168.0.1'
# 递归模式name-server '127.0.0.1' 转发模式name-server '8.8.8.8'
# 使用自身作为递归解析器,也是VyOS 去互联网的"域名电话簿"里现查
set service dns forwarding name-server '127.0.0.1'   
# set service dns forwarding cache-size '10000',可以在隐私保护和查询效率之间取得更好的平衡
set service dns forwarding cache-size '0'

# 3. 提交并保存
commit
save

subnet 192.168.0.0/24 会自动匹配

  • The default gateway and DNS recursor address will be 192.168.0.1/24

    同一个 IP,不同的端口,提供了不同的服务就好比一栋大楼(IP 地址 192.168.0.1)里,既有前台(默认网关功能),也有咨询台(DNS 服务功能)。客户(内网设备)去同一个地址,但找的是不同的"部门"

  • The address range 192.168.0.2/24 - 192.168.0.8/24 will be reserved for static assignments

    设置 192.168.0.2 - 192.168.0.8 作为静态保留范围,是为了给网络里需要固定 IP 的重要设备预留空间

    因为网络里有些设备需要始终使用同一个 IP 地址,比如:你打算在这台 VyOS 上搭建的 VPN 服务器,需要被其他设备稳定访问的 文件服务器.

2.5 NAT

以下设置将为我们的内部/局域网(LAN)配置 SNAT(源网络地址转换)规则,允许内网主机通过 IP 伪装(IP masquerade)方式,经由外部/广域网(WAN)网络进行通信

python 复制代码
configure
set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 source address '192.168.0.0/24'
set nat source rule 100 translation address masquerade
commit
save

show nat source

ubuntu 中可以连接网

python 复制代码
ip a
ip route
sudo apt update
sudo apt install traceroute -y
traceroute www.baidu.com
相关推荐
瞬间记忆2 小时前
汽车CAN基础知识
网络
wusam2 小时前
计算机网络第二章习题解答
服务器·网络·计算机网络
制造业的搬运工2 小时前
车载 PCB 打样周期与选型指南:从 IATF 16949 到 IPC-6012 的 5 个硬指标
大数据·网络·人工智能·制造·pcb工艺
bksczm2 小时前
0基础面试2
网络·面试·职场和发展
wdfk_prog2 小时前
Wi-Fi Direct教程 02:从 wpa_cli main() 到 P2P_FIND——用源码注释追踪 CLI 控制命令发送
运维·服务器·网络·网络协议·ubuntu·p2p·wifi-direct
被摘下的星星3 小时前
HTTP 状态码 和 网络端口号
网络·网络协议·http
云边云科技_云网融合3 小时前
生物医疗跨院区影像与诊疗数据传输:高带宽与合规双重目标下的网络搭建指南
网络·科技
ESDWAN3 小时前
企业组网后网络频繁掉线,常见故障排查指南
运维·网络·架构
崽崽..4 小时前
大端存储和小端存储的区别以及与网络编程的联系
网络·大小端