终于找到给 wsl2 分配固定 ip 的方法

2021-01-14 16:35:10 +08:00
 BeautifulSoap

泪流满面,每次重启电脑就会给 wsl2 分配一个随机的 ip 段,这导致了非常多问题

然后搜过之后,大部分方法全是清一色编辑 win10 的 hosts 文件自定义个域名(如 wsl.net 之类的),然后每次重启后更新这个域名的 ip 。但问题是我需要的固定 ip,而不是 DDNS,这类解决方法对于解决问题于事无补

这几天重翻 wsl 的 issue,终于找到了梦寐以求的解决办法。cmd/powershell 管理员权限执行这两行命令( ip 和 wsl 发行版名称根据自己的实际情况做出更改):

wsl -d Ubuntu -u root ip addr add 192.168.50.16/24 broadcast 192.168.50.255 dev eth0 label eth0:1

netsh interface ip add address "vEthernet (WSL)" 192.168.50.88 255.255.255.0

唯一不足是重启后会失效,所以把这两行命令保存为 bat 文件加入系统自启项,每次重启后让它自动设置就行了。这样你的 wsl2 终于有了个固定 ip 。泪流满面

出处: https://github.com/microsoft/WSL/issues/4210#issuecomment-648570493

18915 次点击
所在节点    分享发现
27 条回复
smallthing
2021-04-30 18:05:59 +08:00
其实微软完全可以做一个 GUI,喜欢现有设定的选 default,希望固定 ip 的自己定一个.
UN2758
2021-12-07 04:16:36 +08:00
@BeautifulSoap #20 大佬,在无法设置路由器路由表的情况下,怎么设置其他电脑的路由表啊?比如我有 mac 和 winpc 处于同一局域网,mac 想访问 winpc 上的 wsl2 ,winpc 和 wsl2 设置了新子网 192.168.120.100 和 199 ,mac 上应该如何设置呢
BeautifulSoap
2021-12-07 22:40:46 +08:00
@UN2758 没法碰路由器的话那就只能给 mac 单独设路由表了,mac 具体怎么配置路由表我没 mac 所以不清楚,应该一搜一大把

至于怎么个思路,就是设置 mac 路由表,让 mac 把 192.168.120.199 流量给路由到 winpc 的 192.168.120.100 上就行了,winpc 接收到流量后会自动处理

这方法我在同一台电脑上不同虚拟机上试过没问题
UN2758
2021-12-07 22:59:10 +08:00
@BeautifulSoap #23 忘了说了,mac 和 winpc 的局域网网址是 192.168.1.107 和 111 ,这算是属于另一个子网吧,这种情况下设置路由表也能路由到吗
BeautifulSoap
2021-12-07 23:43:26 +08:00
@UN2758 啊,不好意思我理解错了。想了下和我之前同一台电脑不同虚拟机情况不太一样。这情况应该是没法通过指定路由表来转发流量的
davelm
2022-11-25 09:59:18 +08:00
不知道能不能固定 ipv6 ,这样就能直接公网访问了
gkdgkd
2023-03-16 20:21:18 +08:00
@interim 这个好,学到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744955

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX