wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)

这篇具有很好参考价值的文章主要介绍了wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境信息

​ wsl2 中linux版本:ubuntu

​ windows版本: win10/win11

问题描述

最近装了wsl2,使用vscode远程连接wsl2时遇到了如下问题:
1、wsl2的ip无法固定
2、wsl2的ssh服务不能自动开启。

尝试了网上许多方法,都不能解决,于是决定自己写python脚本解决。

如下方案可以自动将wsl2的ip同步到vscode remote ssh的config文件中,同时自动开启wsl2中的ssh服务。

不算很完美的方案,但至少每次开机不用手动开启wsl2中ubuntu的ssh服务,不需要设置vscode中remote ssh的config文件中ip地址了,还算比较方便。

方案概览

wsl2的bash开启时自动执行python脚本,将ubuntu中最新的ip写入vscode的remote ssh的config文件中。

每次打开一个bash,都会同步一次。

注意事项

1、remote ssh 的config文件中wsl2远程连接的配置中的ip地址必须在第二行,且HostName前是四个空格。如下图所示
wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)
2、每次打开一个wsl2中的ubuntu终端,都会自动同步一次。
3、将ubuntu终端设为windows开机默认打开。(必须主动打开ubuntu 终端,才会自动同步)
wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)

4、直接在wsl2的ubuntu访问、修改windows中的vscode remote ssh的config。windows的盘符都挂载在/mnt下。
wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)

需要解决如下几个问题。

1、需要在wsl2中ubuntu设置普通用户sudo时 免密登录。
比如 sudo service ssh start 时,不需要输入密码
2、wsl2中的ubuntu需要安装python3

sudo apt install python3

好吧,下面正式开始操作!

wsl2设置普通用户sudo时免密

由于wsl2脚本中使用sudo命令,如果需要输入密码的话,很不方便,所以需要先设置sudo 免密,

ubuntu普通用户设置sudo免密

设置ubuntu终端开启时自动运行wsl2同步ip脚本

  1. vim ~/.bashrc

  2. 在最下方加上
    python3 ~/.my_init_sh/WSL_IP_UBUNTU.py

  3. cd ~ && mkdir .my_init_sh

  4. cd .my_init_sh

  5. 在.my_init_sh目录下放置如下python脚本(WSL_IP_UBUNTU.py)

    注意: 如下脚本只需要修改config文件目录,详情看注释。

# WSL_IP_UBUNTU.py
import os
import re

# 请修改这行!仅仅需要修改这行!    改为您的config文件目录
config_file = "/mnt/c/Users/82383/.ssh/config"

def writefile(content):
    f = open(config_file,"w")
    for line in content:
        f.write(line)
    f.close()

def command(command):
    f = os.popen(command)
    lines = f.readlines()
    return lines

def get_config():
    f = open(config_file,"r")
    lines = f.readlines()
    strip_line = lines[1].strip()
    split_list = strip_line.split()
    ubuntu_ip = split_list[1]
    print("origin config ip = ", ubuntu_ip)
    return  lines

def get_ubuntu_ip():
    lines = command("ifconfig")
    strip_line = lines[1].strip()
    split_list = strip_line.split()
    print("now ubuntu ip    = ", split_list[1])
    return split_list[1]
   
def is_ok(lines):
    for line in lines:
        if re.findall("done", line):
            return True
    return False

def start_ssh():
    lines = command("ps -e | grep sshd")
    if len(lines) == 0:
        ret_lines = command("sudo service ssh start")
        if is_ok(ret_lines):
            print("sshd start success!")
            return True
    elif len(lines) >= 1:
        print("sshd is running!")
        return True
    
    print("sshd start failed!")
    return False
    
def sync_ip():
    ubuntu_ip = get_ubuntu_ip()
    lines = get_config()
    lines[1] = "    HostName {}\n".format(ubuntu_ip)
    writefile(lines)
    print("set vscode remote ssh config ip successfully [{}]".format(config_file))
    

if __name__ == '__main__':
    print("---------------start sync ip!------------------")
    ret = start_ssh()
    if ret:
        sync_ip()
    print("---------------end sync ip!--------------------")


到此,每次开启一个ubuntu bash,都会自动同步ip一次。

验证

在powershell中使用 wsl --shutdown,关闭ubuntu,然后新打开一个ubuntu bash,就自动同步了。
wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)文章来源地址https://www.toymoban.com/news/detail-437016.html

