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

Windows-WSL-Docker端口开放

本文介绍如何在局域网内访问Windows服务器端口,特别是针对已安装WSL环境并在其中运行Docker服务的情况。主要解决Docker服务向局域网开放端口的配置问题

步骤一:配置转发

当你的应用程运行在WSL中时,需要执行此步骤。

在宿主机(windows)上执行下面的脚本转发下列本地端口:

# 功能说明: 在局域网内开放本地端口
# 将本脚本 在 PowerShell中执行(管理员身份)# 定义要监听、开放的端口列表
$ports = 7080, 8080, 8888, 9000, 9090, 5678
# 表示监听地址, 0.0.0.0 表示匹配所有地址
$listenAddress = "0.0.0.0"
# 定义要转发的地址
$connectAddress = "localhost"
# 重置旧的端口代理设置(如果需要)
iex "netsh interface portproxy reset"
# 遍历端口数组
foreach ($port in $ports) {# 添加新的端口代理设置iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$listenAddress connectport=$port connectaddress=$connectAddress"
}
# 展示转发的端口列表
iex "netsh interface portproxy show all"
  1. 将内容保存为文件,命名为 expose_port.ps1
  2. 以管理员身份打开 PowerShell(右键“以管理员身份运行”)
  3. 为避免遇到权限问题,可以先运行:
Set-ExecutionPolicy RemoteSigned

然后选择 Y
4. 切换到脚本所在目录,例如:

cd E:\test
  1. 运行脚本:
.\expose_port.ps1

至此,端口转发配置完了。


步骤二:防火墙设置

可以采用下面2种方式中的一种即可。

1. 直接关闭防火墙

如下图,把公用网络的防火墙关闭。
在这里插入图片描述

2. 配置入栈规则

• 打开控制面板,进入 Windows Defender 防火墙
• 点击左侧的 高级设置
• 在弹出的窗口中,选择 入站规则,然后点击右侧的 新建规则
• 选择 端口 作为规则类型,点击 下一步
• 指定协议类型(TCP 或 UDP)以及需要开放的端口号,点击 下一步
• 选择 允许连接,继续点击 下一步
• 根据需要选择规则适用的网络类型(域、专用或公用),点击 下一步
• 为该规则命名并保存。
在这里插入图片描述

如上图配置,开放了本地的7000-9999之间的端口。
完成后,指定端口将被防火墙允许访问。

验证

目标:在目标服务器(windows 11)中的wsl里(Ubuntu24.04)使用docker运行plantUML服务为例
先启动服务:

docker run -d --restart always -p 7080:8080 plantuml/plantuml-server:jetty

启动后会监听7080端口:
在这里插入图片描述

说明:在wsl的docker里启动时,对宿主机系统来说监听的只是localhost地址,检测如下(宿主机Powershell中执行):
在这里插入图片描述

此时需要按照步骤一配置转发。

在执行完步骤一和步骤二后,就可以在局域网的其他机器上访问该服务了。如:
在这里插入图片描述


总结

本文将指导您在局域网内访问Windows服务器端口,重点针对已安装WSL并运行Docker服务的情况。主要解决Docker服务向局域网开放端口的配置问题:

  1. 若服务运行在宿主机但监听地址为localhost或127.0.0.1,需将监听地址修改为0.0.0.0或内网IP
  2. 若服务运行在WSL中,需先执行步骤一建立端口映射
  3. 最后还需确保防火墙已开放相应端口
http://www.xdnf.cn/news/1184365.html

相关文章:

  • FunASR实时多人对话语音识别、分析、端点检测
  • NLP验证自动化脚本优化
  • 从热点到刚需:SmartMediaKit为何聚焦B端视频系统建设?
  • 【lucene】AttributeSource概述
  • Ethereum:Geth + Clef 本地开发环境,如何优雅地签名并发送一笔以太坊交易?
  • Linux 内存深度剖析:栈与堆的底层机制与实战指南
  • 汽车免拆诊断案例 | 2010款奔驰E200 CGI车EPS OFF灯异常点亮
  • MCP 与传统集成方案深度对决:REST API、GraphQL、gRPC 全方位技术解析
  • Linux725 磁盘阵列RAID0 RAID1
  • Linux库——库的制作和原理(1)_回顾动静态库、制作使用库
  • docker-compose:未找到命令的检查步骤和修复
  • 从数据孤岛到融合共生:KES V9 2025 构建 AI 时代数据基础设施
  • 65.第二阶段x64游戏实战-替换游戏lua打印可接任务
  • 【论文阅读】-《GenAttack: Practical Black-box Attacks with Gradient-Free Optimization》
  • 人工智能概述
  • 智慧电视:开启养老新时代
  • Linux 设备驱动模型
  • LLM:Day3
  • 计算机算术4-整形乘法
  • UE5多人MOBA+GAS 30、技能升级机制
  • Android补全计划 DrawerLayout使用
  • Chromadb 1.0.15 索引全解析:从原理到实战的向量检索优化指南
  • 飞行控制领军者 | 边界智控携高安全级飞控系统亮相2025深圳eVTOL展
  • 算法思维进阶 力扣 62.不同路径 暴力搜索 记忆化搜索 DFS 动态规划 C++详细算法解析 每日一题
  • 广州 VR 安全用电技术:工作原理、特性及优势探析​
  • 用 Cherry Studio 与 Playwright MCP 实现智能浏览器自动化
  • 多租户系统中的安全隔离机制设计
  • vue使用xlsx库导出excel
  • 负载均衡:提升业务性能的关键技术
  • ATR2652SGNSS全频段低噪声放大器