前几天项目中需要一个抓取并分析TCP包的工具,在网上倒腾了一阵子整理了一个工具,现在发布在这儿提供参考。 这个工具是使用C语言开发的一个TCP Proxy,实现TCP转发的功能并dump出来数据包的内容。#include <stdio.h> #include <stdlib.h> #include <unistd.h> #...
PublicClient先将请求打到CProxyServer,CProxyServer识别请求是属于哪个CProxyClient,然后将数据转发到CProxyClient,CProxyClient再识别请求是属于哪个LocalServer的,将请求再转发到LocalServer,完成数据的转发。 工作流程 先介绍CProxyServer端的两个概念: Control:在CProxyServer中会维护一个ControlMap,一个Control对应一...
proxy -l local_port -h remote_host -p remote_port [-i "input parser"] [-o "output parser"] [-f (stay in foreground)] Suppose you want to open port 8080 on a public host and forward all TCP packets to port 80 on machine 192.168.1.2 in the local network. In this case you wi...
* @proxy_server: bin/tcp_proxy_server 1080 127.0.0.1:8080 * bin/tcp_proxy_server 1080 127.0.0.1:8443 * bin/tcp_proxy_server 1080 www.baidu.com * bin/tcp_proxy_server 1080 www.baidu.com:443 * @client: bin/curl -v 127.0.0.1:1080 * bin/nc 127.0.0.1 1080 * > GET / HTT...
CProxyServer通过ctl_conn向client发送NotifyClientNeedProxyMsg通知Client需要创建一个proxy。 Client收到后,会分别连接LocalServer和CProxyServer: 3.1. 连接LocalServer,将local_conn_fd封装成LocalConn。 3.2. 连接ProxyServer的ProxyPort,将proxy_conn_fd封装成ProxyConn,并将LocalConn和ProxyConn绑定。
proxy -l local_port -h remote_host -p remote_port [-i "input parser"] [-o "output parser"] [-f (stay in foreground)] Suppose you want to open port 8080 on a public host and forward all TCP packets to port 80 on machine 192.168.1.2 in the local network. In this case you wi...
2.添加完成后返回基本设置,在主要选项中勾选主开关,并将TCP节点设置为刚添加的节点,UDP节点设置为与TCP节点相同,最后选择保存&应用 小生观察室默认只有单一节点,如果有多个节点也可以根据自身情况设置自动切换功能 3.保存&应用完成之后可以看到如下效果,也可以点击谷歌连接测试效果,如果出现数值就表示正常通信 ...
⑤ proxy_bind 作用: 修改'tcp'连接的'source ip' 1. 1)nginx有多个'ip'地址,不使用系统'默认'分配的ip地址与'上游'建连 2)透传'ip'地址 3)实现'使用浮动ip地址(nginx集群)'与'后端服务器'进行通信 1. 2. 3. 4. 5. 应用场景 nginx proxy_bind修改源码支持多ip绑定 相关参考 ...
PublicClient先将请求打到CProxyServer,CProxyServer识别请求是属于哪个CProxyClient,然后将数据转发到CProxyClient,CProxyClient再识别请求是属于哪个LocalServer的,将请求再转发到LocalServer,完成数据的转发。 工作流程 先介绍CProxyServer端的两个概念: Control:在CProxyServer中会维护一个ControlMap,一个Control对应一...
Run方法是Proxy类中唯一的方法。其功能是从客户端接收HTTP请求,并传送到Web服 9、务器,然后从Web服务器接收反馈来的数据,并传送到客户端。为了实现这二个不同方面的数据传送,Run方法中是通过两个Socket实例来实现的。在编写Run方法的时候,要注意下面两点:(1)由于HTTP建立于TCP协议之上,所以创建的Socket实例应该...