技术点滴 / 黑群晖 · 2024年5月8日 0

群晖 NAS 安装 OpenWRT 软路由实现科学上网

软路由(Software Router)是一种通过软件来实现路由功能的设备,它通常运行在通用的硬件平台上,比如个人电脑或者服务器。软路由的关键在于其软件,这类软件能够在标准的硬件上模拟传统硬件路由器的功能。使用软路由,用户可以通过安装特定的操作系统或软件,将普通的硬件设备转变为功能强大的网络路由器。

硬路由(Hardware Router),或称为硬件路由器,是专门为网络数据包的路由而设计的物理设备。它通常包括专用的处理器(如ASIC)、内存和网络接口,以及预装的路由管理软件。硬路由器专为处理网络流量而优化,能够提供高效稳定的网络服务。

软路由与硬路由的主要差异包括:

  1. 性能和稳定性
    • 硬路由:由于是专为网络路由设计的,因此在网络数据处理、稳定性和可靠性方面通常比软路由表现更好。
    • 软路由:虽然在功能上可以与硬路由相媲美,但性能和稳定性可能受到运行软路由的硬件平台的限制。
  2. 灵活性和扩展性
    • 硬路由:功能和性能在制造时已基本固定,后续扩展和升级可能有限。
    • 软路由:由于是基于软件的,可以通过升级软件或改善硬件配置来增强功能和处理能力,灵活性较高。
  3. 成本
    • 硬路由:通常价格较高,尤其是企业级的产品。
    • 软路由:可以使用现有的或低成本硬件,自行安装和配置软件,初期投资相对较低。
  4. 部署和管理
    • 硬路由:通常比较即插即用,少量配置后即可运行。
    • 软路由:需要用户具备一定的技术知识来安装操作系统和配置网络。
  5. 适用场景
    • 硬路由:适合对网络性能、稳定性有较高需求的环境,如大型企业、数据中心。
    • 软路由:适合技术爱好者、小型企业或实验性项目,也适用于需要高度定制化的场景。

总体来说,选择软路由还是硬路由取决于用户的具体需求、预算以及对性能的期待。软路由提供了更多的灵活性和成本效益,而硬路由则提供了更高的性能和可靠性。

软路由方案的选择

软路由的选择方案主要依赖于你希望实现的功能、预算、以及对性能的需求。下面介绍一些常见的软路由解决方案,以及相应的操作系统和软件:

1. 开源软路由系统

pfSense

  • 特点:基于 FreeBSD,功能全面,包括防火墙、VPN、负载均衡等。
  • 适用场景:适合中小企业和技术爱好者,可运行在旧电脑或专门的小型服务器上。

OPNsense

  • 特点:也是基于 FreeBSD,与 pfSense 类似,但界面更现代,注重安全性和透明性。
  • 适用场景:同样适合中小企业和技术爱好者,强调易用性和安全更新。

OpenWRT

  • 特点:适用于各种型号的路由器和嵌入式设备,非常轻量级。
  • 适用场景:非常适合在家庭环境或小型办公室中使用,特别是对旧路由器的复用。

VyOS

  • 特点:基于 Debian,是一个网络操作系统,包括路由、防火墙和VPN功能。
  • 适用场景:适合较为复杂的网络环境,需要较高定制性和稳定性。

2. 商业软路由解决方案

Cisco IOS XE

  • 特点:Cisco 的一种高级路由操作系统,提供丰富的网络功能。
  • 适用场景:适合大型企业和复杂的网络需求,需要高度可靠的网络设备。

Juniper vSRX

  • 特点:Juniper 网络的虚拟防火墙产品,提供高性能网络安全服务。
  • 适用场景:适合需要严格安全控制的企业网络环境。

3. 自定义软路由解决方案

基于 Linux 的自定义系统

  • 特点:可以使用 Linux 系统(如 Ubuntu, CentOS)配合 iptables、Quagga、BIRD 等软件自行搭建软路由。
  • 适用场景:适合高度技术化的用户或组织,需要定制特定功能或实验性网络项目。

本文选取 OpenWRT 开源软件作为软路由方案,详细介绍如何在群晖 NAS 上搭建自己的软路由方案实现科学上网。

安装 OpenWRT

