首页 > 其他分享 >发送proxy protocol报文

发送proxy protocol报文

时间:2024-09-27 14:47:26浏览次数:8  
标签:00 01 protocol ip 报文 server 0a proxy port

V1

echo -e "PROXY TCP4 192.0.2.1 203.0.113.1 12345 80\r\nGET / HTTP/1.0\r\n\r\n" |nc 10.0.2.15 80

0000  00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00   ..............E.
0010  00 61 3b 2d 40 00 40 06 01 68 7f 00 00 01 7f 00   .a;-@[email protected]......
0020  00 01 df 72 23 82 c7 b1 df 22 ed 8b b3 6f 80 18   ...r#...."...o..
0030  01 56 fe 55 00 00 01 01 08 0a 00 e8 e4 0b 00 e8   .V.U............
0040  e4 0b 50 52 4f 58 59 20 54 43 50 34 20 31 39 32   ..PROXY TCP4 192
0050  2e 31 36 38 2e 31 2e 31 30 30 20 31 30 2e 30 2e   .168.1.100 10.0.
0060  32 2e 31 35 20 31 32 33 34 35 20 39 30 0d 0a      2.15 12345 90..

  

V2

  4 0.000085835    10.0.2.15 -> 10.0.2.15    TCP 94 32952 > 90 [PSH, ACK] Seq=1 Ack=1 Win=43776 Len=28 TSval=15402984 TSecr=15402984

