【保姆级教程】如何在 Windows 上实现和 Linux 子系统的端口映射

写在前面

上次分享【保姆级教程】Windows上安装Linux子系统,搞台虚拟机玩玩,向大家介绍了什么是虚拟机以及如何在Windows上安装Linux虚拟机。对于开发同学而言,经常遇到的一个问题是:很多情况下代码开发需要依赖 Linux 系统,而在 Linux 子系统上搭建的服务,是无法通过 localhost 在本地浏览器打开的,这时就需要 端口映射了,将 Linux 子系统上的端口映射到本地 Windows 机器上。

本篇分享将手把手带领大家完成这一功能需求。整个流程需要分为如下几步:

  • 查看 IP
  • 查看端口
  • 端口映射

1 查看 IP

windows 和 linux 系统中查看 IP 地址的命令是不一样的,具体而言。

Windows 下查看 IP

直接打开一个终端,输入 ipconfig,可以看到本地的 IPv4 地址。
在这里插入图片描述

Linux 下查看 IP

Linux 下查看 IP 地址,有如下三种方式:

ifconfig # 需要 sudo apt install net-tools
hostname -I
ip addr show eth0

如果是通过 wsl 方式在 windows 上安装的虚拟机,还可以在windows的终端,通过如下命令查看 Linux 子系统的 IP:

wsl -- ifconfig eth0

2 查看端口

Linux 系统中如果服务启动后,可以通过如下命令查看都有哪些端口已经被占用了:

netstat -ntlp

如果发现有的端口已经被占用了,还可以根据进程号 kill 掉对应进程。

在其中找到需要映射出来的端口号,进入下一步。

3 端口映射

Windows 下以管理员身份运行shell,然后运行如下命令实现端口映射:

netsh interface portproxy add v4tov4 listenport=8000 listenaddress=0.0.0.0 connectport=8000 connectaddress=172.17.0.37 # 注意这里是0.0.0.0而非127.0.0.1
netsh interface portproxy add v4tov4 listenport=5000 listenaddress=0.0.0.0 connectport=5000 connectaddress=172.17.0.37

其中 connectaddress 就是 Linux 子系统的 IP,注意如果你的服务中有两个端口,需要将两个端口都映射出来。

查看是否添加成功:

netsh interface portproxy show all

调试结束后,可以删除端口映射:

netsh interface portproxy delete v4tov4 listenport=8000 listenaddress=0.0.0.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/596476.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7下docker安装jenkins【使用docker-compose图文教程】

个人记录 前置条件:安装Docker与Docker-compose Centos7安装Docker与Docker-compose【图文教程】 查看jenkins最新的版本 https://www.jenkins.io/download/ 配置docker-compose.yml vim docker-compose.yml按i进行编辑模式,粘贴如下内容。把image里…

常见现代卷积神经网络(Pytorch 09)

本章将介绍现代的 卷积神经网络架构,许多现代卷积神经网络的研究都是建立在这一章的基础上的。在本章中的每一个模型都曾一度占据主导地位,其中许多模型都是 ImageNet竞赛 的优胜者。ImageNet竞赛自2010年以来,一直是计算机视觉中监督学习进展…

.NET8 和 Vue.js 的前后端分离

在.NET 8中实现前后端分离主要涉及到两个部分:后端API的开发和前端应用的开发。后端API通常使用ASP.NET Core来构建,而前端应用则可以使用任何前端框架或技术栈,比如Vue.js、React或Angular等。下面是一个简化的步骤指南,帮助你在…

深入浅出 -- 系统架构之Keepalived搭建双机热备

Keepalived重启脚本双机热备搭建 ①首先创建一个对应的目录并下载keepalived安装包(提取码:s6aq)到Linux中并解压: [rootlocalhost]# mkdir /soft/keepalived && cd /soft/keepalived [rootlocalhost]# wget https://www.keepalived.…

隐私计算实训营学习九:隐语多方安全计算在安全核对的行业实践

文章目录 一、业务背景:安全核对产生的土壤二、产品方案:从试点到规模化的路三、技术共建:与隐语的共同成长 一、业务背景:安全核对产生的土壤 业务背景:很多粗放使用数据的方式被新出台的法律法规所规范,…

基于vue+node.js导师选择分配管理系统

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode .设计一套导师选择管理系统,帮助学校进行导师选择管理等繁琐又重复的工作,提高工作效率的同时&#xff0c…

【leetcode面试经典150题】16.接雨水(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

【unity】【C#】延时调用(协程)和场景管理

文章目录 什么是协程协程的应用 - IEnumerator如何控制协程的暂停协程的另一种写法 - Invoke场景管理 多看代码块中的注释 什么是协程 A coroutine alows vou to spreacwhere it left off on the following anc return control toolinencoeframe. 协程允许您将任务分布在多个帧…

打造你的专属云开发环境:支持任意 IDE,任意云服务 | 开源日报 No.215

loft-sh/devpod Stars: 6.9k License: MPL-2.0 devpod 是一个开源的、仅限客户端的、不受限制的工具,可以与任何集成开发环境(IDE)一起使用,并允许您在任何云端、Kubernetes 或本地 Docker 上进行开发。 使用 devcontainer.json…

Github 2024-04-06Rust开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10HTML项目1Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General …

基于Whisper的实时语音识别(1): 流式显示视频帧和音频帧

Whistream (微流)是基于openai-whisper 大语音模型下的流式语音识别工具 本期主要介绍实时显示工具Whishow,可以实时逐帧显示视频流(RTSP/RTMP)和离线文件(mp4,avi等) 下载地址:ht…

K8S之Job和CronJob控制器

这里写目录标题 Job概念适用场景使用案例 CronJob概念适用场景使用案例 Job 概念 Job控制器用于管理Pod对象运行一次性任务,例如:对数据库备份,可以直接在k8s上启动一个mysqldump备份程序,也可以启动一个pod,这个pod…