VBox 虚拟机安装 Openwrt 做旁路由

需求:开个虚拟机做旁路由,电脑把网关设置成旁路由地址,用它跑个上网或其他什么东西。

安装及配置过程简述

这件事流程很简单,总结起来主要有以下几点:

  1. 安装 VBox 虚拟机并解决好相关驱动(如虚拟网卡)。

    在配置网络中如果遇到任何问题都要先排查虚拟网卡驱动有没有问题。安装虚拟网卡驱动请到 VBox 安装路径找到以下地址,在每个文件夹中都有一个 .inf 文件,右键安装即可。

  2. 下载固件文件(一般会提供 .vmdk 文件,如果只有 .img 文件自行转换(StarWind V2V Converter))。

  3. 创建虚拟机,创建时使用自定义的虚拟磁盘文件。(参考:附一__新建虚拟机

  4. 配置虚拟机网卡一为“仅主机(Host-only)网络”,我们需且仅需配置虚拟电脑的网卡一,这个网卡默认作为 OpenWrt 的 LAN 口。(参考:附二__仅主机(Host-only)网络

    • 在首次启动前需要(物理机)先断开所有外部网络,将虚拟机设置成“仅主机(Host-only)网络”,其对应的虚拟网卡要关闭 DHCP 、IP 地址设置成与路由器管理地址同网段。

    • 虚拟机开机后可以使用 cat /etc/config/network 查看默认的 LAN 口地址。

  5. 开机。如无特殊原因可以正常开机了,开机后在浏览器进入管理界面,依次点击 “网络 > 接口” 可以看到软路由的接口情况。正常情况下物理接口应该只有一个 LAN 口。(如果有其他的只要不影响使用也可忽略,比如我刷 keelshare 的固件就有一个 eth5的 WAN 口

  6. 配置 LAN 口,(关闭 DHCP, 修改基本设置,关闭"桥接接口")

    1. 关闭 DHCP. 进入 LAN 口配置页面,在其“DHCP 服务器”设置中勾选“忽略此接口”。

    2. 基本配置。配置 LAN 口的协议为“静态地址”,然后根据主路由设置 IPv4地址、掩码、网关、广播和DNS服务器。

      注意:关于这里的DNS: 必须要设置成一个有效的 DNS, 否则路由器 curl baidu.com 无返回。(关于DNS更多知识参考:附三__DNS服务和Dnsmasq

    3. 关闭"桥接接口",这一点很重要!虽然我至今仍不明白它是什么,但它真的很重要。

      “桥接网口”选项是默认勾选的,在不关闭“桥接网口”的情况下麦本本也能正常上网,但是在荣耀笔记本上国内正常,出国却慢的出奇,最高不到 700Kbps, 我尝试了各种方法未果,最终误打误撞发现在关闭“桥接网口”口出国速度飙升到 56Mbps, 与国内测速无异;关闭“桥接网口”后麦本本出国速度也有提升,从原来的 30M 涨到了 50Mbps.

    4. 保存并应用。

  7. 配置虚拟机网卡一为“桥接网卡”,桥接到物理机用来正常上网的网卡。

    1. 在完成上面的操作后继续使用默认管理地址应该已经无法进入路由器后台了,这时候可以使用命令 halt 关掉虚拟机,让后将虚拟机网络设置为桥接,桥接到物理机连接到主路由且可以正常上网的网卡。

    2. 启用主路由的网络连接、开启虚拟电脑。不出意外的话这时候就可以通过前面设置过的 LAN 口 IP 正常访问软路由管理界面了,在软路由的终端中运行一下 curl baidu.com 发现软路由也可以正常上网。

  8. 设置物理机的网关和 DNS 服务器为软路由IP。修改完成后发现可以正常上网,这时候把软路由的出国插件配置好,物理机也可以正常通过软路由出国。


存在的问题

  1. (软路由正常运行中)物理机休眠 - 重新唤醒后出国服务失效,虽然显示在运行但没效果,重启软路由后恢复。使用 VBox 的快速休眠 - 唤醒没这个问题。

  2. 如果需要局域网中其他设备使用虚拟机中的软路由上网,则除了将设备的网关和 DNS 设置为软路由的 IP 外还以一个需要注意点的——运行软路由的电脑不能使用无线网卡上网(当然虚拟机也必须要桥接到有线网卡上才行了)。(虽然我也不明白这是什么原因但事实的确如此,如确有这种需求但实现不了不妨切到有线网卡试一试)


附一__新建虚拟机

新建虚拟机的过程记录如下:



附二__仅主机(Host-only)网络

首先需要在虚拟机中选择这种模式。

但是有关这个虚拟网卡的进一步选项需要在“主机网络管理器”中设置。

在运行软路由系统时关于这个网卡的设置主要有两个要点:1:关闭DHCP;2:设置 IP 地址(这个地址是物理机地址)。

  1. 关闭DHCP

    这个没什么多说的,关闭就行了。

  2. 设置 IP 地址

    这个有讲究。在设置之前先搞清楚下载的固件后台管理页面是多少,将这个 IP 地址设置成与路由器后台地址同网段但是不冲突的,我这里后台地址是 192.168.1.1, 所以我设置为 192.168.1.2.

    注意:如果路由器的后台网段已接入的其他网络冲突了,那没办法只好先断开其他网络了,进去路由器后台再改路由器地址。

附三__DNS服务和Dnsmasq

这块写的一塌糊涂,我也不知道我在说什么

将物理机的 DNS 设置为软路由当然会存在某些问题,比如无法解析我在主路由中设置的 hosts 文件,虽然之前设置 LAN 口时将那个 DNS 设置为了主路由 IP ,但也没什么鸟用。

  • 事实上虽然将软路由器 LAN 口 IP 设置为了主路由 IP, 但就算是软路由本身也无法使用主路由的 HOSTS 解析。比如我在主路由的 HOSTS 中有一条 192.168.42.61 ds119j.nas 是用来解析我的 NAS 的,但是在软路由中 ping ds119j.nas 却始终不通,通过 cat /etc/resolv.confnslookup www.baidu.com 命令查到的软路由本机 DNS 服务器始终是 "127.0.0.1", 真是奇哉怪哉。

  • 后来我才明白原来在 OpenWrt 中有一个本地默认的 DNS 服务叫做 Dnsmasq, 它监听本地地址(也就是 "127.0.0.1"),而你真实的 DNS 服务器地址,是被这个服务【Dnsmasq】管理维护着的。

    # 解析流程
    local process -> local dnsmasq -> router -> ISP dns

    在 OpenWrt 的图形配置界面中 “网络 > DHCP/DNS” 实际上就是配置的 Dnsmasq.

  • 回到最开始的问题:将物理机的 DNS 设置为软路由后就无法解析我在主路由中设置的 hosts 文件这事怎么解决?

    这个问题暂未解决。除非把物理机的 DNS 设置为主路由的 IP, 但是这样虚拟机软路由上基于 DNS 的一些服务就没法发挥作用了,得不偿失。

    虽然理论上有办法让 Dnsmasq 针对特定的域名使用特定的 DNS 服务,比如我想让主路由(192.168.42.1)解析我的 NAS(ds119j.nas),但我尝试了各种办法都没成功,看来只能在软路由中再设置一次 hosts 文件了。

  • 今天一天我看的关于 Dnsmasq 的有价值的资料

    nameserver 127.0.1.1 & 如何设置nameserver

    Openwrt dnsmasq 设置要点

    dnsmasq详解及配置

    OpenWrt DNS问题排查

    OpenWrt的DNS相关设置

    手动配置 OpenWrt 路由器的 DNS 服务

    dnsmasq详解及配置

VBox 虚拟机安装 Openwrt 做旁路由的更多相关文章

  1. 网络|N1盒子做旁路由刷OpenWRT系统(小白专用)

    N1盒子做旁路由刷OpenWRT系统(小白专用) 为什么要用N1盒子 现如今新上市的路由器,市面上能买到的300元以内的路由器大多数都是双频(5G Hz和2.4G Hz)和几年前相比无论是速度还是性能 ...

  2. 用VBox虚拟机安装Android 屏幕90度翻转竖屏设置

    在虚拟机中安装好Android之后,有一些Android应用(比如UC浏览器.UC桌面)不能安装.但更有一些程序是可以安装,却自动顺时间旋转了90度,操作和看起来非常不爽! 这个情况下,在Androi ...

  3. VBox虚拟机安装debian

    决定在win7上装一个Linux虚拟机用作Linux开发学习,虽然win7下已经有了Cygwin,还是想在一个比较完整的环境下.前面装过Ubuntu发现界面太笨重了,考虑重新换一个,同时比较喜欢apt ...

  4. VBox&vmware虚拟机安装Linux及Linux基础入门学习

    VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...

  5. Mac系统下使用VirtualBox虚拟机安装win7--第一步 安装vbox虚拟机

    Mac系统下使用VirtualBox虚拟机安装win7操作步骤: 第一步 安装vbox虚拟机 1.先下载vbox,下载地址:: https://www.virtualbox.org/wiki/Down ...

  6. ubuntu安装vbox虚拟机

    ubuntu安装vbox虚拟机 一.安装准备 1.查看主机配置 二.下载安装包    (建议将安装包下载并保存) a.下载virtualbox安装包 下载链接https://www.virtualbo ...

  7. OpenWrt——神奇的路由系统

    鉴于最近大家对这个系统比较感兴趣而且疑问很多所以本渣就整理下我对这个系统的理解和最实用的802.1x认证的理解.还望大家多多互相交流. 如果您时间紧张直接看最后的步骤,时间充裕的请仔细阅读,理解. O ...

  8. vbox 虚拟机共享文件夹 debian

    主机64位windows7 虚拟机Debian 8 64位 注意:在网络更新时,可能需要修改 etc/apt/sources.list 文件,把前几条从CD更新删除掉,这样就会从网络更新 1.vbox ...

  9. 基于VirtualBox虚拟机安装Ubuntu教程

    基于VirtualBox虚拟机安装Ubuntu图文教程 一. 下载安装VirtualBox 官网下载VirtualBox,目前版本:VirtualBox 6.0.4 for Windows hosts ...

随机推荐

  1. 解决win10快速访问不能取消固定

    最近发现win10的快速访问不能取消固定,比如ftp和smb之类的都不能取消固定 最后百度了一下发现一个简易的方法: 在文件资源管理器地址栏输入:%APPDATA%\Microsoft\Windows ...

  2. Linux sudo权限提升漏洞CVE-2021-3156 POC及复现过程

    漏洞简介 2021年1月26日,国外研究团队披露了sudo 中存在的堆溢出漏洞(CVE-2021-3156).利用该漏洞,非特权账户可以使用默认的sudo配置主机上获取root权限,该漏洞影响1.8. ...

  3. SQL 练习27

    查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列 SELECT cid,AVG(score) 平均成绩 from sc GROUP BY cid ORDER BY A ...

  4. windows和liunx下换行符问题

    区别 windows换行符是: \r\n liunx换行符是: \n 问题 程序处理的时候就会有问题,因为在Windows的文件多了一个\r 解决办法(转换文件格式) vim file :set fi ...

  5. final、finally与finalize的区别?

    一.final.finally与finalize的区别 final:final是一个修饰符,可以修饰类,方法和变量.final修饰类表示类不能被其它类继承,并且该类中的所有方法都会隐式的被final修 ...

  6. C# wpf中关于binding的converter无效的情况

    最近碰到bingding设置了convert转换无效的问题.困扰了我好久.这里记录分析一下. 先说下现象 我把TextBox的text属性  绑定到了对应的 convert.代码如下 希望吧pd_no ...

  7. servlet中servletContext的五大作用(四)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  8. ES6扩展——数组的新方法(Array.from、Array.of、Array.fill、Array.includes、keys values entries 、find)

    1.Array.from(objec,回调函数)将一个ArrayLike对象或者Iterable对象(类数组对象)转换成一个数组 1)该类数组对象必须具有length属性,用于指定数组的长度.如果没有 ...

  9. 【SpringMVC】RESTFul简介以及案例实现

    RESTful 概念 REST:Representational State Transfer,表现层资源状态转移. 资源 资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成.每个资源 ...

  10. ELK 收集 Tomcat日志以及修改Tomcat日志格式

    ELK 收集 Tomcat日志以及修改Tomcat日志格式 Tomcat日志 想要收集tomcat 日志 首先我们要对tomcat的日志有足够的了解 tomca日志分类 简单的说tomcat logs ...