虚拟机运行 OpenWrt 的方法 (VMware Workstation)

有时候为了折腾,在PC的虚拟机上跑 OpenWrt 有着很多优势。这里介绍一下使用 Vmware 运行 OpenWrt 的方法。

1. 准备一个Linux发行版的虚拟机系统,这里使用Ubuntu 18.04
2. 进入Ubuntu系统,打开终端,下载系统镜像并转换为vmdk:

然后把转好的vmdk文件拷贝到宿主机上,记得备份一份以免后续重新分区时候操作失误是还得重新下。
3. 扩展磁盘大小,首先将vmdk挂载到vmware,在Ubuntu虚拟机的设置里,点击添加硬盘(需要先把虚拟机关机)

调整最大磁盘大小,酌情设置。

4. 调整分区

开机,进终端,sudo -s提权为root,并确定新挂上去的磁盘文件对应的设备名是什么,可以用fdisk -l 查看所有设备,找到挂载的磁盘名字,一般来说是/dev/sda,接着:
fdisk /dev/sda
然后输入p,回车

记住第二个分区的起点数字(33792),然后按:
d[Enter] 2[Enter] 删除第二个分区

然后重新分区,并应用
n [enter] p [enter] 2 [enter] 33792 [enter] [enter] w [enter]

然后先卸载/dev/sda2分区(也可以使用umount /dev/sda2)

然后在终端依次执行(如果提示确认执行时候按y),
e2fsck -f /dev/sda2
resize2fs /dev/sda2

PS:下面这张图是我后截的,里面的信息可能和上面的截图不一致

完成!
然后将Ubuntu关机,移除openwrt的磁盘。

5. 创建openwrt虚拟机,需要注意的截屏了,其他的按需设置:

创建好以后可以把USB的支持改成3.0

6. 设置网络

OpenWrt至少需要两张网卡,一个作为WAN口一个作为LAN口,WAN口使用NAT方式连接宿主机网络用于访问互联网,LAN口要模拟一个交换机出来,所以这里使用“仅主机”模式。设置步骤如下。

点击VMware软件菜单的“编辑”-“虚拟网络编辑器”,弹出的虚拟网络编辑器窗口,UAC打开时,默认没有管理员权限,各个项目是灰色无法更改,此时点击右下角的“更改设置”即可。

然后点击“添加网络”,添加一个VMnet2网络,并按照下图设置。

设置完毕后,点击确定。然后打开OpenWrt虚拟机的设置,为虚拟机添加第二张网卡(点击添加,然后选择网络适配器,确定)。

然后将两张虚拟网卡的连接方式按下图配置,网卡1连接到刚才建立的VMnet2,网卡2直接选NAT模式。

这里要提一下,VMware的网卡到了OpenWrt里头,网卡1对应eth0,网卡2对应eth1,而默认OpenWrt将eth0连到LAN口,因此这里将网卡一配置为VMnet2,方便接下来从宿主机连接到OpenWrt。

接下来开机,等待大概二十秒就启动起来了,不过大概到一分钟左右,出现random字样的log后算是完全启动完毕,此时按一下回车,命令行就出来了。不过一般也不在VMware这里操作,因为不太方便,通常还是通过luci/SCP/SSH来操作。

OpenWrt的LAN口默认是192.168.1.1的IP,这个考虑到这个IP可能和宿主机网络冲突,最好换掉;这里先断开宿主机的物理网卡连接防止IP冲突,然后修改VMnet2的虚拟网卡,手工指定IP为192.168.1.2

然后应该就可以通过浏览器访问192.168.1.1进入luci了。修改LAN口的网段:

然后重新将VMnet2网卡设置为IP自动获取,确认其获取到192.168.126.x的IP后,使用192.168.126.1重新访问luci,并添加WAN口:

看到WAN口正确的获取到了VMware分配的IP即告成功。此后使用SSH连接后,尝试opkg update获取软件列表,使用opkg install安装软件,如果没问题,则网络配置完成!剩下的就随便搞了和路由器上用一个样。

PS:由于VMnet2网卡上,不配置VMware的DHCP服务,而是由OpenWrt的DHCP分配IP,因此,OpenWrt开机后,可能VMnet2并未正确获取到OpenWrt分配的IP,此时禁用并重新启用即可,此种情况经常出现在宿主机重启过后。

13 条评论

  1. 引用: 虚拟机运行 OpenWrt 的方法 (VMware Workstation) – Log@X.X.B

  2. zdphpn 回复

    点个赞,现在openwrt的真不多,都是之前的,过气了?

    1. cokebar 文章作者 回复

      并没有过气啊 那里过气了

      1. zdphpn 回复

        只是想找相关的书籍看看,找来找去就发现两本,唉,希望可以多一些openwrt方面的文章,,

      2. zdphpn 回复

        虚拟机已成功跑起,192.168.1.1打开正常,感谢,,

  3. 引用: OpenWRT for x86 | Venhow's Blog

  4. luoqeng 回复

    用博主提供的翻墙方案
    VMware 运行 OpenWrt
    开箱即用版本:https://github.com/luoqeng/OpenWrt-on-VMware

    1. openwrtinit 回复

      写个详细的readme吧,跑起来了,不会用。

      1. luoqeng 回复

        跑起来了,你把自己电脑 IP 改成 README 里面给的例子就行了啊。
        改 IP 不会的话,自行搜索一下。

  5. xu 回复

    笔记本,只有wifi联网,现在在虚拟机里安装openwrt,想让笔记本通过openwrt上网,可以实现吗

    1. cokebar 文章作者 回复

      可以。
      1. openwrt wan口用桥接模式桥接宿主机wlan,不要用NAT模式
      2. openwrt lan口仍用仅主机模式(假设为对应虚拟网卡为VMware Network Adapter VMnet2)
      3. 使用命令行的route命令手工配置宿主机路由表,修改默认网关到VMnet2

  6. luoqeng 回复

    上述提供的方案就是啊,局域网其他机器也可以通过虚拟机里面的 OpenWrt 上网。

  7. 回复

    笔记本无线网卡,好像不可以

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请输入验证码 * 请输入正确的验证码