0000  00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00   ..............E.
0010  00 50 97 f6 40 00 40 06 8a 94 0a 00 02 0f 0a 00   .P..@.@.........
0020  02 0f 80 b4 00 5a eb ea 39 24 a8 ab 53 88 80 18   .....Z..9$..S...
0030  01 56 18 60 00 00 01 01 08 0a 00 ea ae d7 00 ea   .V.`............
0040  ae d7 0d 0a 0d 0a 00 0d 0a 51 55 49 54 0a 21 11   .........QUIT.!.
0050  00 0c c0 a8 01 64 c0 a8 02 01 30 39 1f 40         .....d....09.@

  

[root@T19 nginx-1.18.0]# cat ppv2.py
#! /bin/python

import socket
import struct

def send_proxy_protocol_v2(server_ip, server_port, source_ip, dest_ip, source_port, dest_port):
    # Proxy Protocol v2 signature
    signature = b'\r\n\r\n\x00\r\nQUIT\n'

    # Version and command (0x21 means version 2 and PROXY command)
    version_command = b'\x21'

    # Address family and protocol (0x11 means AF_INET and STREAM)
    fam_protocol = b'\x11'

    # Length of the address block (12 bytes for IPv4)
    length = struct.pack('!H', 12)

    # Source and destination addresses and ports
    src_addr = socket.inet_aton(source_ip)
    dst_addr = socket.inet_aton(dest_ip)
    src_port = struct.pack('!H', source_port)
    dst_port = struct.pack('!H', dest_port)

    # Construct the header
    header = signature + version_command + fam_protocol + length + src_addr + dst_addr + src_port + dst_port

    # Create a socket and connect to the server
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.connect((server_ip, server_port))

        # Send the Proxy Protocol v2 header
        s.sendall(header)

        # Optionally, send additional data if needed
        # s.sendall(b'Additional data')

        # Close the connection
        s.close()

# Example usage
server_ip = '10.0.2.15'
server_port = 90
source_ip = '192.168.1.100'
dest_ip = '192.168.2.1'
source_port = 12345
dest_port = 8000

send_proxy_protocol_v2(server_ip, server_port, source_ip, dest_ip, source_port, dest_port)

  

标签:00,01,protocol,ip,报文,server,0a,proxy,port
From: https://www.cnblogs.com/hugetong/p/18435516

相关文章

  • PPP点对点协议(Point-to-Point Protocol)
      PPP(Point-to-PointProtocol,点对点协议)是一种广泛用于广域网(WAN)连接的链路层协议,常用于通过电话线、光纤或其他物理介质建立点对点的直接连接。PPP主要用于支持IP和IPX等网络层协议,提供了多种功能和扩展,确保稳定、灵活的网络传输。它广泛用于拨号网络、DSL、光纤宽......
  • 企业级反向代理 HAProxy
    企业级反向代理HAProxyhaproxy只做代理,不提供其他功能。可以做四层,七层代理。有些公司会用haproxy做四层代理,haproxy比lvs好在功能更强大2HAProxy简介企业版(收费)社区版社区版网站:http://www.haproxy.org/github:https://github.com/haproxy#选偶数版本,长期支持版......
  • NGINX 和 HAProxy:基于公有云标准环境的用户体验测试对比
    原文作者:AmirRawdat-F5解决方案工程师原文链接:NGINX和HAProxy:基于公有云标准环境的用户体验测试对比转载来源:NGINX中文官网NGINX唯一中文官方社区,尽在 nginx.org.cn 阅读原文。业内许多性能基准测试,都是基于峰值吞吐量或每秒请求数(RPS),但这些......
  • 四款负载均衡工具Nginx、HAProxy、MetalLB、gobetween 比较
    以下是对Nginx、HAProxy、MetalLB和gobetween四个开源负载均衡工具的详细对比与分析:Nginx:优点:工作在网络的7层之上,可以针对HTTP应用做一些分流策略,如基于域名、目录结构分流。对网络稳定性依赖小,理论上能ping通就能进行负载均衡。安装和配置简单,有清晰的日志用于排查和管理。支持......
  • Vue.config.js中配置Proxy代理HTTPS
    Vue.config.js中配置Proxy代理HTTPS基本概念与作用为什么要使用HTTPS代理?示例一:基础HTTPS代理配置示例二:多环境代理配置示例三:忽略某些路径示例四:支持WebSocket代理示例五:高级配置实际开发中的使用技巧在开发基于Vue.js的应用时,经常会遇到前后端分离的情况,即前端应......
  • ModbusRTU通信协议报文剖析
    前言大家好!我是付工。前面给大家介绍了Modbus协议的应用层面。终于有人把Modbus说明白了那么,今天跟大家聊聊关于Modbus协议报文的那些事。一、真实案例前段时间有个粉丝朋友,让我帮他解决一个问题。这个粉丝朋友是负责Modbus主站调试的。项目背景:这是一个船舶的项目,主站是一个......
  • HAproxy,nginx实现负载均衡
    环境准备:192.168.88.25 (client)192.168.88.26  (HAproxy)192.168.88.27   (web1)192.168.88.28    (web2)192.168.88.29   (php1)192.168.88.30    (php2)关闭firewalld,selinux。配置yum源,扩展源epel-release实验1一、web1,web21、下载httpd......
  • 万象更新 Html5 - es6 进阶: proxy, reflect
    源码https://github.com/webabcd/Html5作者webabcd万象更新Html5-es6进阶:proxy,reflect示例如下:es6\src\advanced\proxy_reflect.js//Proxy-代理(拦截目标对象的属性操作和函数操作)lettarget={name:'webabcd',age:40,gethello(){......
  • 【JS】Object.defineProperty与Proxy的对比并通过Vue2、3的实现证明Proxy性能优于Obje
    一、Object.defineProperty这里只是简单描述,具体请看另一篇文章:Object.defineProperty。Object.defineProperty是JavaScript中用于定义或修改对象属性的功能强大的方法。它可以精确地控制属性的行为,如是否可枚举、可配置、可写等。基本用法Object.defineProperty(obj......
  • 收藏:加不加「/」?Nginx location 路径与 proxy_pass 的规律
    从一张梗图开始起源于在TG某个频道看到的一张图:图下面的评价是:Nginxissohard!实际上这张图描述的是nginxlocation的路径配置,及location代码块中proxy_pass的路径关系,属于nginx应用中路径转发的知识。例如图中Case1对应的代码块应该为:location/test1{......