如何在Linux中设置透明代理

2016-01-29 19:08 7 1 收藏

如何在Linux中设置透明代理,如何在Linux中设置透明代理

【 tulaoshi.com - Linux 】

  1.什么是透明代理?

  如果你问:我如何才能使得用户的浏览器不需要任何代理设置就能使用我的Squid cache代理服务器上网?此时你就需要使用透明代理。透明代理让你的客户端不需设置任何代理,当包经过透时代理服务器时实际上被重定向到squid代理服务器的代理端口(如8080),即由本地代理服务器向外请求所需数据然后拷贝给客户端。
  2.我需要什么样的环境才能实现透明代理?

  a.客户端的windows PC的网关必须设成Squid代理服务器,因为既然你的browser中没有任何代理设置,你要访问某个站点时,包必须经经过squid代理服务器才能被重定向,故这是最基本的条件。

  b.客户端必须正确设置DNS服务器。因为既然现在不用设置任何代理。则DNS必须由browser来解析,也就是要由客户端的PC中TCP/IP中设置的DNS服务器来正确解析出某个站点的IP地址来。

  c.服务器端可以安装squid代理服务器,1.x or 2.x版本均可。

  3.配置Squid代理,启动透明代理功能

  Squid-2

  加下面的行到你的/etc/squid/squid.conf中

  http_port 8080
  httpd_accel_host virtual
  httpd_accel_port 80
  httpd_accel_with_proxy on
  httpd_accel_uses_host_header on

 Squid-1.1

  加下面的行到/etc/squid.conf


  http_port 8080
  httpd_accel virtual 80
  httpd_accel_with_proxy on
  httpd_accel_uses_host_header on

  4. 重启动squid. 用下面的命令:

    #/usr/sbin/squid -k reconfigure

  如提示内核不支持透明代理。则你需要重新编译内核,enable 透明代理的支持。

  下面是你需要启动的内核项目:

  [*] Network firewalls
  [ ] Socket Filtering
  [*] Unix domain sockets
  [*] TCP/IP networking
  [ ] IP: multicasting
  [ ] IP: advanced router
  [ ] IP: kernel level autoconfiguration
  [*] IP: firewalling
  [ ] IP: firewall packet netlink device
  [*] IP: always defragment (required for masquerading)

  [*] IP: transparent proxy support


  5. 下面的命令针对Linux 2.2.x内核:

  # Accept all on lookback
  /sbin/ipchains -A input -j ACCEPT -i lo
  #Accept my own IP, to prevent loops (repeat for each interface/alias)
  /sbin/ipchains -A input -j ACCEPT -p tcp -d 192.168.11.1/32 80
  #Send all traffic destined to port 80 to Squid on port 80
  /sbin/ipchains -A input -j REDIRECT 8080 -p tcp -s 192.168.11.0/24 -d 0/0 80

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/linux/)


  下面的命令针对Linux 2.0.x内核:

  # Accept all on loopback
  ipfwadm -I -a accept -W lo
  # Accept my own IP, to prevent loops (repeat for each interface/alias)
  ipfwadm -I -a accept -P tcp -D 192.168.11.1/32 80
  # Send all traffic destined to port 80 to Squid on port 3128
  ipfwadm -I -a accept -P tcp -S 192.168.11.0/24 -D 0/0 80 -r 8080

  6.应注意的问题:

  a. 这种透明代理只能针对http协议,不能针对FTP协议
  b. PC的默认网关应设成squid 代理服务器
  c. 防火墙重定向规则在其它的input规则的前面,注意顺序。

  如:

    /etc/rc.d/rc.firewall:


#!/bin/sh
# rc.firewall Linux kernel firewalling rules
FW=/sbin/ipfwadm

# Flush rules, for testing purposes
for i in I O F # A # If we enabled accounting too
do
${FW} -$i -f
done

# Default policies:
${FW} -I -p rej # Incoming policy: reject (quick error)
${FW} -O -p acc # Output policy: accept
${FW} -F -p den # Forwarding policy: deny

# Input Rules:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/linux/)


# Loopback-interface (local access, eg, to local nameserver):
${FW} -I -a acc -S localhost/32 -D localhost/32

# Local Ethernet-interface:

# Redirect to Squid proxy server:
${FW} -I -a acc -P tcp -D default/0 80 -r 8080

# Accept packets from local network:
${FW} -I -a acc -P all -S localnet/8 -D default/0 -W eth0

# Only required for other types of traffic (FTP, Telnet):

# Forward localnet with masquerading (udp and tcp, no icmp!):
${FW} -F -a m -P tcp -S localnet/8 -D default/0
${FW} -F -a m -P udp -S localnet/8 -D default/0

Here all traffic from the local LAN with any destination gets redirected to the
local port 8080. Rule

来源:https://www.tulaoshi.com/n/20160129/1508534.html

延伸阅读
标签: 电脑入门
在Linux操作中有时会遇到使用代理ip来访问的网站用户,这就需要配置Nginx限制其访问,下面图老师小编就给大家介绍下Linux系统中如何配置Nginx来拒绝代理ip访问。 先大概说说简单的结构前端一个Nginx反向代理,后端一个Nginx instance app for PHP实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打流量,而是针...
标签: 电脑入门
libvirt是Linux下的虚拟化工具,支持各种虚拟机监控程序,那么要怎么安装虚拟化工具libvirt呢?下面图老师小编就给大家介绍下如何在Linux上安装libvirt虚拟化工具,一起来了解下吧。 安装步骤: by TANG Jia 本测试通过的版本号为:ubuntu12.04、libvirt1.1.2 安装libvirt: 1,安装virtinst apt get installvirtinst 安装libv...
标签: 电脑入门
SELinux是Linux的一个扩张抢占访问控制安全模块,能控制程序只访问特定文件,那么SELinux要如何查看和关闭呢?下面图老师小编就给大家介绍下Linux下如何查看和关闭SELinux。 一、查看SELinux状态命令: 1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: enabled 2、getenforce ##也可以用这...
标签: 电脑入门
我们都知道DeVeDe能够将视频及文件制作成视频DVD,那么Linux下DeVeDe又该如何使用呢?下面图老师小编就给大家介绍下如何在Linux桌面环境中使用DeVeDe工具创建视频DVD。 DeVeDe是一个开源(GPLv3)DVD创作软件,它允许你从任何数量的视频文件创建视频DVD、VCD、SVCD或者DivX。DeVeDe依赖于其它如Mplayer、FFMpeg、MEncoder、DVDAuthor、VCDImag...
标签: 电脑入门
mono是Novell公司开发的跨平台NET运行环境,可运行于多个系统,包括Linux系统,下面图老师小编就给大家介绍下如何在Linux服务器中编译安装mono笔记。 一、安装依赖关系包 代码如下: yum install gcc bison pkgconfig glib2-devel gettext make gcc-c++ libstdc++-devel libgdiplus-devel 二、下载源码并解压 代码如下: #下载地...

经验教程

252

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部