首页
学习
活动
专区
工具
TVP
发布

使用cmux实现网络端口复用

cmux的作用 一般情况下,每个端口只能为一个服务所用,如果复用,会报"port is already in use" 如果需要复用某个端口,那么可以使用cmux来实现(其实大多数情况下必要性不大.比如我就图...8888端口吉利,http/grpc等服务都用这个端口) cmux[1] 全称 Connection Mux, 是Go生态来复用端口的库, 可以在同一个TCP监听器上服务 gRPC、SSH、HTTPS、...实现原理 cmux的实现原理主要是通过"查看"连接的第一个数据包来确定连接的类型。每种类型的连接都有一个匹配器,这个匹配器可以是自定义的,也可以使用cmux库提供的一些内置匹配器。...helloworld/greeter_client, 然后再 ${GOPATH}/bin/greeter_client -addr localhost:8888 更多可参考 Go每日一库之139:cmux (连接多路复用...github.com/soheilhy/cmux [2] cmux 源码分析: https://wadevan.github.io/post/cmux/ [3] Go每日一库之139:cmux (连接多路复用

8910

一文打尽端口复用 VS Haproxy端口复用

1.概述 ---- Haproxy是一个使用c语言开发的高性能负载均衡代理软件,提供tcp和http的应用程序代理,免费、快速且可靠。 类似frp,使用一个配置文件+一个server就可以运行。...速查: 协议 TPKT SSH 535348 RDP 030000 HTTP(GET) 474554 HTTP(POS) 504f53 HTTP(PUT) 505554 HTTP(DEL) 44454c...规则进行转发 tcp‐request inspect‐delay 3s acl is_http req.payload(0,3) ‐m bin 474554 504f53 505554 44454c...6.端口重定向 ---- 为了不影响正常的80端口的访问,将过来的80端口流量转发到8888端口上。这样用户正常访问80端口时,流量会先转发到8888端口上,再由haproxy转发回80端口。...//blog.csdn.net/qq_28710983/article/details/82194404 https://wenku.baidu.com/view/9f509844e2bd960591c67723

2.6K21
您找到你想要的搜索结果了吗?
是的
没有找到

红蓝对抗 | 利用python脚本实现端口复用

目录 端口复用 端口复用的简单实现(python脚本) 端口复用 端口复用就是在一个开放的端口上,通过对输入的信息进行字符匹配,来运行不同的服务。...端口复用只对输入的信息进行字符匹配,不对网络数据进行任何拦截、复制类操作,所以对网络数据的传输性能丝毫不受影响。端口复用常被黑客用来制作后门。...在winsock的实现中,对于服务器的绑定是可以多重绑定的,在确定多重绑定使用谁的时候,根据一条原则是谁的指定最明确则将包递交给谁,而且没有权限之分,也就是说低级权限的用户是可以重绑定在高级权限用户启动的端口上的...端口复用的简单实现(python脚本) 这是一个TCP端口复用的脚本,使用python3开发,当运行该脚本后,你访问指定的端口,脚本中的路由会自动将你的流量转发到对于的路由上。...公众号后台回复:端口复用 下载脚本。

68910

一条命令实现端口复用后门

‍‍‍0x00:前言‍‍‍‍‍ 说到端口复用,大部分人第一反应肯定是想到内核驱动,需要对网络接口进行一些高大上的操作才能实现。...基本原理介绍 该后门的基本原理是使用Windows的远程管理管理服务WinRM,组合HTTP.sys驱动自带的端口复用功能,一起实现正向的端口复用后门。...因此,在安装了IIS的边界Windows服务器上,开启WinRM服务后修改默认listener端口为80或新增一个80端口的listener即可实现端口复用,可以直接通过Web端口登录Windows服务器...对于安装Windows 2012及以上版本操作系统的服务器来讲,只需要这一条命令即可实现端口复用。...因此需要实现一款支持使用NTLM hash登录的客户端,使用python来实现不难。 ? 0x04. 结语 本文给出了一种使用WinRM作为端口复用后门的方法。

1.9K10

Linux利用iptables做端口复用

目录 iptables做端口复用 方案一:(根据源地址做端口复用) 方案二:(根据源地址源端口端口复用) 方案三:(利用ICMP协议做遥控开关) 方案四:(利用TCP协议做遥控开关) iptables...做端口复用 在做渗透测试的过程中,我们经常会遇到下面这种问题。...但是我们不能通过22端口远程连接,必须得利用80端口端口复用连接。...方案二:(根据源地址源端口端口复用) 以下的命令是根据源地址源端口端口复用,也就是只有来自192.168.10.13主机的33333端口的访问80端口的流量会被转给22端口。...ping -c 1 -s 1111 192.168.10.129 #向目标发送一个长度为 1111 的 ICMP 数据包(加上包头28,总长度实际为1139) 关闭复用 ping -c 1 -s 1112

2.7K11

远程遥控IPTables进行端口复用

远程遥控 IPTables 进行端口复用 现在的问题只有一个,如何区分到 80 端口的正常流量和“复用流量”?...正常的的 HTTP 流量应该让它正常地发往 Apache,而“复用流量”应该前往 22 端口。答案也很简单,只要“复用流量”有特征就可以了。...创建端口复用链iptables -t nat -N LETMEIN# 创建端口复用规则,将流量转发至 22 端口iptables -t nat -A LETMEIN -p tcp -j REDIRECT...开启复用ping -c 1 -s 1111 192.168.33.78向目标发送一个长度为 1111 的 ICMP 数据包(加上包头28,总长度实际为1139) 关闭复用ping -c 1 -s 1112...端口复用链iptables -t nat -N LETMEIN# 端口复用规则iptables -t nat -A LETMEIN -p tcp -j REDIRECT —to-port 22# 开启开关

1.6K60

红蓝对抗 | Windows利用WinRM实现端口复用打造隐蔽后门

目录 WinRM端口复用原理 端口复用配置 新增80端口监听 修改WinRM默认监听的端口 远程连接WinRM WinRM端口复用原理 该端口复用的原理是使用Windows的远程管理服务WinRM,结合...HTTP.sys 驱动自带的端口复用功能,一起实现正向的端口复用后门。...因此,在安装了IIS的Windows服务器上,开启WinRM服务后修改默认监听端口为80或新增一个80端口的监听即可实现端口复用,通过Web端口登录Windows服务器。...端口复用配置 新增80端口监听 对于Windows Server 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口。...修改WinRM默认监听的端口 如果该计算机上原本没有开启WinRM服务的话,则需要将WinRm端口监听端口修改为80端口

2.4K10

C语言链表实现

我学数据结构的时候也是感觉很困难,当我学完后我发现了之所以困难时因为我没有系统的进行学习,而且很多教授都只是注重数据结构思想,而忽略了代码方面,为此我写了这些博文给那些试图自学数据结构的朋友,希望你们少走弯路 我尝试用最简单的语言与代码来描述链表...,事实上它本身也很简单 静态单链表实现 下面一部分的讨论都将围绕上面这幅图片展开,既然是逐步实现,我不考虑在开头就让这个单链表完美实现,它将只有两个部分:链表的创建&遍历链表输出 首先我们要知道一些简单的概念...这个疑问你可以自己解答比较好 动态单链表实现 到这里一个简单的链表就已经实现了,但是我们还需要继续改进,因为我们有时候不知道每个节点储存的数据,所以我们就需要一个动态链表了,下面这个将实现把用户输入的数据以链式结构储存...new node; node *head=a; node *tail=c; a->data=9; a->next=b; a->pre=NULL; b->data=17; b->next=...c; b->pre=a; c->data=6; c->next=NULL; c->pre=b; //输出 /*node *print_head=head; while(print_head

5.3K30

TCP端口复用引发的异常,用setsockopt来解决

TCP端口复用引发的异常,用setsockopt来解决 我们在并发连接一个服务端时候他会出现这种情况 OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次...假如端口被socket使用过,并且利用socket.close()来关闭连接,但此时端口还没有释放,要经过一个TIME_WAIT的过程之后才能使用,这是TNN的相当烦银的,为了实现端口的马上复用,可以选择...setsockopt()函数来达到.端口复用实现,我在这里用Python举个TCP端口复用的例子,UDP套接字要做的完全一样。...我们可以在定义好的端口加这句 from socket import server = socket() server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) server.bind

1.7K30
领券