配置 Cntlm,若无可用代理则不使用代理

配置 Cntlm,若无可用代理则不使用代理

白天我在公司防火墙后面,晚上则使用开放的互联网连接。我已将 cntlm 配置为转发到我的公司代理,但当我从开放连接进行连接时,我必须重新配置我的代理设置。

当没有可用代理时,有没有办法让 cntlm 回退到不使用代理?

# List of parent proxies to use. More proxies can be defined
# one per line in format <proxy_ip>:<proxy_port>
#
Proxy       10.73.55.44:80
# <~~ something here to fallback to a direct connection when no proxy is available

答案1

cntlm 在其路线图上有这个功能,但我认为我使用 squid 以一种简单的方式解决了这个问题:1. 在与 cntlm 相同的机器上安装 squid,在端口 3129 上(只需在 squid.conf 中将 3128 更改为 3129)2. 将“Proxy localhost:3129”添加到 cntlm 代理列表中

就是这样。

希望这可以帮助。

答案2

cntlm.conf此解决方案根据您当前的IP地址重写相关部分:http://mirkoweber.blogspot.hu/2011/10/using-cntlm-in-changing-environment.html

#!/bin/sh
case "$2" in
    up|vpn-up)
          IP=`/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
          case $IP in
             172.*)
                logger "setNoProxy.sh -set NoProxy for enterprise net"
                NoProxy="NoProxy         localhost, 127.0.0.*, 10.*, 192.168.*,enterprise-intranet"
                ;;
               *)
                logger "setNoProxy.sh - set NoProxy for direct net"
                NoProxy="NoProxy *"
                ;;
            esac
         sudo sed "s/^NoProxy.*$/$NoProxy/g" -i /etc/cntlm.conf
         sudo service cntlm restart
         ;;
esac

相关内容