OpenWRT是免费开源的软路由系统,原生的OpenWRT基本都是源码,想要直接使用还需要自己会编译,过程相对较复杂,需要一定的 Linux 系统和编程的专业知识。在这里我们直接使用一些靠谱的大佬编译好的我们可以直接使用的openWRT软路由系统。目前各式各样的OpenWRT软路由系统固件也有很多,最终我只选定了一位大佬(eSir)编译的openWRT系统固件,我用过很长时间了,固件稳定,并且更新还很迅速。国内也有很多其它的版本,但是安全性未知,目前不太建议。

1. 下载 OpenWRT

eSir 版本的OpenWRT 可以从 Google Drive 下载。

eSir 的openWRT是基于 Lean 大神的源码编译的,共分为四个版本:

  • 佛跳墙版本:集成插件最少的一个版本,适合单网口的旁路由设备,只是做一些简单上网加密解密的业务
  • 高大全版本:集成插件最多的一个版本,适合不太会自己装插件的朋友,需要使用直接菜单中启用即可,比较方便
  • 精品小包版本:集成插件适中的一个版本,常用插件都有,后续可能还需要自己折腾
  • 服务器版:顾名思义,服务器用户使用的,我们家庭用户一般用不到

以上几个版本怎么选择需要根据自己的需求,我个人是直接选择高大全版本,毕竟再到openWRT上安装腾插件又是一件费时又费力的工作,懒得折腾了。直接选择最新的 V1 [2024] 版本。

这个目录下面有两个 .gz 文件,分别是 openwrt-gdq-v1[2024]-x86-64-generic-squashfs-uefi.img.gz (UEFI BIOS版本)和 openwrt-gdq-v1[2024]-x86-64-generic-squashfs-legacy.img.gz (Legacy BIOS 版本),按照自己的实际需求下载。如果搞不清楚就直接下载 legacy BIOS 版本。

下载 .gz 文件后解压缩,得到一个 .img 文件。这个文件就是我们要使用到的 OpenWRT 镜像。

2. 安装 OpenWRT

首先需要安装群晖虚拟机套件。群晖的虚拟机套件是名称叫做Virtual Machine Manager (简称VMM) ,直接在群晖的套件中心即可下载。

下载安装好VMM之后打开它,选择“映像–硬盘映像–新增–从计算机”。

然后选中我们上面下载到电脑上的openWRT固件文件。然后这里会提示名称无效,因为它的文件名里有中括号[],改一下文件名删除其中的中括号即可。

点击“下一步”。

点击”完成“。

硬盘映像成功创建后状态会显示“良好”。“openwrt-gdq-v1[2024]-x86-64-generic-squashfs-legacy”就是我们刚才创建的硬盘映像。

选择“虚拟机–新增–导入”。

选择“从磁盘映像导入”,然后“下一步”。

选择一个存储空间,然后点击“下一步”。

输入虚拟机名称,设置CPU和内存容量,其它保持缺省,点击“下一步”。

选择“openwrt-gdq-v1[2024]-x86-64-generic-squashfs-legacy”(选好后容量会自动设置),点击“下一步”。

在配置网络页面点击小齿轮进入网络配置。

网卡型号选择“e1000”,点击“确定”。这步的作用主要是确定我们虚拟的软路由的工作模式是“全双工”或者“半双工”,全双工的优势明显,默认的是半双工,所以我们这里需要更改一下即可。

其它设置这里设置自动启动为“是”,其它保持缺省,点击“下一步”。

然后分配权限,选择自己的群晖NAS管理员账户即可,不知道的直接全选吧!然后点击“下一步”。

点击“完成”创建虚拟机。

3. 配置 OpenWRT

选中刚才创建的虚拟机,然后点击“开机”。(我这里已经开机了,所以“开机”菜单是灰色的)

点击“连接”按钮。

出现如下的界面的时候,按电脑的“回车”键进入OpenWRT shell。

先运行 passwd 命令更改 root 用户的密码。

passwd

然后输入如下的命令行进行网络配置:

vi /etc/config/network

将 “lan” 里面的 ipaddr,gateway 和 dns 更改为自己的配置。不会使用 vi 的同学可以自行百度一下。

修改完成后保存并退出 vi,然后输入 reboot 命令重新启动 OpenWRT。

reboot

