2020年原本难得清闲的春节,由于疫情的原因只能在家里看视频打发时间。打开某奇艺,全是某某公寓的推荐真的是受不了。一群人在那里叽叽喳喳,超前点播更是吃像难看,实在是没意思,所以决定搞一个独臂路由器玩一玩。

啥是独臂路由器

单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。

有啥用

其实上面的定义就说明了这完意有啥用。

我电脑上有几个虚拟机,桥接形式设置了固定IP(因为有时候可能要在别的电脑上访问这几个虚机),自己在家里玩的时候还好。但是只要一换环境,比如我把我的电脑拿去给别人演示,而新环境的网段并不一定和家里的一样。所以我想让所有虚机或容器处于固定IP状态。

实现方式 Hyper-V + LEDE固件

这里说一下,之前在油管上看了一个视频内容大概是用旧电脑做独臂路由器,当然他这样做的目的是因为他想让这台电脑代理家里的所有设备访问大千世界,和我的目的不太一样。

用旧电脑和工控机可以实现的东西,用虚机应该也可以实现,查了查果然可以。

Hyper-V 的选择原因

Hyper-V了解的不多,只知道的是Windows自带的虚拟机,其增强会话功能只支持Windows。我选择它的主要原因就是他在内存方面使用很无感,不像VMware那样每次关机都要等很长时间用来让它释放内存。

实现原理

路由器

先说一下路由器的实现方式,后面的网线插口有两种,一种WAN口一般只有一个,一种是LAN口有若干个。WAN口处用来连接猫或者交换机,LAN口用来连接电脑或服务器。

WIFI就不说了,和这里没关系。。。。

LEDE

Linux嵌入式开发环境项目(Linux Embedded Development Environment,LEDE),是路由器固件项目OpenWRT的一个复刻分支项目,并继承原来OpenWRT的开发目标。2018年1月 LEDE 和 OpenWRT 正式宣布合并,合并后的项目使用 OpenWrt的名字。

上面是百度百科对LEDE的说明,用人话说就是用这个完意可以自己重新刷路由器的固件(直接把固件刷进路由器中,我还没有试过,感觉应该有些受限条件,比如,路由器支不支持等等)。当然这个完意其实就是一个Linux系统,可以重装系统到电脑里,也可以放在虚拟机里。


所以实现方式就是,在自己的电脑里装一个LEDE虚拟机并分配一块网卡给它单独使用来充当软路由。然后通过Hyper-V虚拟交换机的配置来实现WAN口连接外部网络环境,LAN口开放给本地电脑和所有虚拟机。

这样配置好后,这台电脑的上网方式就不在是直接连接外部网络,而是外部网络接入LEDE虚拟机,然后本地电脑和其它虚拟机都通过LEDE虚拟机访问外部网络。

LEDE虚拟机安装

  1. WIN10启用Hyper-V功能(应该只Windows10专业版企业版才会有),确认WIN10版本后,在启用或关闭Windows功能中勾选Hyper-V就好了,应该会重启。

  2. 在koolshare论坛下载镜像

    以下是镜像列表

    文件 大小 更新时间
    信步等特殊机型专用 - 2019-10-05 14:43:59
    虚拟机转盘或PE下写盘专用 - 2019-09-30 14:56:59
    .img或.gz可以直接在LEDE系统Web升级,如需要转盘或PE写盘请下载转盘文件夹下的镜像 0.00B 2019-09-30 13:19:40
    openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.img.gz 40.18MB 2019-09-30 13:19:41
    openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img.gz 41.13MB 2019-09-30 13:19:41
    openwrt-koolshare-mod-v2.33-r12074-007caa48d1-x86-64-combined-squashfs.img.gz 56.94MB 2019-09-30 13:19:42
    openwrt-koolshare-mod-v2.33-r12074-007caa48d1-x86-64-uefi-gpt-squashfs.img.gz 57.43MB 2019-09-30 13:19:43
    uefi.md 147.00B 2019-09-30 13:19:43
    version.md 147.00B 2019-09-30 13:19:43

    镜像文件有很多个,区别看文件名就好了。我选择的是虚拟机转盘或PE下写盘专用下的x86-64-uefi-gpt-squashfs.vmdk版本。

    下载链接:LEDE_X64

  3. 上面之所以选择下虚拟机或PE下写盘专用的文件,是因为我担心镜像里有针对虚拟机的支持。但是这个镜像的扩展名是.vmdk的,这个完意是VMware虚拟硬盘的扩展名。如果用VMware自然没有这个问题了。所以这个时候需要下载一个软件StarWind V2V Converter,这个工具的作用就是将VMware的虚拟硬盘转换为Hyper-V的虚拟硬盘。

    下载链接:StarWind V2V Converter

    转换步骤

    • Local file
    • 选择从koolshare下载的文件
    • Local file
    • VHD/VHDX
    • 这一步比较关键VHDX growable imageVHDX pre-allocated image这两个选项都是可以的,区别在于虚拟硬盘的空间是否可以增长。但是另外两个选项就不可以选了,我在安装过程中发现似乎只可以使用VHDX的虚拟硬盘。
  4. 新建虚拟机

    这一步比较简单,正常新建并使用已有虚拟硬盘的创建方式就可以了。

    注意

    • 如果下载的是uefi版镜像或虚拟硬盘,自然选择第二代启动方式。
    • 第二代启动方式情况下,先不急于启动虚拟机,在虚拟机设置 > 安全 > 启用安全启动的选项勾掉。
  5. 启动虚拟机,加载完之后在页面上回车一下,如果出现OPENWRT的Logo说明安装成功了。

