想法来由

在使用Vscode连接本地虚拟机写代码时,隔一段时间便发现虚拟机IP发生了变化,总是需要修改ssh连接的IP地址未免太过繁琐,便想要为虚拟机设置固定IP地址。同时,由于经常访问外网下载资源,也需要为虚拟机配置系统代理,让其能够使用主机上VPN的系统代理。

开发环境

  • time: 2025-02-27
  • Windows11专业版
  • VMware Pro 17.6.2
  • Ubuntu22.04

配置固定IP

  1. 在VMware虚拟机配置中设置虚拟机网络为桥接模式
  2. 在虚拟机中配置固定IP
# 设置网络配置
sudo vim /etc/netplan/00-installer-config.yaml

文件内容如下:

network:
  ethernets:
    ens33:
      dhcp4: no              # 关闭 DHCP(分配IP)
      addresses: [192.168.138.128/24]  # 你的虚拟机 IP,和主机在同一子网下
      routes:
        - to: default
          via: 192.168.138.208  # 主机网关 IP
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]  # 手动指定 DNS
  version: 2

可能会发现/etc/netplan文件夹下还有00-netcfg.yaml文件和50-cloud.init.yaml文件,我的选择是将其删除

# 查询主机的IPv4地址和网关,不是VMware Network Adapter VMnet1和VMware Network Adapter VMnet8
ipconfig
  1. 启动配置
sudo netplan apply
  1. 重启就能发现虚拟机IP地址固定为你设置的IP地址了

配置VPN代理

  1. 在本地VPN代理中开启局域网连接,我使用的是Clash Verge VPN代理工具设置
  2. 在.bashrc文件中添加代理
cd ~
vim .bashrc

.bashrc添加内容如下:

# 这里将IP地址修改为自己主机的IPv4地址
export http_proxy=http://192.168.138.180:7897
export https_proxy=http://192.168.138.180:7897

启动配置:

source .bashrc

配置Rust代理

Rust全局配置:

cd ~
vim .cargo/config.toml

config.toml添加如下配置内容:(这里将IP地址修改为自己主机的IPv4地址)

[http]
proxy = "socks5://192.168.138.180:7898"

[https]
proxy = "socks5://192.168.138.180:7898"

目前存在的问题

过了一段时间后发现,主机的IP和网关地址并不是固定不变的,这就需要每次修改虚拟机的配置,暂时还未解决,等待之后看看有没有什么比较好的解决办法吧

虚拟机磁盘空间扩容

写TinyKV的时候发现虚拟机磁盘空间不够,需要扩展空间,故此记录下,以下内容来自deepseek回答

# 查看磁盘空间利用情况,磁盘空间不够的话就需要扩容
df -h

# 查看逻辑卷组空间(需物理卷有剩余空间),不够的话就在外部给虚拟机增加空间
sudo vgs

# 扩展根逻辑卷(例如扩展 100G,多多的扩)
sudo lvextend -L +100G /dev/mapper/ubuntu--vg-ubuntu--lv

# 调整文件系统大小(ext4 文件系统)
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

写在最后

看网上的内容陆陆续续配了好几次,总是这里或者那里有问题,今天终于是配好了,好耶。

也使用NAT模式配过,也是网上推荐比较多的,但是网络配置总是有问题,连接不上网络或主机,之后有机会去认真学习一下计算机网络了。

最后,有问题多问AI,还是挺有帮助的。