VMware安装OpenWrt虚拟机让宿主机上网
OpenWrt是一个常用的路由器操作系统,基于Linux可以实现丰富的功能。将其配置为软路由虚拟机,可以让宿主机及其他虚拟机通过OpenWrt虚拟机上网。完成后,可以利用x86软路由的强大性能部署透明代理等各种功能。
虚拟机的创建
以VMware Workstation 15.1为例,在新建虚拟机中使用自定义配置、Workstation15.x硬件兼容性、稍后安装操作系统。
选择客户机操作系统为Linux,版本为其他Linux 4.x 或更高版本内核64位。并对虚拟机进行命名。
配置处理器核心数、内存(根据软路由中将要配置的软件选择合适的配置)。
配置网络类型为使用桥接网络。
配置硬盘,使用LSI Logic类型SCSI控制器、SCSI硬盘类型、创建新虚拟磁盘、配置磁盘大小、命名磁盘文件。
选择自定义硬件,删除不必要的硬件,并添加新的VMnet1仅主机模式网卡。完成配置。
写入OpenWrt固件
将新建的虚拟机磁盘挂载到现有的Linux虚拟机上。
在现有虚拟机上下载OpenWrt压缩包、解压并写入到硬盘中。
1
2
3# wget http://downloads.openwrt.org/releases/18.06.4/targets/x86/64/openwrt-18.06.4-x86-64-combined-ext4.img.gz
# gunzip openwrt-18.06.4-x86-64-combined-ext4.img.gz
# dd if=openwrt-18.06.4-x86-64-combined-ext4.img.gz of=/dev/sdb从作为工具用的虚拟机上删除OpenWrt虚拟磁盘。
配置OpenWrt虚拟机
对OpenWrt虚拟机执行快照,方面后续操作错误时进行恢复。
默认情况下OpenWrt虚拟机的网卡绑定是反的(WAN与LAN交换),因此需要在OpenWrt虚拟机控制台上修改网卡绑定。修改时需要将/etc/config/network文件中的eth0和eth1交换。
1
2# vim /etc/config/network
# reboot
断开主机网络(网线、WiFi),在浏览器地址栏输入OpenWrt默认地址192.168.1.1进入配置页面。点击Login进入到OpenWrt管理页面(无需密码)。点击Go to password configuration进入密码配置页面,输入密码、确认密码后拖动到页面底部点击Save保存密码。
接着进入Network->Interfaces进行网络的配置。默认情况下WAN使用DHCP上网(电脑连接到路由器),如果使用其他方式上网需要在此处进行配置。LAN网络在默认情况下使用192.168.1.1地址并提供DHCP服务,为了避免与常见的路由器冲突,我们将其地址改为192.168.3.1。
点击需要修改的接口(此处为LAN)的Edit按钮,在跳转到的界面上填写新的IP地址值,点击页面底部的Save保存配置。
在界面右上角点击UNSAVED CHANGES进入配置保存界面,点击Save & Apply按钮完成配置的保存。
重启OpenWrt虚拟机使修改生效,并重启VMnet1虚拟机网卡重新获取IP。
可以通过Network->Firewall->Port Forwards配置端口转发向外部提供服务(需要在控制台使用命令行安装ipset包)。
1
2# opkg update
# opkg install ipset可以通过Network->Firewall->Traffic Rules配置SNAT将通过网络包的源地址修改为OpenWrt的LAN地址。通过这种方式,可以避免内网服务器将经过端口映射的包不经过OpenWrt虚拟机进行转发而不能被客户接收的问题。
在控制台使用命令行安装shadow-common、shadow-useradd包后即可通过useradd命令新增用户。新增完成后使用passwd修改密码。创建用户home目录,并编辑/etc/passwd文件指定新用户shell。
1
2
3
4
5
6# opkg update
# opkg install shadow-common shadow-useradd
# useradd newUserName
# mkdir -p /home/newUserName
# passwd newUserName
# vim /etc/passwd # 在newUserName行尾添加/bin/ash后可以通过SSH登录
配置宿主机通过OpenWrt上网
关闭物理网卡的IP协议(方案1)。使用这种方案,物理网卡在宿主机上没有IP地址,无法联网。而OpenWRT虚拟机的WAN口桥接到了物理网卡上,接管了IP层的工作。此时,宿主机通过VMnet1仅主机模式虚拟网卡连接到OpenWrt虚拟机LAN口通过OpenWrt上网。因此在OpenWrt上配置的透明代理等可以在宿主机上使用。需要注意的是,WiFi连接工作在数据链路层,其连接、断开、密码等仍在宿主机上进行管理。
取消物理网卡的默认网关(方案2)。使用这种方案,宿主机物理网卡上虽然配置了IP地址,但不指定默认网关。对主机路由表中不存在的IP条目,将通过VMnet1上配置的默认网关发送,从而实现了通过OpenWrt虚拟机上网。使用这种方式,可以在物理网卡上保留静态IP地址,对于需要使用静态IP来连接外部设备的情况很有用。
配置其他虚拟机使用OpenWrt来提供网络服务
- 其他虚拟机需要通过OpenWrt虚拟机上网时只需要将网卡修改为VMnet1仅主机网络并使用DHCP方式上网即可实现目标。
配置OpenWrt虚拟机开机自启
将虚拟机关机,配置为共享虚拟机
在管理虚拟机电源操作中将OpenWrt虚拟机配置为开机自启
打开虚拟机电源