1. 系统环境搭建

  • 操作系统Centos7 内核版本3.10
  • Centos7已自带TPROXY模块,不需要安装TPROXY

2. Haproxy下载,编译,安装,配置

  • 下载地址 http://www.haproxy.org/download/ (所有ha版本)

    	1.4.24 下载地址  http://www.haproxy.org/download/1.4/src/haproxy-1.4.24.tar.gz
  • 编译安装

      tar -xvf haproxy-1.4.24.tar.gz
    cd haproxy-1.4.24
    yum install gcc gcc-c++ autoconf automake -y #安装gcc编译器
    make TARGET=linux2628 arch=x86_64 USE_LINUX_TPROXY=1 #重点USE_LINUX_TPROXY=1用于编译支持TPTOXY
    make install
    mkdir /etc/haproxy
    cp examples/haproxy.cfg /etc/haproxy
    cp examples/haproxy.init /etc/init.d/haproxy
    chmod +x /etc/init.d/haproxy
    cp haproxy /usr/sbin/
  • 配置

      # this config needs haproxy-1.1.28 or haproxy-1.2.1
    
      global
    log 127.0.0.1 local0
    log 127.0.0.1 local1 notice
    #log loghost local0 info
    maxconn 4096
    # chroot /usr/share/haproxy
    # uid 99
    # gid 99
    daemon
    #debug
    #quiet defaults
    log global
    mode http
    option httplog
    option dontlognull
    retries 3
    maxconn 2000
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000 listen test
    bind 0.0.0.0:12345
    balance roundrobin
    mode tcp
    option tcplog
    source 0.0.0.0 usesrc clientip #重点,TPROXY需要加上这行。
    server test 10.17.12.246:12346 weight 1 check inter 2000 rise 2 fall 5

3. 网络拓扑

 客户端:10.17.12.212---------haproxy节点:10.17.12.192-------------后端服务器节点:10.17.12.246

客户端与后端服务器均为window7 ,haproxy为centos7

4. Haproxy代理服务器配置

  • iptables配置

    iptables -F

    iptables -t mangle -N DIVERT

    iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT

    iptables -t mangle -A DIVERT -j MARK --set-mark 222

    iptables -t mangle -A DIVERT -j ACCEPT

    ip rule add fwmark 222 lookup 100

    ip route add local 0.0.0.0/0 dev lo table 100

    haproxy 网卡enp0s8的ip地址为 10.17.12.192

实验中 iptables -F 指令非常重要,不执行此条指令,后面iptables的规则都没有起作用
  • 添加转发和重定向

      # 允许ip转发
    echo 1 > /proc/sys/net/ipv4/conf/all/forwarding # 设置松散逆向路径过滤
    echo 2 > /proc/sys/net/ipv4/conf/default/rp_filter
    echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/enp0s8/rp_filter # 允许ICMP重定向
    echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
    echo 1 > /proc/sys/net/ipv4/conf/enp0s8/send_redirects

5. 服务器配置

  • 配置路由

      route delete 10.17.12.0
    route add 10.17.12.0 mask 255.255.255.0 10.17.12.192
  • 最终路由结果

      ===========================================================================
    活动路由:
    网络目标 网络掩码 网关 接口 跃点数
    0.0.0.0 0.0.0.0 10.17.12.192 10.17.12.246 11
    10.17.12.0 255.255.255.0 10.17.12.192 10.17.12.246 11
    10.17.12.246 255.255.255.255 在链路上 10.17.12.246 266
    127.0.0.0 255.0.0.0 在链路上 127.0.0.1 306
    127.0.0.1 255.255.255.255 在链路上 127.0.0.1 306
    127.255.255.255 255.255.255.255 在链路上 127.0.0.1 306
    192.168.56.0 255.255.255.0 在链路上 192.168.56.1 276
    192.168.56.1 255.255.255.255 在链路上 192.168.56.1 276
    192.168.56.255 255.255.255.255 在链路上 192.168.56.1 276
    224.0.0.0 240.0.0.0 在链路上 127.0.0.1 306
    224.0.0.0 240.0.0.0 在链路上 10.17.12.246 266
    224.0.0.0 240.0.0.0 在链路上 192.168.56.1 276
    255.255.255.255 255.255.255.255 在链路上 127.0.0.1 306
    255.255.255.255 255.255.255.255 在链路上 10.17.12.246 266
    255.255.255.255 255.255.255.255 在链路上 192.168.56.1 276

