CentOS下Privoxy和Iptables 实现透明代理,修改http-header

Linux下目前使用最多的HTTP代理当属Squid了,这边有个需要修改http-header的需要,前提是要做http的透明代理,squid实现透明代理很容易,但修改http-header没找到方法。

Privoxy在修改http-header方面很善长,但透明代理如何实现网上好像还没有成熟的方法。比起修改http-header,透明代理应该实现起来更简单一些,于是研究了一下,下面详细说一说。

一、环境说明:

1.系统:

CentOS 6.5 32位(64位在装privoxy的时候经常报错,直接换成32位)

2.网络:

双网卡

eth0: 10.3.2.30/24 (公网)   eth1:192.168.0.1/24(私网地址,内网网关设这个)

网关10.3.2.254

3.yum install privoxy 直接安装privoxy 默认端口8118

二、配置NAT

sysctl 中设置 net.ipv4.ip_forward = 1

iptalbes 中设置NAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE -o eth0

三、配置透明代理

  1. 修改服务端口,将服务器开在192.168.0.1:8118上,修改/etc/privoxy/config文件

2. 修改accept-intercepted-request 为1

3.Iptables 配置,将所有来自私网80端口的数据包重定向到192.168.0.1的8118端口,这是透明代理的关键

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT -to-port 8118

四、更改http-header

更改/etc/privoxy/user.action(这个文件不会随版本更新而改变)

在文件头部(任意位置)增加:

+add-heaer {name:liqunsheng}

/

注意最后的“/”不要丢掉。

五、测试

这样配置就完成了,我们来测试一下

将客户机的IP设置为192.168.0.0/24的地址,网关设为192.168.0.1

浏览器的代理没有任何设置,我们打开网页http://10.2.1.33,

并在10.2.1.33端用wireshark抓包。如图所示:

六、关于透明代理后无法打开http://p.p 网页的说明

我们知道,使用privoxy做浏览器代理,输入http://p.p 能跳到privoxy的管理网页,也是验证代理是否做成功的手段,但是做完透明代理该网页将无法打开,原因是浏览器代理的DNS使用的是代理服务器192.168.0.1的DNS,透明代理使用的是本地DNS,本地DNS当然不知道http://p.p 是谁了。

时间: 2024-10-07 13:31:16

CentOS下Privoxy和Iptables 实现透明代理,修改http-header的相关文章

CentOS下配置iptables防火墙 linux NAT(iptables)配置

CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/

CentOS下Qt窗口透明效果失效,成黑色背景的问题

一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行图 (1)Qt透明效果,centos下运行都会出现如下图1所示. 三.解决方法 (1)窗口透明,窗口上的控件不透明,其代码设置 [html] view plain copy setAutoFillBackground(false);  //这个不设置的话就背景变黑 setWindowFlags(Qt

squid透明代理

构建透明代理 透明代理:客户不需要指定代理服务器的地址和端口,而是通过网关,由防火墙的重定向策略将用户的请求交给代理服务器处理:域名解析有客户机完成 代理服务器两个网卡vmnet1 vmnet8 1.基本设置 (1)先在客户机浏览器中去掉代理设置 (2)在squid上开启路由功能(默认关闭) #vim /etc/sysctl.conf  (3)客户机和web服务器都填写好网关 (4)如果是在源拓扑图上改的,注意更改dns中的记录设置,并清除客户机的dns缓存 2.配置squid支持透明代理 [[

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

使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假如查找不到,就安装squid: yum install squid 2.配置虚拟机的网络,一个网卡是内网,另一个是外网 内网:eth0 ip:192.168.10.209 netmask:255.255.255.0 gateway:192.168.10.1 外网:eth1 ip:10.10.10.1

Squid透明代理+ACL访问控制+日志分析

防伪码:仰天大笑出门去,我辈岂是蓬蒿人 第一章 Squid透明代理+ACL访问控制+日志分析 前言:搭建代理服务器可以提高上网打开网页的速度,可以对非法网站进行屏蔽,限制文件下载,以及查看员工访问internet的情况,包括上网的地址,用户,时间等,是企业网络管理的常用手段. 代理服务器分为传统代理和透明代理,传统代理适用于浏览internet,需要在浏览器上手工指定服务器地址和端口,不是很方便,但是可以隐藏本机真实的ip地址,而且为下载工具使用多个代理可以规避服务器的并发连接显示.透明代理适用

在CentOS下安装Ngix服务及集群PHP、Tomcat

资源下载地址:http://download.csdn.net/detail/attagain/7570597 一. Ngix依赖模块安装 Ngix依赖模块有:pcre.zlib.openssl.md5 /sha1(如果系统中没有安装相应模块,需要按照下列方式安装) 1. 安装pcre模块(8.35) 官方网站:http://www.pcre.org/ 安装命令: # unzip pcre-8.35.zip # cd pcre-8.35 # ./configure # make && ma

金庸武功之“碧血剑法”----squid做透明代理

一.试验目的:公司阿里云环境要求之开放一个代理服务器,其他服务器不允许有外网IP 二.环境拓扑: A:代理服务器:(利用squid做透明代理) (centos7.2) [[email protected] squid]# ip a eth0:10.30.204.122 eth1:116.62.XX.XX B:客户端服务器:(centos7.2) [[email protected] squid]# ip a eth0:10.30.204.90 三.试验环境准备(A,B都执行) yum  -y u

Squid介绍及透明代理完整部署

Squid 缓存服务 1.缓存服务器结束 缓存服务器(cache server),即用来存储(介质为内存及硬盘)用户访问的网页.图片.文件等等信息的专用服务器,这种服务器不仅可以使用户可以最快的得到他们想要的信息,而且可以大大减少服务端网络传输的数据量,缓存服务器往往也是代理服务器,对于网站的用户来说,缓存服务器和代理是不可见的,即在用户看来所有的网站信息都是来自其正在访问的网站,而实际上可能是缓存服务器在提供访问数据 目前国内互联网公司常用的缓存服务器有:squid.varnish.nginx

构建Squid传统代理及透明代理

什么是Squid Squid是一种用来缓冲Internet数据的软件.它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面.Squid随之连接到远程服务器(比如:http://squid.nlanr.net/) 并向这个页面发出请求.然后,Squid显式地聚集数据到客户端机器,而且同时复制一份.当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机