#!/bin/bash

# giving user passwordless sudo privileges
USER=`whoami`
MYPATH=$(cat /etc/passwd|grep $USER|awk -F: '{print $6}')

# need to be run as root
if [[ "$EUID" -ne 0 ]]; then
    echo "This script must be run as root"
    exit 1
fi

#parse args
while getopts "c:i:p:I:P:z:h" arg
do
    case $arg in
        c) CONFIG=$OPTARG
           if [[ ! -f "$CONFIG" ]]; then
               echo " unvalid arg for -c, ple make sure the config file is exist "
               exit 1
           fi
           ;;
        i) PROXY_IP=${OPTARG:-127.0.0.1} ;;
        p) PROXY_PORT=${OPTARG:-8888} ;;
        I) SERVER_IP=$OPTARG ;;
        P) SERVER_PORT=$OPTARG ;;
        z) ZTE_PROXY=${OPTARG:-proxysh.zte.com.cn}  ;;
        h)
           echo " -------------args for setting up stunnel--------------------"
           echo " -c: client certification"
           echo " -i: proxy ip, default to localhost
           echo " -p: proxy port, default to 8888"
           echo " -I: server ip
           echo " -P: server port listened in server"
           echo " -z: zte proxy, need to be consistent with system network set"
           echo "-------------------------------------------------------------"
           exit 0
           ;;
        ?) echo "unvalid arg"
           exit 1
           ;;
    esac
done

if [[ ! $CONFIG || ! $SERVER_IP || ! $SERVER_PORT ]]; then
    echo " need args, ple use -h for help..."
    exit 1
fi

HTTP_PROXY=http://$PROXY_IP:$PROXY_PORT
NO_PROXY=localhost,127.0.0.1,10.*.*.*/8

# use internal apt-source
INTER_APT_SOURCE=10.62.99.232

function use_internal_apt_source {
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk
    sudo cat <<EOF >/etc/apt/sources.list
deb http://$INTER_APT_SOURCE/common/ubuntu trusty main restricted multiverse universe

deb http://$INTER_APT_SOURCE/common/ubuntu trusty-security main restricted multiverse universe

deb http://$INTER_APT_SOURCE/common/ubuntu trusty-updates main restricted multiverse universe

deb http://$INTER_APT_SOURCE/common/ubuntu trusty-proposed main restricted multiverse universe

deb http://$inter_apt_source/common/ubuntu trusty-backports main restricted multiverse universe
EOF

    sudo apt-get update
}

# if use internal apt-source to install stunnel,
# after install stunnel successfully, ple change back original apt-source
function change_back_apt_source {
    sudo mv /etc/apt/sources.list.bk /etc/apt/sources.list
}

# (optional) if can not connect to wwww, user internal apt-source
use_internal_apt_source

sudo apt-get install -y stunnel
# (optional) no matter if stunnel package is installed, change back to origin apt-source
change_back_apt_source

sudo cat << EOF > /etc/stunnel/client.conf
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
pid = /stunnel4-client.pid
client = yes
cert = /etc/stunnel/client.pem
sslVersion = SSLv3

socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

[squid]
accept = $PROXY_PORT
protocol = connect
protocolHost = $SERVER_IP:$SERVER_PORT
connect = $ZTE_PROXY:80
EOF

sudo cp $CONFIG /etc/stunnel/client.pem
sudo sed -i -r "s/ENABLED=0/ENABLED=1/g" /etc/default/stunnel4

# restart stunnel
sudo service stunnel4 restart

#config proxy: append to $MYPATH/.profile
cat <<EOF >> /$MYPATH/.profile
export http_proxy=$HTTP_PROXY
export https_proxy=$HTTP_PROXY
export no_proxy=$NO_PROXY
EOF

sudo cat <<EOF > /etc/apt/apt.conf
Acquire::http::proxy \"$HTTP_PROXY/\";
Acquire::https::proxy \"$HTTP_PROXY/\";
EOF

source $MYPATH/.profile
sudo apt-get update

  

