首页 > 其他分享 >外部网络通过ssh连接WSL2

外部网络通过ssh连接WSL2

时间:2024-03-10 14:23:09浏览次数:19  
标签:容器 外部 WSL2 端口 WSL 防火墙 ssh 设置 true

外部网络通过ssh连接WSL2

需要配置wsl2网络模式为镜像模式,并打开防火墙。最终可以实现通过局域网访问WSL2容器,同时当宿主机可以访问ipv6时,容器也自动支持。

  1. 修改wsl位置文件.wslconfig​​,主要有以下两点关键步骤

    • 设置网络模式为镜像模式networkingMode=mirrored​​
    • 打开防火墙firewall=true​​
    [wsl2]
    # 限制容器内存上限, 根据各自机器及需求设置
    memory=24GB
    
    # 配置网络模式为镜像模式,网络将于宿主机相同
    networkingMode=mirrored
    
    # 更改将 DNS 请求从 WSL 代理到 Windows 的方式
    dnsTunneling=true
    
    # 如果设置为 true,则 Windows 防火墙规则以及特定于 Hyper-V 流量的规则可以筛选 WSL 网络流量
    firewall=true
    
    # 强制 WSL 使用 Windows 的 HTTP 代理信息, 默认为false 是否打开看个人的需要
    #autoProxy=false
    
    # 实验性功能配置
    [experimental]
    
    # 检测空闲 CPU 使用率后,自动释放缓存的内存。 设置为 gradual 以慢速释放,设置为 dropcache 以立即释放缓存的内存。默认值为disable
    autoMemoryReclaim=gradual
    
    # 仅当 wsl2.networkingMode 设置为 mirrored 时才适用。 如果设置为 True,将会允许容器通过分配给主机的 IP 地址连接到主机,或允许主机通过此方式连接到容器。 请注意,始终可以使用 127.0.0.1 环回地址 - 此选项也允许使用所有额外分配的本地 IP 地址。
    # 意味着局域网内别的设备可以通过宿主机ip访问容器
    hostAddressLoopback=true
    
    # 仅当 wsl2.networkingMode 设置为 mirrored 时才适用。 指定 Linux 应用程序可以绑定到哪些端口(即使该端口已在 Windows 中使用)。 通过此设置,应用程序能够仅侦听 Linux 中的流量端口,因此即使该端口在 Windows 上用于其他用途,这些应用程序也不会被阻止。 例如,WSL 将允许绑定到 Linux for Docker Desktop 中的端口 53,因为它只侦听来自 Linux 容器中的请求。 应在逗号分隔列表中设置格式,例如:3000,9000,9090
    # 默认为Null
    ignoredPorts=22
    
    # 如果设置为 true,则任何新创建的 VHD 将自动设置为稀疏。
    sparseVhd=true
    
  2. 运行管理员权限的Powershell​终端,打开防火墙

    # 开启防火墙
    Set-NetFirewallHyperVVMSetting -Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ -DefaultInboundAction Allow
    
    # 开启特定端口防火墙,比如10022端口
    New-NetFirewallHyperVRule -DisplayName "allow WSL ssh" -Direction Inbound -LocalPorts 10022 -Action Allow
    
  3. 至此可以从外部访问WSL2容器内部

    image

参考资料

WSL 中的高级设置配置#主要WSL设置

WSL文档-概念-网络注意事项#镜像模式网络

Can't ssh into wsl with networking mode mirrored #10597

标签:容器,外部,WSL2,端口,WSL,防火墙,ssh,设置,true
From: https://www.cnblogs.com/Biiigwang/p/18064134/external-network-connects-wsl2-via-ssh-zy7ktp

相关文章

  • 详细解读Gitlab Runner中SSH到远程服务器的细节
    生成特有的密钥对用windows的命令行生成即可$ssh-keygen-trsa-C"[email protected]"执行如下图:上述命令行中,密钥保存在C:\Users\d211.ssh目录下:把上述公钥拷贝到目标服务器的对应用户目录下比方我们要在目标服务器,用上述私钥,以用户runner的身份登入。那么我们在目标......
  • ssh安全登录基础篇
    什么是SSHSSH或SecureShell协议是一种远程管理协议,允许用户通过Internet访问、控制和修改其远程服务器。SSH服务是作为未加密Telnet的安全替代品而创建的,它使用加密技术来确保进出远程服务器的所有通信都以加密方式进行。SSH是一种网络协议简单说,SSH是一种网络协议,用......
  • windows 10/11 下安装 ssh 服务
    https://zhuanlan.zhihu.com/p/634969945 windows一般自带ssh服务,只是需要去把服务开启下:检查OpenSSH的可用性以管理员身份打开PowerShell并运行:Get-WindowsCapability-Online|Where-ObjectName-like'OpenSSH*'命令返回Name:OpenSSH.Client~~~~0.0.1......
  • java使用ssh通道连接mysql
    添加依赖<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency>添加配置importcom.jcraft.jsch.JSch;......
  • SSH
    ubuntu配置ssh1、查看ssh服务的开启状态ps-e|grepssh2、如果终端没有返回sshd,则需安装ssh-serversudoapt-getinstallopenssh-server3、启动服务sudo/etc/init.d/sshstart现在查看ssh服务状态就有sshd了!......
  • sshpass的离线安装与卸载
    sshpass的离线安装与卸载一.安装1.解压安装tar-zxvfsshpass-1.05.tar.gzcdsshpass-1.06./configure  #需要安装gcc环境makemakeinstall 2.验证安装成功 sshpass-V 二.卸载cdsshpass-1.05/makeuninstallmakeclean   ......
  • SpringBoot使用外部Web容器的解决方案
    SpringBoot默认内嵌了Web容器(如Tomcat、Jetty或Undertow),这使得应用可以作为独立的可执行JAR或WAR文件运行,无需外部Web容器。然而,在某些情况下,你可能想要将SpringBoot应用部署到外部的Web容器中,比如ApacheTomcat或Jetty。嵌入式的Web容器:应用可以打包成可执行的Jar。优点:简单......
  • Oracle 外部表
    在Oracle数据库中,外部表是一种特殊类型的表,它们并不存储数据在数据库中,而是指向外部数据源(如文本文件、CSV文件、Excel文件等),通过外部表可以在数据库中对外部数据进行查询和操作。外部表与常规表之间的关联主要是通过创建表的方式来实现。要创建外部表并将其与数据库中的其他表进......
  • Xterminal-SSH管理工具推荐
    官网常做服务器取证、网站重建的童鞋们都知道,我们需要频繁的阅读、修改文件或是代码,而Xterminal就支持远程直接查看、修改文件同时它还支持常用命令的提示(虽说全部提示需要购买会员)同时也是支持本地终端的使用当然sftp是必然带的(点名某Shell)还可以添加常用命令,双击即可......
  • CentOS7.9升级OpenSSH到9.6p1
    mkdir/softwarecd/softwarewgethttps://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gzwget--no-check-certificatehttps://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gzyuminstall-ygccgcc-c++glibcmakeautomakeautoconfzlibzlib-d......