6. 测试结果

客户端测试软件截图:



服务端测试软件截图

7. 参考文档

Haproxy全透明代理的更多相关文章

  1. squid详解(正向代理、透明代理、反向代理)

    squid http://www.squid-cache.org/ --官方网址 squid软件主要有两大应用:1,代理上网(正向代理,透明代理) 2,网站静态页面缓存加速(反向代理) 三种代理类型: ...

  2. Squid普通代理&&透明代理&&反向代理学习

    普通代理                                                              背景                                 ...

  3. openwrt下部署adbyby去广告大师 免luci 带自启动,自动开启透明代理

    最近朋友送了个360老路由器 C301,于是乎就掉进了智能路由器的坑, 玩智能路由器第一件事一定是去广告, 要么怎么对得起智能路由器- -! 路由器去广告当然首推广告屏蔽大师 www.adbyby.c ...

  4. 设置导航栏nav全透明

    设置导航栏nav全透明 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #ffffff } span.s1 { } ...

  5. 全透明Activity

    第一步:在/res/values/styles里面添加如下代码: <style name="translucent"> <item name="andr ...

  6. nginx正向代理,反向代理,透明代理(总结)

    1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连 ...

  7. 使用squid配置透明代理并对上网行为进行控制

    使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假 ...

  8. linux下正向代理/反向代理/透明代理使用说明

    代理服务技术对于网站架构部署时非常重要的,一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.以下就是针对这 ...

  9. Squid代理之透明代理

    二.透明代理 1.检测squid是否安装

随机推荐

  1. 使用PhoneGap搭建一个山寨京东APP(转)

      为什么要写一个App 首先解释下写出来的这个App,其实无任何功能,只是用HTML和CSS模仿JD移动端界面写的一个适配移动端的Web界面.本篇主要内容是介绍如何使用PhoneGap把开发出来的m ...

  2. muduo网络库架构总结

    目录 muduo网络库简介 muduo网络库模块组成 Recator反应器 EventLoop的两个组件 TimerQueue定时器 Eventfd Connector和Acceptor连接器和监听器 ...

  3. 谁记录了mysql error log中的超长信息(记pt-stalk一个bug的定位过程)

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  4. LoRaWAN 1.1 网络协议规范 - 2 LoRaWAN选项介绍

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  5. Linux开源监控平台 -- Zabbix 小白安装以及使用

    安装准备: 1.安装前需要先关闭selinux和firewall. 关闭Linux: [root@zabbix ~]# vi /etc/selinux/config 将SELINUX=enforcin ...

  6. mysql中的用法 count group by having

    1 语法: group by 字段 having 条件判断; group by的用法我已经在上一篇经验中介绍了 2 还是已员工绩效表为例   3 我们如果就是查询每个部门成绩大于89的员工数,可以这样 ...

  7. grpc ssl使用

    相关链接 http://www.jianshu.com/p/2873a8349ca0

  8. BZOJ.2177.曼哈顿最小生成树(Kruskal)

    \(Solution\) 参考 对于每个点,向唯一有可能与它形成MST的8个点连边,由于是双向单边,所以每个点最多连出4条边(证明见blog) 怎么找到一个区域内最近的点? 只考虑y轴右侧45°的区域 ...

  9. unity无限循环报错的定位

    晚上遇到了,碰到了程序一运行就卡住的尴尬问题,然后百度下,看了看,Get到了一个新的skill. 1. 打开对应的VS程序,选择“调试/Attach Unity Debuger”菜单来调试代码. 2. ...

  10. 【转载】jdk1.8 LongAdder源码学习

    本文转自https://blog.csdn.net/u011392897/article/details/60480108 LongAdder是jdk8新增的用于并发环境的计数器,目的是为了在高并发情 ...