Haproxy全透明代理
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. 参考文档
- iptables 参考文档 http://blog.csdn.net/reyleon/article/details/12976341
- haproxy 全透明代理参考文档 https://my.oschina.net/eddylinux/blog/535043
- http://www.haproxy.com/blog/howto-transparent-proxying-and-binding-with-haproxy-and-aloha-load-balancer/
- http://techblogsearch.com/a/haproxy-transparent-mode-on-centos-7.html
- http://www.360doc.com/content/13/0821/17/13047933_308812287.shtml
- https://wenku.baidu.com/view/335db66a376baf1ffc4fade1.html
- http://forlinux.blog.51cto.com/8001278/1415350/(第二参考资料)
- http://cbonte.github.io/haproxy-dconv/1.4/configuration.html
- http://blog.sina.com.cn/s/blog_704836f401011e17.html(第一参考资料)
Haproxy全透明代理的更多相关文章
- squid详解(正向代理、透明代理、反向代理)
squid http://www.squid-cache.org/ --官方网址 squid软件主要有两大应用:1,代理上网(正向代理,透明代理) 2,网站静态页面缓存加速(反向代理) 三种代理类型: ...
- Squid普通代理&&透明代理&&反向代理学习
普通代理 背景 ...
- openwrt下部署adbyby去广告大师 免luci 带自启动,自动开启透明代理
最近朋友送了个360老路由器 C301,于是乎就掉进了智能路由器的坑, 玩智能路由器第一件事一定是去广告, 要么怎么对得起智能路由器- -! 路由器去广告当然首推广告屏蔽大师 www.adbyby.c ...
- 设置导航栏nav全透明
设置导航栏nav全透明 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #ffffff } span.s1 { } ...
- 全透明Activity
第一步:在/res/values/styles里面添加如下代码: <style name="translucent"> <item name="andr ...
- nginx正向代理,反向代理,透明代理(总结)
1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连 ...
- 使用squid配置透明代理并对上网行为进行控制
使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假 ...
- linux下正向代理/反向代理/透明代理使用说明
代理服务技术对于网站架构部署时非常重要的,一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.以下就是针对这 ...
- Squid代理之透明代理
二.透明代理 1.检测squid是否安装
随机推荐
- 微信小程序倒计时组件开发
今天给大家带来微信小程序倒计时组件具体开发步骤: 先来看下最终效果: git源:http://git.oschina.net/dotton/CountDown 分步骤-性子急的朋友,可以直接看最后那段 ...
- 在macOS下正确配置 VS Code 使用 virtualenv 里的 python 环境参数
在macos配置好并启动 virtualenv 环境后,如何让 VS Code 使用这个环境下来编译调试 python 脚本呢? 1.首先当然是先配置好python虚拟环境 假定配置python的的虚 ...
- POJ 1182 食物链 【带权并查集】
<题目链接> 题目大意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我 ...
- 001.Open-Falcon简介
一 Open-Falcon简介 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,相对成熟的解决方案 ...
- php插入上万条mysql数据最快的方法
1.使用thinkphp框架 先生成包含所有数据的数组,再使用 addAll() 方法,插入1万条数据仅需3秒钟. 2.PHP原始方法: 将SQL语句进行拼接,使用 insert into table ...
- c#textBox控件限制只允许输入数字及小数点
在textboxd的事件中的 KeyPress 事件,这样双击进入代码:输入以下代码 即可 //判断按键是不是要输入的类型. || () && ( && () e.Ha ...
- CF868 F. Yet Another Minimization Problem 决策单调优化 分治
目录 题目链接 题解 代码 题目链接 CF868F. Yet Another Minimization Problem 题解 \(f_{i,j}=\min\limits_{k=1}^{i}\{f_{k ...
- BZOJ.4241.历史研究(回滚莫队 分块)
题目链接 \(Description\) 长度为n的数列,m次询问,每次询问一段区间最大的 \(A_i*tm_i\) (重要度*出现次数) \(Solution\) 好像可以用莫队做,但是取max的操 ...
- 关于Random.Range 范围界定
1. 当Range的参数是float时 Random.Range 范围 static function Range (min : float, max : float) : float :返回一个随机 ...
- Codeforces Round #411 (Div. 2) 【ABCDE】
A. Fake NP 题意:给你l,r,让你输出[l,r]里面除1以外的,出现因子数量最多的那个数. 题解:如果l==r输出l,否则都输出2 #include<bits/stdc++.h> ...