美文网首页Kali Linux
端口复用简单实现

端口复用简单实现

作者: 王一航 | 来源:发表于2017-10-20 01:55 被阅读345次

端口复用 :

举一个简单的例子
一台内网服务器 , 一台出口路由器 , 路由器将内网的 80 端口映射到公网
在不了解端口复用技术以前 , 笔者就会单纯地觉得 , 当然用户直接访问 80 端口就只能访问到内网服务器的 HTTP 服务
其实使用端口复用技术是可以达到浏览器访问就会是正常的网页 , 而用 ssh 连接就会是 ssh 终端登录的情况的
事实上 , 我们熟悉的 socks 协议就是高级的端口复用技术的产物

原理 :

  1. 首先实现一个端口转发工具
  2. 在端口转发工具的基础上增加一些逻辑 , 如下
a. 在 accept 到一个新的客户端请求的时候 , 首先读取前几个字节
b. 根据前几个字节判断这个请求是在请求什么服务 ? 
例如 : 
HTTP => GET / POST / HEAD / OPTIONS ...
SSH => SSH-2.0-OpenSSH
  1. 根据第二步中的判断确定要转发的目的端口
  2. 连接目标端口 , 并将之前接收到的数据首先发过去再进行双向传输

给出一个简单的实现 :

端口复用 : https://gist.github.com/WangYihang/517fbc8e1875938aa62e942be250cf8e
端口转发 : https://gist.github.com/WangYihang/e7d36b744557e4673d2157499f6c6b5e


参考文档 :

RFC1928 (SOCKS5)

相关文章

  • 端口复用简单实现

    端口复用 : 原理 : 首先实现一个端口转发工具 在端口转发工具的基础上增加一些逻辑 , 如下 根据第二步中的判断...

  • dft的端口复用原理

    输入端口的复用原理 输出端口的复用原理

  • Web 防火墙的构思

    最近有一个不成熟的想法,经过简单的测试应该可以实现,但是实现的效果并不好,感觉还需要提高一些内在的能力 端口复用 ...

  • 2021-02-19

    端口详解+端口扫描原理+简单端口扫描实现[https://blog.csdn.net/pmt123456/arti...

  • 非阻塞recv问题

    为实现IO复用,socket常配合select、epoll等使用,此时需将端口设置为非阻塞.为啥设置非阻塞,以下这...

  • select()函数详解

    在Linux中,我们可以使用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核: 我们关...

  • select,poll,epoll

    简单概述 select,poll,epoll都是用来实现IO多路复用的机制,在Linux网络模型中对应着IO复用模...

  • bind:address already in use的深刻教训

    使用端口复用setsockopthttps://blog.csdn.net/msdnwolaile/article...

  • js时间戳转换成日期

    实现简单的时间戳转换,造一次轮子,后期复用省时省力。

  • socket编程——端口复用

网友评论

    本文标题:端口复用简单实现

    本文链接:https://www.haomeiwen.com/subject/celmuxtx.html