windows端口复用

1. 概述
使用 HTTP.sys 中的 Net.tcp Port Sharing 服务,配合 WinRM 实现端口复用。
优点: HTTP.sys windows 原生机制, WinRM windows 自带功能,动作较小,不易触发主
动防御。
需要管理员权限。
2. 原理
(1) HTTP.sys
HTTP.sys Microsoft Windows 处理 HTTP 请求的内核驱动程序。
为了优化 IIS 服务器性能
IIS6.0 引入(即 Windows Server 2003 及以上版本)
IIS 服务进程依赖 HTTP.sys
HTTP.sys 监听 HTTP 流量,然后根据 URL 注册的情况去分发,以实现多个进程在同一个端口监听 HTTP
量。微软公开了 HTTP Server API 库, Httpcfg Netsh 等都是基于它的。
整个过程描述如下:
Step 1. 注册: IIS 或其他应用使用 HTTP Server API 时,需要先在 HTTP.sys 上面注册 url prefix ,以监听请
求路径。
Step 2. 路由: HTTP.sys 获取到 request 请求,并分发这个请求给注册当前 url 对应的应用。
(2) Net.tcp Port Sharing
Net.tcp Port Sharing 服务是 WCF Windows Communication Foundation ,微软的一个框架)中的一
个新系统组件,这个服务会开启 Net.tcp 端口共享功能以达到在用户的不同进程之间实现端口共享。这个
机制的最终是在 HTTP.sys 中实现的。目前将许多不同 HTTP 应用程序的流量复用到单个 TCP 端口上的
HTTP.sys 模型已经成为 windows 平台上的标准配置。
在以前的 web 应用中,一个 web 应用绑定一个端口,若有其他应用则需要绑定其他的端口才能实现监
听。如下图所示, Web Application 1 绑定了 80 端口后, Web Application 2 再去绑定 80 端口会出错。
现在使用微软提供的 NET.tcp Port Sharing 服务,只要遵循相关的开发接口规则,就可以实现不同的应用
共享相同的 web 服务器端口。如下图中 Web Application 1 Web Application 2 同时绑定在 80 端口。
(3) WinRM
WinRM 全称是 Windows Remote Management ,是微软服务器硬件管理功能的一部分,能够对本地或
远程的服务器进行管理。 WinRM 服务能够让管理员远程登录 windows 操作系统,获得一个类似 telnet
交互式命令行 shell ,而底层通讯协议使用的正是 HTTP
事实上, WinRM 已经在 HTTP.sys 上注册了名为 wsman url 前缀,默认监听端口 5985 。因此,在安装了
IIS 的边界 windows 服务器上,开启 WinRM 服务后修改默认 listener 端口为 80 或新增一个 80 端口的
listener 即可实现端口复用,可以直接通过 80 端口登录 windows 服务器。
3. 指令速查
查询当前注册 url 前缀:
netsh http show servicestate
(1) 开启 winrm 服务
Windows 2012 及以上: winrm 默认启动并监听了 5985 端口。
Windows 2008 :需要手动启动 winrm
winrm quickconfig q
(2) 增加 80 端口复用
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
(3) 更改 winrm 80 端口
默认 5985 端口开启,不需要更改端口。
默认 5985 端口不开启,则更改 winrm 80 端口,否则会因端口改变而引起管理员关注。
winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}

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

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

相关文章

鞋店小程序商城的作用是什么

鞋与服装一样其购买/复购属性都非常足,每个人生活所需无疑促进了品牌多样化、工厂/店铺商家/个人都有很多,其目的都是为了品牌宣传和将更多货卖给下游/客户。 对消费者来说,买鞋渠道线上线下选择比较多,普遍会以品牌为主&#xf…

✬ ✬ ✬ 宁波推进ISO14000认证:共创美好生态家园✬ ✬ ✬

🌈🌈宁波推进ISO14000认证,🍉共创美好生态家园🤩 😃哇!宁波这个大都市🍓真的在努力推进🚈ISO14000认证啊!🚵‍♀️作为一个环保爱好者&#xff0…

文本批量操作实例:如何实现文本批量拆分?实用方法与技巧分享

在文本处理和数据分析的过程中,我们经常会遇到需要批量拆分大量文本数据的情况。文本批量拆分能够大大提高工作效率,减少重复劳动。下面,我们将通过一个实例来介绍如何实现文本批量拆分,并分享一些实用方法与技巧。 一、实例背景 …

U盘管控软件,禁止员工用U盘拷贝机密数据,防止信息通过U盘泄露

随着信息技术的不断发展,U盘等便携式存储设备已成为我们日常工作中不可或缺的工具。然而,随着U盘的普及,企业面临的信息泄露风险也在不断增加。为了确保企业的信息安全,许多企业开始采用U盘管控软件,禁止员工使用U盘拷…

【YOLOv8改进[Backbone]】使用SCINet改进YOLOv8在黑暗环境的目标检测效果

