2013-10-05 42 views
23

总之,我要寻找一个简单的方法来做到以下(请在代码样本,如果可能的话):鱿鱼:转发到另一个代理(与父代理认证信息)

  • 集并且在我的电脑上启动代理服务器(说地址是10.10.200.200:6767),它可以捕获来自我的电话的所有Web请求
  • 一旦来自电话的请求来到此代理,它将添加自定义验证详细信息(my_username/my_password)并将其转发给机构代理(说地址是10.1.2.3:80)
  • 我不需要任何缓存/加速我的本地代理(10.10.200.200)。它只需要捕捉请求并转发它。

现在,更多的细节,充分说明我的情况:

在我的学院,是需要身份验证通过代理,使我们可以连接到互联网。我通常在出现弹出窗口时输入我的LDAP用户名/密码进行身份验证。

现在,我想将手机连接到学院WiFi,但是我的手机没有使用代理进行身份验证的选项。只能指定一个代理地址。因此,我打算在我的电脑上设置一个本地代理,以便接收来自手机的所有请求,添加验证详细信息并通过计算机将其传递给我的代理服务器代理。

我安装了squid3(在Ubuntu上),但看着配置文件,我迷路了。我尝试了谷歌搜索,但它看起来很复杂。

希望有人能提供帮助。

回答

25

我鱿鱼教程,最简单的配置做到这一点想通的是:

http_access allow all 
http_port 3128 

coredump_dir /var/spool/squid3 
refresh_pattern ^ftp:  1440 20% 10080 
refresh_pattern ^gopher: 1440 0% 1440 
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 
refresh_pattern (Release|Packages(.gz)*)$  0  20%  2880 
refresh_pattern .  0 20% 4320 

cache_peer 10.1.2.3 parent 80 0 no-query default login=my_username:my_password 
never_direct allow all 

这些线应该让你转发到另一个代理服务器的所有请求(更改IP地址,在本地计算机上工作的代理服务器因此)。 但是,请注意在上述脚本中,我禁用了任何访问控制/过滤器,因此有可能任何人都可以连接并使用您的代理。你需要添加额外的代码来限制只有一些设备进入。

+1

我需要添加以下内容: ''' 访问日志无 cache_log无 ''' –

+0

FTR:限制访问您的唯一宿主,注释掉'的http_access允许all'线,并在追加结束三行:'acl allowed_ip src localhost','http_access allow allowed_ip','http_access deny all' *(yes,'deny all'必须在最后,不知道为什么)*。对于安全的情况:不,不能检查它是否与其他主机的netcat一起工作,只能通过http *工作(squid不会拒绝tcp,只有http)*。 –