草庐IT

从零开始搭建家庭网络:软路由实战经验分享(一)

Liu_Shihao 2024-02-10 原文

目录

介绍

最近入门了软路由,研究了半个月,一步一步从网络小白到最后自己搭建了家庭局域网络,现在给大家分享一下我搭建软路由的经验。

什么是软路由?

既然有软路由,那么相对的肯定有硬路由:目前我们网上买到的路由器,就是硬路由,这种从一开始就是按照路由器设计规范设计出来的硬件设备就是硬路由。

在硬件设备上安装路由器系统,通过软件模拟路由器的功能,从而实现路由器的所有功能的叫做软路由。

例如我的选择就是在x86工控机部署了软路由系统。常用的软路由系统有IkuaiOpenWrt等。

软路由有什么优点?

软路由是指通过软件方式实现路由器的功能。相比硬件路由器,软路由具有灵活性高、可定制性强、可扩展性好等优点。以下是软路由可以实现的功能:

  1. 路由转发功能:软路由可以实现路由器的基本功能,包括路由转发、数据包过滤等。

  2. VPN 功能:软路由可以支持 VPN 功能,如 IPsec、OpenVPN 等,可以实现远程访问和安全连接。

  3. 防火墙功能:软路由可以提供防火墙功能,包括端口过滤、IP 过滤、MAC 过滤等。

  4. DHCP 功能:软路由可以提供 DHCP 服务,可以为局域网内的设备动态分配 IP 地址。

  5. DNS 功能:软路由可以提供 DNS 服务,可以解析域名为 IP 地址,提供更方便的网络访问。

  6. 负载均衡:软路由可以实现负载均衡功能,可以将网络流量均衡分配到不同的 WAN 口或者不同的网络连接上。

  7. 家庭网关:软路由可以作为家庭网关使用,可以管理家庭内的网络设备,限制访问、过滤内容等。

  8. NAS 服务器:软路由可以作为 NAS 服务器使用,可以提供文件共享、多媒体服务等功能。

总之,软路由可以通过各种插件和自定义配置实现各种网络功能,可以根据用户需求进行定制化配置,提供更加灵活和强大的网络服务。

如何搭建一个软路由?

我这里选择的是J4125工控机,单独购买了内存条和固态硬盘。安装ESXI虚拟机系统,部署了IkuaiOpenWrt

使用IKuai作为主路由,负责拨号上网、流控、多播、宽带叠加等功能。

OpenWrt作为辅路由,负责科学上网、去广告、接AP。

最后软路由桥接一个硬路由,利用硬路由来做软路由的“天线”。

硬件设备

工控机:J4125 I210网卡 4网口 554¥

内存条:8GB DDR4 2400 104¥(建议8G,不然如果部署虚拟机的话内存不够用)

固态硬盘:128G SSD 82¥

软件部署

在J4125工控机安装ESXI虚拟机系统,然后部署IKuai和OpenWrt虚拟机

设置ESXI的IP地址为10.10.10.111,网关为IKuai主路由的IP地址:10.10.10.10

设置IKuai主路由的IP地址为10.10.10.10

设置OpenWrt辅路由的IP地址为10.10.10.11,网关同样设置为10.10.10.10

子网掩码都是255.255.255.0

ESXI6.7 虚拟机

浏览器访问10.10.10.111

IKuai 主路由

浏览器访问10.10.10.10

OpenWrt 辅路由

浏览器访问10.10.10.11

网络拓扑图

光猫修改为桥接模式,将光猫的LAN口连接到IKuai的WAN口

IKuai主路由的LAN口(虚拟网口)和OpenWrt副路由的LAN口(虚拟网口)相连接

将OpenWrt辅路由的LAN2口和无线路由器的WAN口相连,将软路由的有线信号转换为无线信号

最后

网络搭建具体步骤会在下一篇专门介绍。

如果您有什么问题或者经验,欢迎评论区交流。

如果您觉得本文对您有帮助,欢迎点赞、评论、分享。您的支持是我创作的最大动力。

有关从零开始搭建家庭网络:软路由实战经验分享(一)的更多相关文章

  1. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  2. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  3. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  4. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  5. ruby-on-rails - Ruby/Rails 中的夏令时开始和结束日期 - 2

    我正在开发一个Rails应用程序,我需要在其中找到给定特定偏移量或时区的夏令时开始和结束日期。我基本上在我的数据库中保存了从用户浏览器接收到的时区偏移量(“+3”,“-5”),我想在它出现时修改它由于夏令时的变化。我知道Time实例变量有dst?和isdst方法,如果存储在它们中的日期在夏令时与否。>Time.new.isdst=>true但是使用它来查找夏令时的开始和结束日期会占用太多资源,而且我还必须为我拥有的每个时区偏移量执行此操作。我想知道更好的方法。 最佳答案 好的,基于你所说的和@dhouty'sanswer:您希望能够

  6. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  7. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  8. ruby-on-rails - phusion passenger 和 ruby​​ 1.9.1 已经开始工作了吗? - 2

    我有一台生产机器和一台开发机器,都运行ubuntu8.10并且都运行最新的phusionpassenger。当我在osx上的本地开发机器上使用ruby​​1.9.1时,我想知道外面的人是否已经在使用带有ruby​​1.9.1甚至1.9.2的phusionpassenger?如果是这样,请告诉我们您的设置!此外,有没有办法在apache上使用phusionpassenger同时运行ruby​​1.8.7(ree)和1.9.1?感谢您的指点,我在任何地方都找不到任何提示... 最佳答案 是的,从某些2.2.x版本开始就正式支持它,我不记

  9. ruby - Rails 3 - 我可以将开始日期设置为 date_select 方法吗? - 2

    date_select方法只能设置:start_year,但我想设置开始日期(例如3个月前的日期)(但没有这样的选项)。那么,我可以将开始日期设置为date_select方法吗?或者,要制作这样的选择框,我应该使用select_tag和options_for_select吗?或者,有什么解决办法吗?谢谢, 最佳答案 有可能……例如:start_year–设置年份选择的开始年份。默认为Time.now.year-5参见thisresource. 关于ruby-Rails3-我可以将开始日期

  10. ruby - 从特定索引开始迭代数组 - 2

    我想从特定索引开始遍历数组。我该怎么做?myj.eachdo|temp|...end 最佳答案 执行以下操作:your_array[your_index..-1].eachdo|temp|###end 关于ruby-从特定索引开始迭代数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44151758/

随机推荐