注:转载请注明出处,以下内容均为个人总结,不保证百分百正确性和完整性,请酌情参考

image_1dh68qqed164p1os614cf1p091o2m9.png-312.1kB

在“为什么家里要有公网IP”一文中已经简要的说明了一下网络环境对于NAS的重要性,这里专门就此问题展开讨论。

首要任务

首先要确定自己宽带是否具备公网IP(已办用户),一般情况下,按网络的接入情况,可将家庭网路(宽带业务)分为三种:

  • 入户即为局域网IP

    • 区分:路由器配置页面中,WAN口IP地址是局域网IP,例如192.168开头、10.XX开头等等
    • 判定:直接在百度搜索上述IP地址,公网IP会有详细的运营商等信息,局域网IP的搜索结果则没有有效信息;或者电询运营商。
    • 特点:向外访问一切正常,但向内访问无法完成,即该类型的IP无法直接在公网访问,需通过FRP(内网穿透)来中转连接,无法直连。
  • 入户为专线(静态公网IP)

    • 区分:路由器WAN口的地址非局域网特征的IP
    • 判定:直接搜索会有明确的运行商名称、及大概的地理位置
    • 特点:公网环境向内访问可实现,直接访问IP即可,由于IP固定,所以只需简单的采用DNS映射就可以满足绝大多数场景
  • 入户为动态公网IP

    • 区分:同上
    • 判定:同上
    • 特点:不定期的动态变更IP地址,但在非变更期间内,其所有特征同静态公网IP一致,但由于IP动态更新,所以通过IP直连的方式不可取(单次可直连但变更后无法追踪),所以一般需要采用DDNS(动态域名服务)来绑定动态IP,其和DNS的区别就是一个解析静态IP一个解析动态IP,对用户使用来说均是透明的,做完映射解析后,在公网环境中访问域名即可,动态变化的IP由DDNS负责动态绑定。

次要任务

公网IP是第一重要的,这是硬性条件,除此之外,为了获得更好的使用体验,还还需考虑:

  • 上行、下行的带宽大小
    与所办宽带的业务直接相关,对于我们将要使用的若干功能(在前一篇文中提及的),都要有较大下行带宽的前提下,具备足够的上行带宽,个人意见上行 >20Mbps 下行 >50Mbps 方可流畅使用各功能。

  • 路由器中转后的带宽损失

    • 原因:随着带宽的变大,一般低端路由的处理芯片便会出现吃力的情况,加之长期高温会进一步降低处理器的处理性能,所以建议 200M 带宽以上的用户使用中高端路由,或使用处理性能更强的处理器,目前多是直接使用研凌等品牌的工控机或者Intel的NUC微型计算机来做软路由。
    • 判定:找到良好的下载资源(不要仅看网速测试),用迅雷等软件下载进行实测,看一段时间内的下载速度的波动和速度值是否匹配带宽。
    • 改善:如若确定路由器是瓶颈,那就需要升级路由器,中高端硬路由性价比没什么优势,推荐使用软路由,即将工控机装入路由系统,从而使其充当路由器,一般软路由主板的处理器性能要比中端路由器强许多,例如J1900或更强大的i5 7200U,要比 网件R7000 的博通BCM4709A双核处理器若干倍了。

对接配置

在确认具备公网IP的环境之后,要想将内部的原有服务及应用暴露在公网内,还需两步设置,即 DDNS 和 端口映射,二者缺一不可(对于动态公网IP来说)。

  • DDNS
    一般直接去阿里云就有DDNS服务,但其实群晖也好、网件的路由器也好,都已经提供了相应的 DDNS 服务,例如群晖内的“外部访问”页面可以配置 DDNS,对于硬路由 R7000(实际是梅林固件的作用)来说,其也提供 DDNS 服务,实测后者较好,目前使用的是 xxx.asuscomm.com,配置完之后,对公网环境来说,只需访问该域名就可以访问到真实的物理IP,但像群晖提供的各种功能均在路由器下级,正常以“内网IP+端口号”的形式进行访问,现在 xxx.asuscomm.com 仅仅访问到了路由器,之后还需要路由器的端口映射,来指导具体的请求流向。

  • 端口映射
    正常的端口有 0-65535 这么多,除了已被占用的端口和保留端口,以及被封禁的 80/443 端口,还有上万个自定义端口可以使用,即路由器可以事先约定:凡是公网的用户访问 xxx.asuscomm.com:5000,那么就转到 群晖内网IP:5000,默认DSM的端口是5000,即原来在内网环境中通过 群晖内网IP:5000 来访问DSM,但现在可以在公网环境中通过 xxx.asuscomm.com:5000 来访问,唯一的不同就是多了一步“约定”,而这个约定,就是一张端口映射表,将向内的访问分发到不同的内部网址+端口号,从而完成内部应用的“暴露”。
    注意:通常路由器的端口映射部分还有个 DMZ主机 选项,可以将一台内部电脑的全部端口暴露在公网内,在某些情况下适用,但在家用环境中这是十分危险的,可以给恶意攻击者当做跳板进而攻击内网设备,所以尽量适用手动配置端口映射,避免使用 DMS主机。

