/

群晖虚拟机安装软路由

openwrt_cover

我外表是胖,但内在的我是瘦的。你有没有想到过每个胖人的内部都有个瘦人,就像有人所说,每块石头里都有座雕像?

软路由是一台运行 OpenWrt 系统的主机,以软件的形式实现拨号、DHCP 等路由器功能。相较于「硬路由」,使用软路由的主要理由有:

1、可以更快更稳地科学上网,因为一个只处理网络相关的 Linux(OpenWrt 基于 Linux) 处理需要消耗 CPU 的运算(如科学上网中的加密解密过程)比其他设备做得更好。

2、有些设备需要科学上网的环境才能正常使用,如 Google Home,Android TV 等等。

这篇文章是群晖虚拟机运行 OpenWrt 作为主路由的步骤,这样做的好处是免去另外增添额外硬件。如果群晖只有一个网口,OpenWrt 只能以「旁路由」的方式运行,想以主路由的方式运行,建议群晖有两个物理网口。

网络连接建议

大多数光猫默认负责拨号,小弟建议改成桥接模式,不同光猫设置方法不尽相同,可以自行搜索方法,如果搞不定,可以像小弟一样到淘宝寻求办法。

建议软路由做主路由,硬理由以无线 AP 的模式运行,这样的好处是少了一层 NAT ,减少网络损耗,具体网络连接方式如下:

openwrt1

建立虚拟机

首先准备好软路由固件,固件可以自己编译(推荐用 Github Actions 编译),也可以使用别人编译好的固件。编译好的固件可以到恩山论坛 x86 系统区去找,有很多大大编译好的,比如小弟使用的这个

注意:固件文件一般会有 combined 和 uefi-gpt 两种,前者支持 MBR 的分区表和 BIOS 系统,后者支持 GPT 分区表和 EFI 系统。我们这里选用 uefi-gpt 即可,下载的固件后缀名为「.gz」,需要解压成「.img」文件。

打开群晖「套件中心」,搜索「Virtual Machine Manager」,下载并安装,

openwrt2

打开 Virtual Machine Manager,在「网络」中添加两个网口,一个作为软路由 LAN 口(作为 DHCP 的网口),一个作为 WAN 口(连外网的网口),

openwrt3

最终添加两个网口,

openwrt4

在「映像」中选择「创建」,选择「从电脑上传」,上传后缀为「.img」的固件文件,

openwrt5

在「虚拟机」中选择「新建」→「导入」,选择刚刚的映像,

openwrt7

填入虚拟机名称,名字任意,如 openwrt,选择 CPU、内存(建议 1G 或以上)配置,点击「下一步」,

openwrt8

选择硬盘容量,最小是 10G,点击「下一步」,

openwrt9

点击「+」新增网口,注意 LAN(作为 DHCP 的网口)在上, WAN(连外网的网口)在下,点击「下一步」,

openwrt10

建议勾选「开机自启动」,点击「下一步」,

openwrt11

权限可以全部勾选,点击「下一步」,

openwrt12

确认配置,点击「完成」。

openwrt13

联网设置

配置网口

OpenWrt 模拟了一个管理地址 192.168.1.1 ,可能与我们的路由器或光猫冲突,我们需要先调整管理界面地址。

在「虚拟机」标签卡中找到刚刚建立的虚拟机,若未开机可以先开机,点击「连接」,

openwrt14

在新浏览器标签页可以看到 OpenWrt 运行的命令行,点击回车,看到 OpenWrt 的标志,之后输入vi /etc/config/network,点击回车,

openwrt15

之后输入i,进入编辑模式,找到「lan」,将地址改为其他未占用的 IP,如192.168.77.1,之后按 esc 键退出编辑模式,之后重启虚拟机。

openwrt16

下一步将硬路由设置为 AP 模式,不同路由器设置方法不一样,若是华硕路由器可以下载 ASUS Router 这个 App 将路由器改为 AP 模式,

openwrt17

先将群晖关机,将一根网线一端插入 LAN 口(作为 DHCP 的网口),另一端插入路由器,之后将群晖开机,

电脑连接路由器的 WiFi,访问刚刚设定的 OpenWrt 的管理地址,如192.168.77.1,输入密码(可以在固件介绍页找到),找到「网络」→「接口」,在 WAN 口点击「修改」,

openwrt18

设置连外网方式,如选择「PPPoE」,填入宽带账号、密码,

openwrt19

稍等片刻,应该可以联网了。

科学上网设置

OpenWrt 固件一般会内置不止一个科学上网工具,如 ShadowSocksR Plus+、PassWall、Hello World、OpenClash,填入节点信息即可,或者填入订阅地址。

openwrt20

其他

若群晖无法联网,可以这样修改,在「控制面板」中找到「网络」,在「常规」选项卡中修改网关地址,将 OpenWrt 的管理地址移到上面。

openwrt21

软路由设置

OpenWrt 功能很多,以下是几个常用功能的位置:

设置密码

在「系统」→「管理权」中可以修改登录密码。

openwrt22

端口转发

我们想在外网访问内网的服务或设备,可以使用「端口转发」功能,可以在「网络」→「防火墙」→「端口转发」中找到。

openwrt23

DNS 劫持

需要将特定域名跳转至特定地址,可以使用「DNS 劫持」,可以在「网络」→「主机名」找到。

openwrt24

管理 Openwrt

SSH 连接

OpenWrt 有内置终端机,在「系统」→「TTYD」可以找到。

openwrt25

STP 管理文件

在 STP 客户端,如 Transmit 中选择「STP」,填入 OpenWrt IP地址,用户名填「root」,之后就可以管理 OpenWrt 文件。

openwrt27

固件升级

OpenWrt 支持固件升级,若使用同一个作者编译的,可以保留配置,Web 页面升级 *.gz 文件无需解压,在「系统」→「备份/升级」中上传固件即可。

openwrt26