windows | Mac os | linux | 电脑故障 | 网络知识 | 电脑百科 | 破解软件 | 网页编程 | 电脑配置 |

Linux怎样设置透明代理

透明模式的特点就是对用户是透明的(Transparent),即用户意识不到防火墙的存在。那么Linux怎样设置透明代理?今天小编与大家分享下Linux设置透明代理的具体操作步骤,有需要的朋友不妨了解下。

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

下面的命令针对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:

# 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. Rules can be viewed like this:

IP firewall input rules, default policy: reject

type prot source destination ports

acc all 127.0.0.1 127.0.0.1 n/a

acc/r tcp 10.0.0.0/8 0.0.0.0/0 * -> 80 => 8080

acc all 10.0.0.0/8 0.0.0.0/0 n/a

acc tcp 0.0.0.0/0 0.0.0.0/0 * -> *

看过“Linux怎样设置透明代理”的人还看了:

123
  • Linux怎样设置透明代理 相关内容:
  • Linux GCC常用命令详解
  • 1. 简介 GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU...

  • Linux系统已经融入了我们的生活!论Linux系统的
  • 你知道操作系统都有些什么吗?Windows啊。 这是我在上大学之前的问答,我当时认为只一种叫做Windows的操作系统,可是我错了,当我上大学以后,作为计算机专业的一名学生的时候我第一次接触到了除Windows以外的操作系统,那就是linux,之后我便自己装了个虚拟机在上面又安装了linux发...

  • Linux下使用Speedtest测试网速的方法
  • Speedtest是用来测试网络性能的开源软件,在Linux下面安装Speedtest可以用来测试网络出口的上传和下载速度,帮助排查网络方面导致的故障。 Speedtest介绍 由于公司几个项目用户访问的时候响应较慢,项目本身没问题,服务及调用的接口返回信息都比较正常,猜想是网络方面造成的瓶...

  • 使用Git管理二进制大对象的方法
  • 通过这系列的前六篇文章,我们已经学会使用 Git 来对文本文件进行版本控制的管理。我们不禁要问,还有二进制文件呢,也可进行进行版本控制吗?答案是肯定的,Git 已经有了可以处理像多媒体文件这样的二进制大对象块(blob)的扩展。因此,今天我们会学习使用 Git 来管理所谓的二进制资...

  • Linux下软件包类故障排错方案详解
  • 软件包类故障在Linux系统中比较常见,例如:需要编译源码包程序时系统中没有安装gcc编译工具,安装RPM软件包时有未解决的依赖关系,程序库文件或头文件的安装路径不正确等,软件包类故障产生的原因非常多,通常只需要根据相应的错误提示信息,确认安装好编译环境,找到所需要的依赖软件...

  • Linux下垃圾文件的详解
  • Linux 计算机安装后,在我们不断的使用过程中,因为添加、删除软件和上网冲浪、调试程序等行为,硬盘中会产生各种各样的垃圾文件,而随着这些垃圾文件的不断膨胀,它们不仅会平白吞噬掉我们宝贵的硬盘空间,更会拖累机器的运行速度,影响我们的工作效率。本文介绍一下给 Linux 系统减...

  • shell语法检查模式详解
  • 启用 verbose 调试模式 在进入本指导的重点之前,让我们简要地探索下 verbose 模式。它可以用 -v 调试选项来启用,它会告诉 shell 在读取时显示每行。要展示这个如何工作,下面是一个示例脚本来批量将 PNG 图片转换成 JPG 格式。 将下面内容输入(或者复制粘贴)到一个文件中。...

  • 使用Glyphr如何玩转Linux字体?
  • LibreOffice 提供了丰富的字体,并且用户可以自由选择和下载增加自己的字体。然而,就算是你想创造自己的字体,也可以非常容易地使用 Glyphr 来做到。Glyphr 是一个新开源的矢量字体设计器,通过直观而易用的图形界面和丰富的功能集可以完成字体设计的方方面面。虽然这个应用还...

  • 发布时间:2016-11-30 16:23:14 查看更多>>

    linux