前言
在公司前端团队成员日常有时会做小工具以解决工作中的一些问题,这些小工具有时候需要分享互相看下,页面性质的需要在浏览器中进行,之前都是在企业微信里发来发去,然后再启动 http-server
服务的方式查看,后来就想着能不能弄个专门的内网服务器部署起来,这样就不用把代码源文件传来传去还得手动运行的方式的查看了
思路
由于不是什么收费的服务,就团队中这么几个人互相看着用,而且只在公司的时候才会用这些工具,因此也没必要单独付费弄个云服务器去管理,想的是本地用虚拟机运行一个 Linux
系统当内网服务器,把前端的小工具部署起来,日常的一些服务端的东西也能远程连接进行测试,这样又能用 Win11
日常办公开发,又能用 Linux
练练部署服务相关的能力
为什么选择 Ubuntu
因为 Ubuntu
有简洁漂亮的界面,交互友好,大部分工具也都支持(如 VSCode, WPS...),又能直接使用 Terminal
进行 Linux
纯命令操作,岂不美哉?
硬件配置和软件版本
- 物理机系统:Windows11家庭中文版
- 系统类型:64位
- 机带 RAM:32.0GB
- 处理器:12th Gen Intel(R) Core(TM) i5-12400 2.50 GHz
- 硬盘:1T
- 虚拟机管理软件:VMware® Workstation 17 Pro
- 虚拟机:Ubuntu22.04.3LTS
Win10及以上版本系统也可以使用
Hyper-V
管理虚拟机,但是这个东西需要 企业版、专业版或教育版 才支持在 Windows 10 上启用 Hyper-V | Microsoft Learn
安装并运行虚拟机
配置网络适配器
网络连接选择 桥接模式(B)
,勾选 复制物理网络连接状态
注意!
这里经过我的测试,如果选择其他网络连接模式,在物理机上无法访问虚拟机中的Web服务
虚拟机安装成功
VMWare Worstation
和 Ubuntu
系统安装好以后应该如下效果,安装过程就不展示,如果遇到问题的看官可以留言讨论
Ubuntu
系统安装好以后,个人可以直接使用了,此时无法提供给团队其他小伙伴使用,因此需要加个远程能力
远程桌面设置
由于是纯内网使用,因此可以使用 XRDP
(www.xrdp.org/) 进行远程访问,好装也好用,以下命令操作全部在 Ubuntu
中进行
更新apt数据源
sudo apt update
安装 XRDP
sudo apt install xrdp
以上步骤执行完以后重启 Ubuntu
系统,重新登录系统,查看ip
查看ip
ifconfig
这里的 10.100.23.43
就是 Windows
系统中的远程桌面连接的地址
注意!
默认这个IP每次重启后都会自动变,如果需要固定IP需单独处理一下
在 Settings -> Sharing
中设置允许远程桌面
将系统设置为注销待登录状态,开始进行远程桌面连接
Windows使用远程桌面连接
Session
选择 Xorg
远程连接输入Ubuntu
系统设置的用户名密码就可以了,连接成功后应该是如下效果
这个默认是 Xfce
桌面主题,并不是 Ubuntu22
系统默认的 GNOME
,到这里就能远程桌面访问操作了,主题虽然变了,该有的东西都有
多人访问的问题
多用户下使用同一个账号登录会互相顶掉
需要设置多个管理员账户,解决远程连接问题
设置其他管理员用户,桌面远程连接主题应用的就是 GNOME
配置前端站点,内网访问
虚拟机中使用 nginx 部署前端服务
虚拟机中的地址为 172.17.0.1:8081
物理机访问虚拟机的Web服务
使用 http://10.100.23.43:8081/
访问
注意!
虚拟中默认使用 80
端口部署的服务,默认只能在个人电脑的物理机中访问,公司内网其他人无法访问,需要单独设置防火墙的端口的出入站规则
设置系统重启后子启动(无效)
Windows11 设置 VMWare 自启动
将 VMware 自动启动服务配置为自动启动类型,请执行以下步骤: 单击 开始 > 运行
。 键入 services.msc
从服务列表中,右键单击 VMware
自动启动服务,然后单击属性
在服务中设置 VMWare
相关服务自启动
VMWare Workstation 配置自动启动虚拟机
文件
- 配置自动启动虚拟机
首次设置可能会提示 无法更新"自动启动"配置。
在 C:ProgramDataVMwareVMware Workstation
目录下找到 vmautostart.xml
文件,设置可写权限即可
小结
以上操作设置完以后 VMWare
服务自动起来了,但是软件没运行起来,折腾了一圈也暂时无解,这方面有了解的看官欢迎留言讨论交流
扩展思考
关于连接服务器也能使用 SSH
的形式,由于我们主要是前端人员在操作,更喜欢使用界面的形式,就没有配置
使用 ssh 连接远程服务器
总结
用工程师思维解决实际问题,吭哧吭哧好几天的研究各种安装重启测试,最后还是有一丝成就感的,当然,我们遇到的这个问题也有其他解决方案,或者更优的解决方案,由于能力和认知有限,不好的地方,敬请谅解
欢迎大家讨论交流,如果文章感觉有用,随手点个赞再走呗
^_^
🥰🥰微信公众号:草帽Lufei