查看: 770|回复: 1
收起左侧

[求助] win11中wsl2导入多个实例,如何设置NAT网络地址转发模式的静态IP

[复制链接]
eremiter
发表于 2024-7-31 22:12:32 | 显示全部楼层 |阅读模式
本帖最后由 eremiter 于 2024-7-31 22:19 编辑

目的: 不同ubuntu24.04 虚拟机, 可以使用相同的 80端口 (类似 oracel vbox, vm), 需要设置 不同的静态 NAT 地址
步骤: 导入
wsl --import Ubuntu-24.A D:\wsllinux\Ubuntu24.A D:\wsllinux\Ubuntu-24.04.tar  --version 2

wsl --import Ubuntu-24.B D:\wsllinux\Ubuntu24.B D:\wsllinux\Ubuntu-24.04.tar  --version 2
这两台默认启动NAT 地址全是相同的, 真是奇怪, 明明是 dhcp

宿主机 win11 网络
  1. 接口 "WLAN" 的配置
  2.     DHCP 已启用:                          是
  3.     IP 地址:                           192.168.2.51
  4.     子网前缀:                        192.168.2.0/24 (掩码 255.255.255.0)
  5.     默认网关:                         192.168.2.1
  6.     网关跃点数:                       0
  7.     InterfaceMetric:                      35
  8.     通过 DHCP 配置的 DNS 服务器:      192.168.2.1
  9.     用哪个前缀注册:                   只是主要
  10.     通过 DHCP 配置的 WINS 服务器:     无

  11. 接口 "蓝牙网络连接" 的配置
  12.     DHCP 已启用:                          是
  13.     InterfaceMetric:                      65
  14.     通过 DHCP 配置的 DNS 服务器:      无
  15.     用哪个前缀注册:                   只是主要
  16.     通过 DHCP 配置的 WINS 服务器:     无

  17. 接口 "Loopback Pseudo-Interface 1" 的配置
  18.     DHCP 已启用:                          否
  19.     IP 地址:                           127.0.0.1
  20.     子网前缀:                        127.0.0.0/8 (掩码 255.0.0.0)
  21.     InterfaceMetric:                      75
  22.     静态配置的 DNS 服务器:            无
  23.     用哪个前缀注册:                   只是主要
  24.     静态配置的 WINS 服务器:           无

  25. 接口 "vEthernet (WSL)" 的配置
  26.     DHCP 已启用:                          否
  27.     IP 地址:                           172.29.32.1
  28.     子网前缀:                        172.29.32.0/20 (掩码 255.255.240.0)
  29.     InterfaceMetric:                      5000
  30.     静态配置的 DNS 服务器:            无
  31.     用哪个前缀注册:                   无
  32.     静态配置的 WINS 服务器:           无
复制代码


目前, 不同 ubuntu 实例虚拟机, 竟然全是相同的 NAT 地址, 造成相同的端口服务无法启动

1. 参考https://www.cnblogs.com/ywhb/p/17156461.html 网桥模式, 改为 NAT模式, 这个可能是最佳的解决方法, 不知哪个步骤不行
在 这个目录
sudo vim /usr/lib/systemd/network/wsl_external.network 下, 新建一个 wsl_external.network文件, 运行 , 关闭wsl --shutdown , 重新进入, 变成两个地址,
不知错在哪里, 同一台 ubuntu 没问题, 再启动一台还是有冲突.

  1. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  2.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3.     inet 127.0.0.1/8 scope host lo
  4.        valid_lft forever preferred_lft forever
  5.     inet6 ::1/128 scope host
  6.        valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  8.     link/ether 00:15:5d:0d:15:32 brd ff:ff:ff:ff:ff:ff
  9.     inet <font color="#ff0000">172.29.33.70/20</font> brd 172.29.47.255 scope global eth0
  10.        valid_lft forever preferred_lft forever
  11.     inet<font color="#4169e1"> 172.29.33.80/20</font> brd 172.29.47.255 scope global secondary eth0
  12.        valid_lft forever preferred_lft forever
  13.     inet6 fe80::215:5dff:fe0d:1532/64 scope link
  14.        valid_lft forever preferred_lft forever
复制代码


2. 使用脚本模式, 网上搜索 相当复杂, 找了一个简单的
~/.bashrc 添加如下代码

  1. # static ip
  2. if [ "$(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1)" != "172.29.33.80/24" ];
  3. then
  4. sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0
  5. sudo ip addr add <font color="#ff0000">172.29.33.80</font>/24 broadcast 172.29.32.255 dev eth0
  6. sudo ip route add 0.0.0.0/0 via 172.29.32.1 dev eth0
  7. fi
复制代码


如果单个 ubuntu 启动, 一切正常, 但启动另一台 ubuntu B, 此台 地址 竟然也是 相同的ip, 172.29.33.80, 如果第一台不启动, 则B台 ip 是默认的 172.29.33.70




ddxuchen
发表于 2024-7-31 23:26:36 | 显示全部楼层
感谢楼主分享
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-22 12:20 , Processed in 0.126331 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表