配置虚拟交换机

  • 内部

新建一个内部交换机,作为LEDE虚拟机的LAN口,然后所有虚拟机和本地电脑都连接这块虚拟网卡。

  • 外部

新建一个外部交换机,在下拉选中选择一块网卡,这块网卡就是电脑连接外部网络的实际网卡,勾掉允许管理操作系统共享此网络适配器,意为只有连接这个虚拟网卡的虚拟机才会有使用这块实际网卡的权限,并作为LEDE虚拟机的WAN口连接外部网络。

  • 虚拟网卡连接步骤

    • LEDE虚拟机依次添加上面新建的内部网卡和外部网卡(好像只有这个顺序有用)。

    • 添加好后在虚拟机上的硬件名称叫网络适配器,在这两个适配器的高级功能里勾选上启用MAC地址欺骗

    • 重启LEDE虚拟机,然后在本地电脑的网络适配器中找到上面新建的内部网络手动分配IP地址。我分配的信息如下:

      IP地址 192.168.1.10
      子网掩码 255.255.255.0
      默认网关 192.168.1.1
      首选DNS服务器 192.168.1.1
    • 如果不出问题的话,现在WIN10的网络和Internet状态中应该可以看到连接了上面创建的内部网卡。

  • 配置软路由

通过访问192.168.1.1可以访问软路由,密码为koolshare,进入之后将WAN口的桥接选项勾掉。


到这里所有配置就都完成了。所有虚拟机都可以配置内部网卡然后经由LEDE虚拟机访问外网,这样所有虚拟机同属于同一网段,不再因外部环境变化而受到影响。

