当前位置: 首页 > news >正文

一个与 WSL2 建立远程的简单方法

前言

众所周知,windows 会通过虚拟交换机给本机和 wsl2(Linux 子系统)分别分配 ip。于是本机重启或重启 wsl 服务的时候会重新分配 ip。之前所作的端口转发,监听之类的都会失效。而如果你搜索 “如何固定 wsl 的 ip”,又会得到一系列复杂的配置方法。且不说是否有用,但这一系列操作十分令人头疼。但是,如果你的 windows 是 win11 22H2 以上,情况就不一样了。仅需一个配置文件,就能让 wsl 与 windows 共享 ip。

具体操作

微软在 2023 年 9 月做了一个更新:适用于 Linux 的 Windows 子系统 2023 年 9 月更新之后,仅需在Windows中的C:\Users<your_username>目录下创建一个.wslconfig文件,然后在文件中写入如下内容:

[experimental]
autoMemoryReclaim=gradual  
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

保存后重启一下 wsl 终端。使用 ip addr 查看 ip,就可以发现与 windows 宿主机完全一致。使用 ssh <wsl账号>@<宿主机ip> -p <wsl中ssh端口> 就可以轻松建立连接。

以上设置非原创,参考了这篇随笔:解决"wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理"至此,可能困扰过你的代理问题也解决了。

其他系统版本

我只能说抱歉,我没有找到有效且简单的方法。不过如果仅仅是远程而不用文件传输(文件传输用 git 之类的其他方式),倒是有一个旁门左道的方法。原理:在 windows 宿主机上安装 ssh,然后使用 ssh 连接 windows。这时候会打开 powershell 的终端。输入 wsl 即可运行当中的 wsl.exe。

操作如下:
  1. 在 windows 上安装 ssh

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

  1. 启动 ssh 服务,设置自启动,看状态。

Start-Service sshd

Set-Service -Name sshd -StartupType 'Automatic'

Get-Service sshd

  1. 更新 wsl ,否则连接后无法启动 wsl。

wsl --update --pre-release

  1. 之后,使用 windows 的账号连接 windows 的 ssh,即可远程 wsl 服务了。

  1. 如果嫌启动 wsl 麻烦,可以再做一个配置,直接把 ssh 的终端设置为 wsl

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\wsl.exe" -PropertyType String -Force

希望对你有帮助。

文章转载自:Joy-word

原文链接:https://www.cnblogs.com/Joy-Word/p/18216423

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

相关文章:

  • 基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
  • 数字认证携手华为鸿蒙生态,升级智慧办公新体验
  • 【Qt】探索Qt绘图世界:自定义控件与视觉效果的全面指南
  • ggplot2绘图如何根据一个变量即区分颜色又区分深浅?
  • 超强算力 Orange Pi Kunpeng Pro 开发板基础测评与体验
  • pyqt绘制各种直线
  • LLM基础知识
  • LLM主要类别架构
  • PTA字符串删除
  • 19、matlab信号预处理中的中值滤波(medfilt1()函数)和萨维茨基-戈雷滤波滤(sgolayfilt()函数)
  • 【Python Cookbook】S01E14 从字典中提取子集
  • 【Linux】进程(4):优先级
  • 论文笔记:Image Anaimation经典论文-运动关键点模型(Monkey-Net)
  • linux系统上shell脚本编写问题总结
  • 【ES】docker安装ES7.14.0+es-head
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【译】理解JavaScript:new 关键字
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS 提示工具(Tooltip)
  • Debian下无root权限使用Python访问Oracle
  • dva中组件的懒加载
  • HTTP 简介
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Kibana配置logstash,报表一体化
  • Laravel5.4 Queues队列学习
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PHP 的 SAPI 是个什么东西
  • Python进阶细节
  • TypeScript实现数据结构(一)栈,队列,链表
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 每天10道Java面试题,跟我走,offer有!
  • 如何在 Tornado 中实现 Middleware
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #ifdef 的技巧用法
  • #NOIP 2014# day.2 T2 寻找道路
  • (¥1011)-(一千零一拾一元整)输出
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (回溯) LeetCode 78. 子集
  • (算法)大数的进制转换
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 物件導向與老子思想 (OO)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Core 成都线下面基会拉开序幕
  • .net core使用ef 6
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .Net7 环境安装配置
  • .NET命令行(CLI)常用命令
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国