• wsl2的nat网络, 让我再次理解了为什么我的网络配置总是ping不通,记录下总结


    wsl2默认是nat模式, 其实和vm 的nat模式一样

    有时候怀疑自己, 为什搞好了网络下次又会遇到问题

    我自一致陷入了一个错误的思维模式: 尽量让我的宿主机和虚拟机位于统一网段, 其实这个思想如果我们使用的桥接模式, 这个自然没有任何问题, 但是我们往往使用nat模式, nat默认本来就是用来连接两个网络, 如果我们让我们的虚拟机和宿主机位同一个网段, 那意味着什么?

    举个例子
    vm ip : 192.168.1.100
    host ip : 192.168.1.200

    那么我们的网关就一般是这样的
    vm gw: 192.168.1.1
    host gw : 192.168.1.1

    这样看似没有问题, 但是由于网关host优先级高些, 就会出现hsot可以ping 虚拟机, 但是虚拟机配置的网关实际失效了, vm无法ping hsot

    所以思路要纠正过来, nat就是用来连接两个网段的, 我们尽量不要和宿主机处于同一个网段下

    其次配置时候要注意, vmnet8就是nat使用的虚拟网卡

    假设我们 ip地址如下
    vm ip: 192.168.2.3
    host ip: 192.168.1.3

    并且我们的hsot的网关: 192.168.1.1

    那么我们的vmnet8应该配置: 192.168.2.1
    在这里插入图片描述
    注意vmware下还有配置, 网段应该配置192.168.2.0/24
    网关应该配置192.168.2.2(因为192.168.2.1被虚拟网卡占用了, 这个也是vmware推荐配置, 千万不要改成了192.168.2.1, 我之前不懂事, 总喜欢改成1, 只要不和虚拟网卡以及虚拟机ip地址冲突都可以配置, 总之虚拟网卡和虚拟主机的网关可以任意设置值, 只要不冲突即可)

    在这里插入图片描述

    其实我们发现, 我们让处于统一个网段的不是vm和宿主机
    而是虚拟网卡和我们vm处于同一个网段下面. 我们vm和虚拟网卡通讯, 虚拟网卡通过本地注册的路由表找到宿主机来和宿主机通讯

    注意: 如果你尝试测试各种配置, 记得要重启网络, 不知道什么原因, 有时候自动生效, 有时候不生效, 开始测试很多情况错误导致我判断错误
    ubuntu重启命令可以用

    service networking restart
    如果没有这个命令
    可以使用
    ifconfig ens33 down
    ifconfig ens33 up
    还有其他方式, 可以上网查下
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    centos

    service network restart
    systemctl restart network
    
    • 1
    • 2

    总结一句话就是: 不同网段, 通过虚拟网卡和宿主机通讯

  • 相关阅读:
    C++虚函数表和虚函数指针
    c++征途 --- 指针
    来自北大算法课的Leetcode题解:85. 最大矩形
    Vue3 动态组件 component:is= 失效
    基于javaweb+mysql的校园招聘平台招聘管理系统(平台、企业、用户)
    redis极速的奥秘
    使用 Transformers 为多语种语音识别任务微调 Whisper 模型
    MySQL 索引&事务
    配置文件config
    80-基于stm32单片机的图书馆噪音检测量分贝仪(源码+原理图)
  • 原文地址:https://blog.csdn.net/yin18827152962/article/details/127834588