本帖最后由 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 网络- 接口 "WLAN" 的配置
- DHCP 已启用: 是
- IP 地址: 192.168.2.51
- 子网前缀: 192.168.2.0/24 (掩码 255.255.255.0)
- 默认网关: 192.168.2.1
- 网关跃点数: 0
- InterfaceMetric: 35
- 通过 DHCP 配置的 DNS 服务器: 192.168.2.1
- 用哪个前缀注册: 只是主要
- 通过 DHCP 配置的 WINS 服务器: 无
- 接口 "蓝牙网络连接" 的配置
- DHCP 已启用: 是
- InterfaceMetric: 65
- 通过 DHCP 配置的 DNS 服务器: 无
- 用哪个前缀注册: 只是主要
- 通过 DHCP 配置的 WINS 服务器: 无
- 接口 "Loopback Pseudo-Interface 1" 的配置
- DHCP 已启用: 否
- IP 地址: 127.0.0.1
- 子网前缀: 127.0.0.0/8 (掩码 255.0.0.0)
- InterfaceMetric: 75
- 静态配置的 DNS 服务器: 无
- 用哪个前缀注册: 只是主要
- 静态配置的 WINS 服务器: 无
- 接口 "vEthernet (WSL)" 的配置
- DHCP 已启用: 否
- IP 地址: 172.29.32.1
- 子网前缀: 172.29.32.0/20 (掩码 255.255.240.0)
- InterfaceMetric: 5000
- 静态配置的 DNS 服务器: 无
- 用哪个前缀注册: 无
- 静态配置的 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: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
- link/ether 00:15:5d:0d:15:32 brd ff:ff:ff:ff:ff:ff
- inet <font color="#ff0000">172.29.33.70/20</font> brd 172.29.47.255 scope global eth0
- valid_lft forever preferred_lft forever
- inet<font color="#4169e1"> 172.29.33.80/20</font> brd 172.29.47.255 scope global secondary eth0
- valid_lft forever preferred_lft forever
- inet6 fe80::215:5dff:fe0d:1532/64 scope link
- valid_lft forever preferred_lft forever
复制代码
2. 使用脚本模式, 网上搜索 相当复杂, 找了一个简单的
~/.bashrc 添加如下代码
- # static ip
- if [ "$(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1)" != "172.29.33.80/24" ];
- then
- sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0
- sudo ip addr add <font color="#ff0000">172.29.33.80</font>/24 broadcast 172.29.32.255 dev eth0
- sudo ip route add 0.0.0.0/0 via 172.29.32.1 dev eth0
- fi
复制代码
如果单个 ubuntu 启动, 一切正常, 但启动另一台 ubuntu B, 此台 地址 竟然也是 相同的ip, 172.29.33.80, 如果第一台不启动, 则B台 ip 是默认的 172.29.33.70
|