打开浏览器,访问 http://openwrt_ip。openwrt_ip 是刚才在 /etc/config/network 文件里设置的 ipaddr。出现如下的登录界面:

输入用户名 root,密码则是刚才 passwd 命令更改的密码,然后点击“登录”,就进入 OpenWRT 的主界面。

首先确认网络接口显示“全双工”,说明前面的设置都正确了。接下来继续配置 OpenWRT。

软路由安装好之后并不能直接使用,还得进行一些必要设置。因为我这台黑群晖有四个网口,所以它在软路由的功能上有两种选择:主路由或者旁路由。

当作主路由使用我们可以直接用它连接光猫拨号上网(前提是光猫桥接模式),家里的无线路由器充当AP发射WIFI无线信号即可。当作旁路由还是路由器拨号上网,然后我们上网终端的网关指定到我们配置好的软路由中即可。

我个人是不建议将NAS中虚拟机中的软路由当作主路由使用,因为NAS只要出现问题,家里的网也跟着出现问题,非常的麻烦!并且我自己用的路由器已经是很不错了,所以我建议这里将它设置为旁路由,当作主路由的BUFF加成就可以达到我们的需求了。

不过旁路由又有两种选择,这两种选择的区别在于DHCP的分配权,并且二者只能取一,否则又会出现网络问题~~

  • 1,路由器分配DHCP:需要使用软路由功能的设备终端需要手动指定到软路由
  • 2,软路由分配DHCP:开启之后默认所有联网设备都直接使用软路由的功能

我偏向于第一种选择,因为我们关闭软路由的DHCP之后,我们可以直接在路由器上设置所有联网设备指向软路由,也可以设置只有需要软路由功能的设备指向软路由,不需要软路由功能的可以直连路由器,这样的好处是更灵活,利于管理网络。

打开我们创建好的OpenWrt 软路由管理后台,找到“网络–接口–LAN”后面的“修改”按钮。

在“基本设置”里,需要更改的设置如下:

  • 协议:静态地址
  • IPv4地址:虚拟机软路由openWRT的IP地址
  • IPv4子网掩码:默认的255.255.255.0即可
  • IPv4网关:主路由器的IP地址(也就是家里主路由器的内网IP)
  • 使用自定义的DNS服务器:同上,也是主路由器的IP地址,我这里还添加了一个8.8.8.8的谷歌DNS,大家根据自己的情况吧

这里要注意 DHCP 服务器的配置。这里勾选了就表示是主路由分配DHCP,这里不勾选就需要在主路由中关闭DHCP。因为我需要主路由器分配DHCP,所以这里必须勾选“忽略此接口”,完成之后点击右下角的“保存并应用”。

然后再次点击LAN口“修改”页面,在“基础设置”页面下方点击”IPv6设置“,然后把按照上图一样,把红色方框里面的选项全部设置为”停用“。

然后在“物理设置”这里,取消勾选“桥接接口”,最后再点击右下角的“保存并应用”即可,到这里OpenWrt 软路由基本算是设置完成了。

最后我们也可以在“诊断”里面看一下我们设置好之后的网络有没有问题。如果能“Ping”通,就说明我们的设置没有问题。

最后就是看我们的需求。如果需要全屋设备都使用软路由的某些功能,我们只需要对路由器进行设置。以华硕路由器为例,进入路由器的后台,我们选择“内部网络–DHCP服务器”,然后“默认网关”和“DNS服务器”这两个地方全部改成OpenWrt 软路由的IP地址!,最后点击路由器的“保存或者应用”即可!

如果说你只需要特定的设备端使用软路由的功能,路由器中的设置不用动!我们只需要将该设备的DNS服务器手动指向OpenWrt 软路由的IP地址即可!上图是局域网内电脑的设置方法。在“网络连接”里面,点击我们使用中的网络“属性–IPv4–属性”,首选DNS服务器直接改即可。

4. 配置 OpenWRT 科学上网

进入“服务-PassWall”配置节点。

点击“节点列表”,添加自己的机场节点。

添加完成后,进入“基本设置”,选择使用自己的机场节点,然后点击“保存&应用”。

点击“谷歌连接”和“GitHub连接”下面的“点我检测”,如果连接成功则会出现连接的时间,这表示节点设置成功,可以开始科学上网了。