我外表是胖,但内在的我是瘦的。你有没有想到过每个胖人的内部都有个瘦人,就像有人所说,每块石头里都有座雕像?
软路由是一台运行 OpenWrt 系统的主机,以软件的形式实现拨号、DHCP 等路由器功能。相较于「硬路由」,使用软路由的主要理由有:
1、可以更快更稳地科学上网,因为一个只处理网络相关的 Linux(OpenWrt 基于 Linux) 处理需要消耗 CPU 的运算(如科学上网中的加密解密过程)比其他设备做得更好。
2、有些设备需要科学上网的环境才能正常使用,如 Google Home,Android TV 等等。
这篇文章是群晖虚拟机运行 OpenWrt 作为主路由的步骤,这样做的好处是免去另外增添额外硬件。如果群晖只有一个网口,OpenWrt 只能以「旁路由」的方式运行,想以主路由的方式运行,建议群晖有两个物理网口。
网络连接建议
大多数光猫默认负责拨号,小弟建议改成桥接模式,不同光猫设置方法不尽相同,可以自行搜索方法,如果搞不定,可以像小弟一样到淘宝寻求办法。
建议软路由做主路由,硬理由以无线 AP 的模式运行,这样的好处是少了一层 NAT ,减少网络损耗,具体网络连接方式如下:
建立虚拟机
首先准备好软路由固件,固件可以自己编译(推荐用 Github Actions 编译),也可以使用别人编译好的固件。编译好的固件可以到恩山论坛 x86 系统区去找,有很多大大编译好的,比如小弟使用的这个。
注意:固件文件一般会有 combined 和 uefi-gpt 两种,前者支持 MBR 的分区表和 BIOS 系统,后者支持 GPT 分区表和 EFI 系统。我们这里选用 uefi-gpt 即可,下载的固件后缀名为「.gz」,需要解压成「.img」文件。
打开群晖「套件中心」,搜索「Virtual Machine Manager」,下载并安装,
打开 Virtual Machine Manager,在「网络」中添加两个网口,一个作为软路由 LAN 口(作为 DHCP 的网口),一个作为 WAN 口(连外网的网口),
最终添加两个网口,
在「映像」中选择「创建」,选择「从电脑上传」,上传后缀为「.img」的固件文件,
在「虚拟机」中选择「新建」→「导入」,选择刚刚的映像,
填入虚拟机名称,名字任意,如 openwrt,选择 CPU、内存(建议 1G 或以上)配置,点击「下一步」,
选择硬盘容量,最小是 10G,点击「下一步」,
点击「+」新增网口,注意 LAN(作为 DHCP 的网口)在上, WAN(连外网的网口)在下,点击「下一步」,
建议勾选「开机自启动」,点击「下一步」,
权限可以全部勾选,点击「下一步」,
确认配置,点击「完成」。
联网设置
配置网口
OpenWrt 模拟了一个管理地址 192.168.1.1 ,可能与我们的路由器或光猫冲突,我们需要先调整管理界面地址。
在「虚拟机」标签卡中找到刚刚建立的虚拟机,若未开机可以先开机,点击「连接」,
在新浏览器标签页可以看到 OpenWrt 运行的命令行,点击回车,看到 OpenWrt 的标志,之后输入vi /etc/config/network
,点击回车,
之后输入i
,进入编辑模式,找到「lan」,将地址改为其他未占用的 IP,如192.168.77.1
,之后按 esc 键退出编辑模式,之后重启虚拟机。
下一步将硬路由设置为 AP 模式,不同路由器设置方法不一样,若是华硕路由器可以下载 ASUS Router 这个 App 将路由器改为 AP 模式,
先将群晖关机,将一根网线一端插入 LAN 口(作为 DHCP 的网口),另一端插入路由器,之后将群晖开机,
电脑连接路由器的 WiFi,访问刚刚设定的 OpenWrt 的管理地址,如192.168.77.1
,输入密码(可以在固件介绍页找到),找到「网络」→「接口」,在 WAN 口点击「修改」,
设置连外网方式,如选择「PPPoE」,填入宽带账号、密码,
稍等片刻,应该可以联网了。
科学上网设置
OpenWrt 固件一般会内置不止一个科学上网工具,如 ShadowSocksR Plus+、PassWall、Hello World、OpenClash,填入节点信息即可,或者填入订阅地址。
其他
若群晖无法联网,可以这样修改,在「控制面板」中找到「网络」,在「常规」选项卡中修改网关地址,将 OpenWrt 的管理地址移到上面。
软路由设置
OpenWrt 功能很多,以下是几个常用功能的位置:
设置密码
在「系统」→「管理权」中可以修改登录密码。
端口转发
我们想在外网访问内网的服务或设备,可以使用「端口转发」功能,可以在「网络」→「防火墙」→「端口转发」中找到。
DNS 劫持
需要将特定域名跳转至特定地址,可以使用「DNS 劫持」,可以在「网络」→「主机名」找到。
管理 Openwrt
SSH 连接
OpenWrt 有内置终端机,在「系统」→「TTYD」可以找到。
STP 管理文件
在 STP 客户端,如 Transmit 中选择「STP」,填入 OpenWrt IP地址,用户名填「root」,之后就可以管理 OpenWrt 文件。
固件升级
OpenWrt 支持固件升级,若使用同一个作者编译的,可以保留配置,Web 页面升级 *.gz 文件无需解压,在「系统」→「备份/升级」中上传固件即可。