stunnel-client的更多相关文章

  1. Stunnel使用2

    1.首先测试一下stunnel.exe,是否能正常运行,正常的话,不会报错,在桌面右下角位置显示. 2.第一步完成后,打开stunnel.conf,对stunnel进行配置,需要修改一下几项:(mys ...

  2. squid+stunnel+用户密码认证的三种玩法

    没办法,应用越来越深入,就会越来越多要求. squid+stunnel+用户密码认证的场景至少以下三个,我会遇到. 1,标准玩法 在服务器上建一个SQUID,加密码认证,然后,其它人通过它上网.(不要 ...

  3. AWS + Stunnel + Squid ***

    [需求] 第一,能***. 第二,在企业网络要能突破端口限制. [原理] 利用AWS提供的一年免费EC2服务,搭建一台自己的VPS,在VPS中利用Stunnel与本机建立加密连接,将本地http请求通 ...

  4. stunnel-server

    #!/bin/bash # need to be run as root ]]; then echo "must to be run as root" exit fi # givi ...

  5. 【原】基于64位Centos6.2的mcrouter使用简介

    此文转载必须注明原文地址,请尊重作者的劳动成果!  http://www.cnblogs.com/lyongerr/p/5040071.html 目录 文档控制... 2 1 mcrouter简介.. ...

  6. 用ccproxy + stunnel做个加密代理

    https://www.stunnel.org/downloads.html ccproxy + stunnel做个加密http代理和socks5代理 目前国内用户无法访问某些国外网站,如http:/ ...

  7. stunnel+CCProxy,搭建加密代理

    总所周知,不可抗拒的特别有用心的原因,我们无法访问youtube,picasa,Twitter……国外优秀网站,很多人采用了代理服务器的方法访问. 如果您有一台放在海外的服务器,这个就好办了.下载一个 ...

  8. Windows系统Stunnel客户端的配置

    Stunnel官方就有Windows版本,到下面的地址下载: https://www.stunnel.org/downloads.html 选择”stunnel-X.XX-installer.exe“ ...

  9. Stunnel使用

     建立加密隧道 使用 Stunnel 建立加密隧道 附件中的 Server 和 Clinet 都是已经配置好了的,只需修改 Server 的 stunnel.conf 的 connect 为实际的ip ...

随机推荐

  1. Cannot send session cache limiter Cannot modify header information

    当php报出  Cannot send session cache limiter 或Cannot modify header information   的错误时   其理论上是因为php代码以前有 ...

  2. HTML 中级

    abbr(表示它所包含的文本是一个更长的单词或短语的缩写形式): <p>This web site is about <abbr title="HyperText Mark ...

  3. 高性能javascript(记录三)

    DOM(文档对象模型)是一个独立的语言,用于操作XML和HTML文档的程序接口(API).在游览器中,主要用来与HTML文档打交道,同样也用在Web程序中获取XML文档,并使用DOM API用来访问文 ...

  4. Bootstrap<基础十> 响应式实用工具

    Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发.这些可以通过媒体查询结合大型.小型和中型设备,实现内容对设备的显示和隐藏. 需要谨慎使用这些工具,避免在同一个站点创建完全不同 ...

  5. Nginx配置单主机多域名

    http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; ...

  6. WPF学习笔记1---初接触

    刚刚接触WPF,微软的一套东西.WPF最大的特点就是UI设计与代码逻辑的完全剥离.这样美工和程序员的分工就变得非常清楚.因为界面和程序的耦合度很低,也增加的代码的灵活性和可重用性. 微软为WPF的UI ...

  7. android 指示器 tablatyout

    <android.support.design.widget.TabLayout/>android 材料设计中新出的控件 package com.weavey.loadinglayout; ...

  8. ByteArrayBuilder

    public class ByteArrayBuilder : IDisposable { #region Constants /// <summary> /// True in a by ...

  9. 黑马程序员——C语言基础 函数

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...

  10. 依然同上~ 点击获取当前option的value与text

    $(".tjbtn").click(function(){ $('#leader').each(function(index, ele){ var leader = ele.val ...