当一个普通路由器刷了定制的OpenWrt后,其功能即可大大的拓展,而且还可以自己配置好看的界面,瞬间升级成强大的智能路由器,使用各种开源软件,让普通路由器拥有几千元网络设备才具备的各种功能。

可是普通的路由器受CPU和内存的限制,而OP上各种功能扩展基本都靠CPU软处理,所以性能成为了巨大的瓶颈,而且wifi信号也会由于驱动的问题大打折扣。所以如果使用普通wifi路由器+软路由这种配置,即兼顾了性能,又照顾了信号。软路由有两种配置,一种是使用PC裸机,直接把OpenWrt安装到硬盘上或者U盘上。第二种是使用虚拟机,使用虚拟机的好处很多,比如成本低,网卡容易配置,起停方便等。

下面介绍使用恩山上lean发布的LEDE 17.01.2为基础,介绍一下如何使用免费的虚拟化工具virtualbox来配置软路由。

该固件已经内置了很多很有用的固件和路由加速,基本是开箱即用。作者本身发布了img和iso两种安装包。我是在linux下使用dd命令把img安装包直接刷到新的磁盘上,然后把这块磁盘插到新的虚拟机上实现部署的。同样的方法可以把img通过dd刷到U盘上,然后物理机使用U盘引导使用。

在安装了lean原版的LEDE到虚拟机后,我又安装了dnsforwarder,haproxy和ssrr等工具,因为lean上面的酸酸乳不支持WAN区域的路由。

下载虚拟机的导出文件:https://download.csdn.net/download/lvshaorong/10523901

下载lean的原版IMG:http://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=252795

首先我们通过virtualbox的虚拟机导入工具进行导入,注意你的宿主机架构最好是X64

然后选择下载好的ova文件,勾选重设MAC地址

然后我们要配置一下网卡,需要两块网卡,一块连接公网路由器,一块连接虚拟内网。

在路由器上刷入OpenWrt之后,由于路由器一般只有一块网卡,所以内外网的划分是通过VLAN实现的,使用ifconfig会看到有eth0.0 eth0.1 eth0.2这样的VLAN,一般2.4G和5G使用不同的VLAN,WAN区域使用单独的VLAN,所以说wifi路由器其实实际上看一看做一个三层交换机。而在virtualbox中我们可以自由的添加不同的物理网卡,所以就不需要费劲划分vlan了,我们只需设置两块网卡,第一块是LAN区域的网卡,这一块网卡是供我们登录路由器web后台配置路由器使用的,需要我们在virtualbox里单独设置一个host-only网卡,另一块桥接物理网卡,通过DHCP从宿主机的上游路由器获得IP地址并上网。

下面我们先创建LAN区域的网卡,注意这块网卡是一个host-only的虚拟网卡,关闭DHCP功能,并设置网段为192.168.1.1/24,并把宿主机的IP设置为192.168.1.200,因为192.168.1.1要留给OpenWrt使用,注意你的宿主机所在的网络不能是192.168.1.*这样的,如果是的话,请修改你宿主机使用的路由器。方法如下图

首先点击左上角“管理”-“主机网络管理器”,点击创建

创建时要注意一下几点

然后我们LAN区域网卡就配置好了。

而WAN区域网卡,直接桥接我宿主机的无线网卡,然后上游的路由器会自动的给我们的虚拟机一个上网IP。右击虚拟机选择“设置”,在左边找到“网络”然后添加两块网卡。按照从左到又的顺序,第一块网卡是我们上面创建的host-only虚拟网卡,第二块网卡是桥接物理能上网的网卡,顺序不能乱,不然OpenWrt会用错网卡,如下

然后我们就可以启动虚拟机了,启动之后,通过浏览器访问http://192.168.1.1登录后台

默认用户名和密码是root/password

此时你是使用宿主机的192.168.1.200访问的软路由的192.168.1.1的LAN地址。下面我们看看WAN区域配置好了么

我的上游路由器是个小米wifi路由器,使用的网段是192.168.31.*,我的宿主机被分配的地址是192.168.31.84,我们通过命令看看虚拟机分配到了什么地址

