iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Window11 WSL2 添加静态IP的脚本
  • 433
分享到

Window11 WSL2 添加静态IP的脚本

Window11 WSL2 添加静态IPWSL2 静态IPwin11添加静态IP 2023-01-12 15:01:31 433人浏览 安东尼
摘要

Window11 WSL2 添加静态IP的脚本方法 基于评论 https://GitHub.com/microsoft/WSL/issues/4210#issuecomment-64

Window11 WSL2 添加静态IP的脚本方法

基于评论 https://GitHub.com/microsoft/WSL/issues/4210#issuecomment-648570493 的思路,我给出一个实现静态IP效果的变通方法。

1.在WSL2 linux中创建一个脚本文件

vim /home/likfees/shell/static-ip.sh
#!/bin/bash

/mnt/c/windows/system32/netsh.exe interface ip show addresses "vEthernet (WSL)" | /mnt/c/WINDOWS/system32/findstr.exe /C:"172.18.16.1" > /dev/null
if [ $? == 1 ]; then
  /mnt/c/WINDOWS/system32/netsh.exe interface ip add address "vEthernet (WSL)" address=172.18.16.1/24
fi

ip addr show eth0 | grep -s "172.18.16.100/24" > /dev/null
if [ $? == 1 ]; then
  ip addr add 172.18.16.100/24 broadcast 172.18.16.255 dev eth0 label eth0:1
fi

注:这段脚本给 Windows 端的"vEthernet (WSL)"加了IPv4 172.18.16.1,给 Linux 端的 eth0 添加 IPv4 172.18.16.1。在使用前,请按需调整网络接口的名称和IP地址。

2.在 WSL2 启动的时候执行该脚本

vim /etc/profile 添加以下内容

sudo /home/likfees/Shell/static-ip.sh

当然如果让 eth0 重新获取了 IP,那么需要手动运行 static-ip.sh

3.win11 能够 ping 通 wsl2,但是 wsl2 无法 ping 通 win11, 经分析主要是 win11 防火墙的原因.
在 win11 中 执行如下命令(管理员运行 powershell 或 cmd ):

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

4.使用静态IP

​Windows 端静态IP 172.18.16.1
​WSL Linux 端静态IP 172.18.16.100

ps:Win11 wsl2 固定IP方案

背景

win11 上通过wsl2安装了ubuntu,想其他电脑通过ssh登入Linux,但每次电脑重启,wsl的IP会变,网上找了个脚本,可以固定wsl的IP。

脚本

@echo off
setlocal enabledelayedexpansion
::先停掉可能在跑的wsl实例
wsl --shutdown ubuntu
if !errorlevel! equ 0 (
    ::检查WSL有没有我需要的IP
    wsl -u root ip addr | findstr "192.168.3.100" > nul
    if !errorlevel! equ 0 (
        echo wsl ip has set
    ) else (
        ::IP不存在则绑定IP
        wsl -u root ip addr add 192.168.3.100/24 broadcast 192.168.3.255 dev eth0 label eth0:1
        echo set wsl ip success: 192.168.3.100
    )
    ::检查宿主机有没有我需要的IP
    ipconfig | findstr "192.168.3.200" > nul
    if !errorlevel! equ 0 (
        echo windows ip has set
    ) else (
        ::IP不存在则绑定IP
        netsh interface ip add address "vEthernet (WSL)" 192.168.3.200 255.255.255.0
        echo set windows ip success: 192.168.3.200
    )
)
 ::为主机设置SSH转发端口
 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=192.168.3.100 connectport=22
pause

到此这篇关于Window11 WSL2 添加静态IP的文章就介绍到这了,更多相关Window11 WSL2 添加静态IP内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Window11 WSL2 添加静态IP的脚本

本文链接: https://www.lsjlt.com/news/177547.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作