到了这里,关于wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows10 安装WSL2, Ubuntu,docker

    阅读时长:10分钟 本文内容: window上安装ubuntu虚拟机,并在虚拟机中安装docker,通过docker部署数字人模型,通过vscode链接到虚拟机进行开发调试.调试完成后,直接部署在云端即可. WSL2(Windows Subsystem for Linux)是windows系统默认支持的功能,也就是Windows Linux子系统,类似于一台

    2024年02月12日
    浏览(36)
  • 【WSL2】在Windows和wsl2中互相网络访问的优雅做法,不用再手动写死IP了

    目前在windows与windows的wsl系统之间,还无法通过相对较固定的方式来互相网络访问,通常需要使用各自的ip来互相访问,而ip可能不是很直观并且可能会有变更,当前教程解决了这个问题,通过hosts映射的方式打通wsl与windows宿主机之间的访问。 脚本的原理:在linux启动时或she

    2024年04月17日
    浏览(21)
  • windows10在WSL2中安装Centos发行版+git+miniconda+vscode

      安装的操作系统最低要求为Windows10版本2004或者window11,Windows操作系统及具体版本查看办法为:点击键盘上的Windows徽标键,键入winver,如下图:   点击打开,即可查看Windows系统对应的版本。   启用Windows功能中的虚拟平台、适用于Linux的Windows子系统和Windows虚拟机监控

    2024年02月10日
    浏览(35)
  • windows wsl2(ubuntu)使用xinference快速部署ai模型

    Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,

    2024年04月11日
    浏览(39)
  • 在Windows10中安装WSL2(Ubuntu 22.04.2 LTS)

    WSL 1 于 2016 首次发布,在 windows 系统中可以使用linux系统。 但是WSL1的缺点有: 文件 I/O 慢,尤其是在大量IO操作时,例如使用 git 克隆仓库; 不支持内核程序; WSL 2 针对以上两个缺点进行了修正: 相比较于 WSL 1 使用翻译层将 linux 系统调用转化成 windows 系统调用,WSL 2 使用了

    2024年02月14日
    浏览(36)
  • Windows 10 安装配置WSL2(ubuntu20.04)教程 超详细

    超详细windows安装配置WSL2(ubuntu20.04)步骤 Windows上快速安装WSL2教程 windows wsl2安装 Windows Subsystem for Linux(简称WSL),Windows下的Linux子系统,是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubu

    2024年02月12日
    浏览(46)
  • Windows中wsl2为虚拟Linux子系统设置固定IP的方法

    ​ 在使用Windows的wsl时,经常需要Linux子系统和Windows宿主机之间通信。但wsl默认情况下,Linux子系统和Windows vEthernet虚拟适配器的IP每次启动后都不一样。给很多应用带来不便。在百度上很多解决方法,经过之次尝试,认为下面的方法简单有效。 我解决此问题时的系统环境:

    2023年04月09日
    浏览(26)
  • 手把手教学基于Windows11的wsl2使用ubuntu子系统

    打开“控制面板“-“程序“-“程序和功能“-“启用或关闭windows功能“(侧边栏)-勾选“hyper-v“、“适用于Linux的Windows子系统“、“虚拟机平台“ 控制面板:开始菜单中搜索打开即可 选择“程序”,进入后选择“程序和功能” 选择“启用或关闭windows功能” 勾选“Hyper-V“

    2024年01月20日
    浏览(34)
  • Windows系列(特别有参考意义):Windows 10 安装配置WSL2(ubuntu20.04)教程 超详细

    超详细windows安装配置WSL2(ubuntu20.04)步骤 Windows上快速安装WSL2教程 windows wsl2安装 1.什么是WSL? Windows Subsystem for Linux(简称WSL),Windows下的Linux子系统,是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是

    2024年04月16日
    浏览(40)
  • 【WSL/WSL2-Ubuntu】突破界限:不使用服务器在一台Windows搭建Nginx+FastDFS

    随着软件开发领域的快速发展,跨平台的开发环境变得日益重要。Windows Subsystem for Linux(WSL)和WSL 2为开发者提供了在Windows操作系统上体验Linux环境的便捷途径。本文将引导读者深入探索WSL/WSL 2,并教授如何在其中搭建Nginx和FastDFS,为开发和测试提供更加灵活、高效的工作环

    2024年02月20日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包