root@LEDE:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr 08:00:27:15:45:3F  inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0inet6 addr: fd51:5634:dc22::1/60 Scope:Globalinet6 addr: fe80::a00:27ff:fe15:453f/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:554 errors:0 dropped:0 overruns:0 frame:0TX packets:536 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:53548 (52.2 KiB)  TX bytes:173628 (169.5 KiB)eth0      Link encap:Ethernet  HWaddr 08:00:27:15:45:3F  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:554 errors:0 dropped:0 overruns:0 frame:0TX packets:578 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:61304 (59.8 KiB)  TX bytes:187917 (183.5 KiB)eth1      Link encap:Ethernet  HWaddr 08:00:27:6B:6A:CF  inet addr:192.168.31.36  Bcast:192.168.31.255  Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fe6b:6acf/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:867 errors:0 dropped:0 overruns:0 frame:0TX packets:97 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:55892 (54.5 KiB)  TX bytes:23489 (22.9 KiB)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:231 errors:0 dropped:0 overruns:0 frame:0TX packets:231 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1 RX bytes:16737 (16.3 KiB)  TX bytes:16737 (16.3 KiB)

从上面可以看出,eth0是LAN区域的网卡,只是通过了一个网桥br-lan0分配的LAN IP,然后eth1是WAN区域的网卡。本身你直接安装Lean的img包后是没有WAN区域的网卡的,因为WAN和LAN共用一块网卡并且使用VLAN来区分,而我后来有手动创建了WAN区域绑定的网卡,所以导入ova包之后能看到eth1,并且该eth1是自动获取上级路由器分配的IP地址,所以开箱即用,能直接ping通百度。

注:如果使用Lean原版img安装后需要创建新的WAN区域,并绑定物理网卡eth1,如下

另外还可以看出,由于WAN的网卡是桥接的宿主机物理网卡,所以虚拟机的WAN地址和宿主机的上网地址是平级的,都是192.168.31.*,所以连接在同一个物理路由器下面的设备都能够访问我们的软路由,也就是说,通过再架设一个wifi路由器并且以软路由为网关的设想可以实现了。

下面就介绍如何让我们的手机电脑等设备通过软路由来上网。首先我们知道路由器的LAN区域由于是虚拟网卡,所以除了宿主机以外的其他设备比如手机等都无法接入LAN区域,但是手机等可以从上级路由器那里接入软路由的WAN区域,所以我们把软路由的WAN区域的路由功能打开,然后在上级的内网中架设一个路由器,把网关指定为我们的软路由即可。

正常情况下,OpenWrt不允许开放WAN区域,但是可以通过修改防火墙设置改变,这一点我在虚拟机模板里面已经设置好了,如下

于是我们只要把内网其他手机电脑等设备,甚至安装一个新的无线路由器,的网关地址设置为该软路由的地址,就可以通过软路由上网了,网络拓扑图如下