目录 一 SCINet 1 本文方法 ① 权重共享的照明学习 ② 自校准模块 ③ 无监督训练损失 二 使用SCINet助力YOLOv8在黑暗环境的目标检测效果 1 整体修改 2 配置文件 3 训练 其他 一 SCINet 官方论文地址:https://arxiv.org/pdf/2204.10137 官方代码地址&…

STM32平衡车-MPU6050的DMP库移植

本文目录 一、硬件接线二、需要移植的三个文件夹1. DMP文件夹目录2. IIC文件夹目录3. MPU6050文件夹目录 三、文件内容IO12C.cIO12C.hMPU6050.cMPU6050.hmain.c 四、附录1.更改IIC引脚 一、硬件接线 SCL-- PA11 SDA-- PA12 VCC-- 3.3v GND-- GND 二、需要移植的三个文件夹 1.…

winscp断点续传

背景 超大文件上传, scp可能因为网络或其他原因中断,并且已上传完的文件无法同步。如何断点续传呢?使用winscp软件 winscp安装 百度搜索,自行安装 开启断点续传功能 https://jingyan.baidu.com/article/fdffd1f8395529b2e98ca…

图纸管理的高效策略与最佳实践

图纸管理的高效策略与最佳实践 在工程设计、产品研发和建筑行业中,图纸管理是一项至关重要的任务。随着项目规模的扩大和复杂性的增加,如何高效、有序地管理图纸已成为企业和团队关注的焦点。本文将为您介绍图纸管理的高效策略与最佳实践,帮助…

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。 01 神经网络介绍 人工神经网络已经彻底改变了机器学习领域,并成为人工智能的基石,它的设计目的是模仿人类大脑的结构和功能&a…

ubuntu_Docker安装配置

什么是docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有…

『ZJUBCA Collaboration』WTF Academy 赞助支持

非常荣幸宣布,浙江大学区块链协会收到WTF Academy的赞助与支持,未来将共同开展更多深度合作。 WTF Academy是开发者的Web3开源大学,旨在通过开源教育让100,000名开发者进入到Web3。截止目前,WTF开源教程在GitHub收获超15,000 ⭐&a…

【LAMMPS学习】八、基础知识(5.9)LAMMPS 近场动力学

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。 …

Ubuntu软件中心不显示

装完Ubuntu后没有Software -- 更新apt sudo apt update -- 升级apt sudo apt upgrade -- 重启 sudo systemctl reboot-- 安装snap sudo apt-get install snap -- 安装软件商店 sudo snap install snap-store -- 更新软件商店 sudo snap refresh snap-store安装成功&#xff01…

学QT的第二天~

小黑子鉴别界面 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { qDebug()<< "你好&#xff0c;真爱粉"; this->close(); } else { speecher->sa…

【建网护网三十载】 守护不息创新不止,C3安全AI未来!

30年&#xff0c;中国互联网从起步探索到领先全球。1994年4月20日&#xff0c;中国正式开通首条64K的国际专线&#xff0c;标志着我国成功实现与国际互联网的全功能接轨&#xff0c;展开互联网快速发展的三十载。 回望30年&#xff0c;亲历建网&#xff0c;投身建设&#xff0c…

Charles抓包工具

Charles是一个HTTP代理工具&#xff0c;使开发人员能够查看客服端和服务器之间的所有HTTP/ HTTPS/SSL网络请求。 Charles是在PC环境下常用的网络抓包截取工具&#xff0c;在做移动开发时&#xff0c;我们为了调试客户端与服务端的网络通讯协议&#xff0c;常常需要截取网络请求…

大数据集成平台建设方案-word原件资料

基础支撑平台主要承担系统总体架构与各个应用子系统的交互&#xff0c;第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上&#xff0c;实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台&#xff0c;提出了以下要求&#xff1a; (1) 基于平台的基础架构&…

iframe通信postMessage

iframe嵌入页面是实现微前端的方式之一。由于浏览器的跨域限制&#xff0c;iframe与父页面之间的通信变得不是那么容易。postMessage解决了这个问题。从广义上讲&#xff0c;一个窗口可以获得对另一个窗口的引用&#xff08;比如 targetWindow window.parent&#xff09;&…

spring bean生命周期全部过程

Spring Bean的生命周期包括以下全部过程&#xff1a; 实例化&#xff1a;在Spring容器启动时&#xff0c;根据配置文件或注解等信息创建Bean的实例。属性赋值&#xff1a;如果Bean有属性需要进行初始化&#xff0c;Spring容器会自动为这些属性进行赋值。自定义初始化方法&…

线程理论篇1

本章问题&#xff1a;什么是线程?线程的使用场景&#xff1f;什么是线程池&#xff1f;线程池是如何工作的&#xff1f;线程池共享了哪些资源?线程安全代码怎么写&#xff1f;什么是线程安全? 什么是线程&#xff1f; 线程是为了提高进程的效率。进程的地址空间中保存了cpu…