软路由的作用及使用

有机会单独成文介绍,下面简要说一下软路由在整个家庭网络环境中的作用。(注意,当软路由接管整个家庭网络之后,原先的硬路由一般会充当 AP 进行使用,只负担 WIFI 功能,所以对应的 DDNS 和 端口映射的位置要调整,使安装情况来看是在 LEDE 还是 iKuai 中配置)

  • 基础:如前所示,软路由的使用者一般是不希望路由成为整个网络环境的瓶颈,而事实是软路由确实做得不错。开源的路由系统Openwrt目前已经拥有了活跃的社区,衍生出了若干版本,LEDE便是其中之一;此外,还有商业化十分成功的iKuai,以及海蜘蛛、高恪等等。目前主要使用LEDE+iKuai。

    • LEDE:作为Openwrt的发行版之一,其拥有丰富的插件系统,可以允许用户安装ad屏蔽、出国留学等插件,从而路由器端进行过滤或代理,十分强大有效;其他还有许多功能,但出国留学是其特色和优势。
    • iKuai:商业化公司提供的免费版本,UI十分精美,负载均衡和单线多拨是其特色和优势。单线多拨需要特别说明,其可实现宽带叠加的效果(宽带运营商未屏蔽该操作的前提下),例如 200M 在三拨的情况下理论可达 600Mbps 的带宽。
  • 扩展:诸如 i5 7200U 这样的路由器,直接安装 LEDE 这样的路由系统是在是对处理能力的浪费,所以,为了具有更多的可扩展性,通常是在工控机上安装 ESXi (或KVM等其他虚拟化系统)系统,各路由系统退化一级,作为ESXi的一个虚拟机运行,如此,便可以有更佳灵活的路由组织方式:双软路由

    • 双软路由

      • 概念:由于目前各软路由系统分属不同的社群或公司,各自独立的发展导致目前不存在完美涵盖各种功能的路由系统,各系统各有所长,所以,在使用时可以结合使用,由于采用虚拟机方式安装,对于 主路由 和 旁路由 的物理区分不复存在,有的只是逻辑上的主次,有关于物理网口和虚拟网口的映射,以后单独讲解。需要注意的是,网卡直通对于虚拟机安装软路由系统是非常重要的,直通后基本不存在带宽损失。
      • 搭配:本着取长补短的原则,目前采用的是比较成熟的方案之一,即使用 LEDE 做旁路路由,为的是其留学及禁广告插件;使用 iKuai 做主路由,为的是其 单线多拨 及可能用到的流控功能。虽然双软路由配置繁琐,但配置完成后基本无需改动,且能最大化的利用各系统的优势,提升网络使用体验。
    • 其他虚拟机
      本质上,ESXi同桌面版的VMware是一个东西,即都可以虚拟出各种设备来安装各镜像文件,所以,在ESXi中支持安装Windows、Linux、Mac等等系统,且对于7200U来说,其本身双路由仍然是性能过剩的,这就允许我们可以安装更多的虚拟机来满足我们的需求,唯一需要注意的就是工控机上的内存要大一些,一般16G比较好。所以,重要的不是能不能安装,而是装了有什么用:

      • Windows7:安装一个纯净版Win7可以满足大部分 挂机需求,例如直接迅雷挂机下载,或者是淘宝助手等需要挂机运行的软件,此外,Win7用作HTPC也不错,搭配 PLEX Server 可以摇身一变变为影音中心,从而充分利用7200U的性能进行编解码。总之,这就相当于一个免费的物理云主机,且硬盘够大、带宽够大、无流量限制,想想阿里云的相同配置的独立云主机,估计要 > 1000 RMB/年 了。
      • Ubuntu:作为Linux系统的一种,其桌面操作性十分舒适,如果性能捉急,可以安装CentOS等Linux系统。对于Linux系统来说,可做的事情也非常多,比如搭建Gitlab、Web环境、搭建图床、编译软件等等作用,同样地,这也算一个配置超级豪华的独立云主机,如果买阿里云的,那估计要吃土了。
      • 其他:目前只装了上述虚拟机,下一步想探索的是 Xmbcbuntu 系统,作为Kodi的主系统,不知其流媒体处理能力如何,准备安装一试。

附:当前设备清单

  • 安装设备:YANLING-SKUL6, 2 × i5-7200U 2.5GHz, 16GB RAM, 500GB SSD
  • 设备接口:6 × LAN, 4 × USB, COM, HDMI
  • 系统版本:(ESXi)VMware-VMvisor-Installer-6.7.0-8169922.x86_64-DellEMC_Customized-A01
  • 其他设施:普通双头网线一根,优盘一个,显示器+HDMI线+鼠标+键盘(有线即可)
  • 系统镜像

关于 ESXi,LEDE + iKuai,以及 Win7 的安装及注意事项,会在今后单独进行详细讲解。