VirtualBox搭建OpenWrt软路由相关推荐

  1. 【树莓派】搭建OpenWrt软路由,并作为旁路由的配置与应用方法

    使用ARM架构做软路由,首要考虑的是价格问题,当树莓派作为ARM软路由,特别小巧但功能强大还静音,实乃绝配.这里我选用的是带有千兆网口的树莓派3B+,其优势主要主要有: 性能超过大部分ARM软路由 小 ...

  2. 将openwrt软路由装进U盘中并运行

    我们可以将openwrt,甚至是centos7系统装到U盘中,作为一个可移动系统. 这边,我以openwrt软路由来举个例. 准备 1.一张不小于3G的U盘或者TF存储卡 2.WinImage9.0 ...

  3. openwrt软路由实现ipv6上网配置

    1.介绍 面对目前互联网的高速发展IPv4地址已经枯竭为了解决此外问题国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF)设计的用于替代IPv ...

  4. openwrt软路由实现ipv6 nat 上网配置

    1.介绍    之前写的 <openwrt软路由实现ipv6上网配置>文档,经过长期的使用测试和网友评论反馈,之前写的配置方法没有实现必然ipv6上网,重启路由器后就会导致不能ipv6上网 ...

  5. openwrt网络唤醒计算机,使用OpenWrt软路由唤醒网络设备

    发现网络唤醒这功能实在是个好东西 非常方便和实用,尤其时对于远程管理 什么是网络唤醒呢?个人理解就是远程开机 下面是使用OpenWrt软路由唤醒同一网段内的威联通NAS 当然前提是这台威联通NAS也是 ...

  6. 树莓派4B安装Openwrt软路由并用作家庭网络网关设备

    树莓派4B安装Openwrt软路由并用作家庭网络网关设备 缘由 家里需要联网设备太多,光猫性能不够,家里小米AX3600不想来刷机,然后就想到了被尘封的树莓派4B,经过一段时间的研究与折腾,最终完成了 ...

  7. 服务器虚拟机装软路由,Esxi虚拟机安装Ros+Openwrt软路由双系统简单分享(踩到的坑,很大的坑)...

    近段时间ke学上网反应很慢,网上看到了 Ros+Openwr能够解决DNS污染的这个问题,所以看看自己的3825U小主机刚可以满足要求,搞一下吧. 听说L大的openwrt软路由固件ke学上网很不错, ...

  8. 【云原生之Docker实战】使用Docker部署openwrt软路由系统

    [云原生之Docker实战]使用Docker部署openwrt软路由系统 一.openwrt软路由介绍 1.openwrt简介 2.本次版本openwrt 二.查看docker版本 1.检查docke ...

  9. openwrtx86安装docker_PVE下openwrt软路由docker环境安装unifi controller

    PVE下openwrt软路由docker环境安装unifi controller 2020-03-29 14:10:18 48点赞 491收藏 44评论 [写作说明]:之前分享了一篇m920x准系统作 ...

  10. 群晖Virtual Machine Manager虚拟机安装OpenWrt软路由作为旁路由的详细步骤

    0.前言: 本来一直都是在Windows10的Hyper-V中虚拟软路由的,直到有一天突发奇想,手贱在windows10宿主机中安装了个安卓模拟器,由于众所周知的原因,安卓模拟器是不能同时与Hyper ...

最新文章

  1. 传感器的未来: 10年后我们将会生活在一个极端透明的世界
  2. 系统架构图怎么画_基于ROS的移动机器人上层系统架构分析
  3. 08、MySQL—字符串型
  4. WPF 3D基础学习 - 画布、相机、Model3D(1)
  5. python 散点图_Python绘制散点图
  6. python 计算两个日期相差多少个月
  7. 个性化推荐之召回的方法
  8. Oracle中删除用户和表空间的常见问题(比如:ORA-01940无法删除当前已连接用户的解决方案)
  9. 7-3 银行排队问题之单队列多窗口服务 (25 分)
  10. centos安装mysql卡住_CentOS 6.4安装MySQL的过程中出现的bug
  11. 专访《程序员的三门课》李伟山:从程序员到技术总监的修炼秘籍!
  12. 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格
  13. jeecgboot 前端环境搭建_如何从零开始搭建前端监控平台?
  14. python语言的读法-就语法而言,Python 这个语言怎么样?
  15. 如何利用systrace分析Android App的死锁问题
  16. ELK-日志收集工具nxlog
  17. 机器学习基础01--scikit-learn库的运用使用库中的数据集与make_blobs/moons/circles的使用
  18. Leetcode算法Java全解答--37. 解数独
  19. 一行代码实现呼出热键
  20. Java学习第7篇_supper关键字

热门文章

  1. 8081端口导致React Native启动失败
  2. JQuery----倒计时插件downCount
  3. 数据安全:Mock数据
  4. Word怎么删除空白页?6个方法随便用!
  5. 英语语音篇 - 音标体系
  6. iOS更新系统服务器出错,iPhone 更新失败怎么办?更新 iOS 常见的错误代码及解决方法...
  7. Canceled future for execute_request message before replies were done The Kernel crashed while execut
  8. git push reject : pre-receive hook declined
  9. 利用Openyxl为excel批量插入表头行(Excel读写基础操作)——上
  10. YouTube技术架构