Hyper-V 搭建独臂路由器(单网卡也可以)的更多相关文章

  1. windows2003 单网卡 搭建vpn ,windows 2008 R2 类似吧。网上转的,自己加了点经验总结

    先说说可能的坑,也就是我自己搭建的时候碰到的问题. 其实搭建起来很简单,我不知道我总结的对还是不对,但是按下面这样操作做绝对能搭好!因为我就是按这样搭起来的,但是我发现,好像pptp已经被墙了,我也不 ...

  2. Windows Server 2003/2008 单网卡搭建VPN

    Windows Server 2003/2008 单网卡搭建VPN 1.打开[控制面板] --> [管理工具] --> [路由和远程访问] 2.鼠标右击你要管理的电脑 在弹出式菜单中选中[ ...

  3. Windows Server 2003单网卡搭建VPN

    Windows Server 2003单网卡搭建VPN   1.打开[控制面板] --> [管理工具] --> [路由和远程访问] 2.鼠标右击你要管理的电脑 在弹出式菜单中选中[配置并启 ...

  4. 烂泥:nagios监控单网卡双IP

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 公司的业务有几台服务器存放在IDC机房中,说是双线路.但是我看到网卡的配置是单网卡双IP的形式.如下: 而公司这边的线路是联通的IP,如下: nagio ...

  5. Hyper V NAT 网络设置 固定IP / DHCP

    Hyper V 默认的Default Switch同时支持了NAT网络以及DHCP,虚拟机能够访问外网. 但使用过程中发现这个IP网段经常变化,而且Hyper V没有提供管理其NAT网络与DHCP的图 ...

  6. 使用Squid做代理服务器,Squid单网卡透明代理配置详解(转)

    使用Squid做代理服务器 说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度.其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较 ...

  7. windows server 2008 r2 企业版 hyper v做虚拟化的相关问题处理

    windows server 2008 r2 企业版 hyper v做虚拟化的相关问题处理 今天在dell r710 上用windows server 2008 r2企业版hyper v 做虚拟化,添 ...

  8. 设置Hyper V

    1.打开服务器管理器 2.添加角色和功能 3.安装类型 -> 基于角色或基于功能的安装 4.服务器选择 -> 下一步 5.服务器角色 勾选"Hyper V"

  9. LINUX单网卡绑定多个IP

    在linux下,我们有时候需要给单网卡设置不同的IP地址,这样就涉及到单网卡绑定多个IP地址的情况.使用本方法可以方便的为单网卡绑定多个IP地址.笔者使用的环境是centos5.6,应该在fedora ...

随机推荐

  1. dotnet 新项目格式与对应框架预定义的宏

    在 sdk style 的项目格式支持使用多框架开发,此时需要在代码里面通过宏判断,在编译的时候执行不同的代码.本文告诉大家在框架里面对应的预定义的条件编译符有哪些 在让一个 csproj 项目指定多 ...

  2. STM32与STM8操作寄存器的区别

    在STM8中,由于STM8寄存器较少,在头文件中定义寄存器的时候不用采取任何形式的封装,所以操作寄存器的时候直接可以用如下方式处理:PB_DDR |=0x20; 但是在STM32中,由于其寄存器实在太 ...

  3. Vijos1917 艾酱最喜欢的数字 [求绝对众数]

    1.题意:第一行一个数字N,表示一共有多少个数字,第二行N个数字,保证其中至少有一个数字出现次数超过一半,任务是求出这个出现最多的数. 2.分析:本题是明显的求众数的问题,常规思路为开一个大数组,在读 ...

  4. Appium中使用相对路径定位元素Xpath

    1.若页面该元素没有ID 2.找出该元素父类,并拷贝出父类的class(类名)和ID 3.点击搜索图标,进行查找 selector内容://android.widget.LinearLayout[@r ...

  5. 【转载】实现a元素href URL链接自动刷新或新窗口打开

    又是我偶像的新文,这个小技巧的用户体验真的非常非常棒! 文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/ 原文链接:https://www.zhangxinxu ...

  6. $exLucas$学习笔记

    本来不打算写了的,,,但是感$jio$理解起来还是有点儿难度的来着,,,$so$还是瞎写点儿趴$QAQ$ $exLucas$主要有三步: 1)唯一分解$mod$并预处理$p^{k}$以内的阶乘 2)计 ...

  7. SQL预处理

    每向数据库发送一条SQL语句,数据库中的SQL解释器就会将SQL语句转换成数据库底层命令,然后执行该命令完成相关的数据库操作.如果频繁的向数据库提交SQL语句,势必会增加数据库中SQL解释器的负担,进 ...

  8. Linux gcc版本升级

    Linux gcc版本升级 操作环境 RHEL7,在进行内核编译时编译器版本,需要升级gcc编译器,选择gcc-8.3.0. http://ftp.gnu.org/gnu/gcc 里面提供所有的gcc ...

  9. 「CH2601」 电路维修 解题报告

    CH2601 电路维修 描述 Ha'nyu是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女Rika,从而被收留在地球上.Rika的家里有一辆飞行车.有一天飞行车的电路板突然出现了故障 ...

  10. 「Poj1845」Sumdiv 解题报告

    题面戳这里 啥都别看,只是求 \(a^b\)所有的因数的和 思路: 真没想到! 其实我们可以先将\(a^b\)分解成质因数的 因为\(a^b\)的因数肯定是\(a^b\)的质因数在一定的条件下相乘而成 ...