用SNIPROXY共享443端口

已认证 随性且迷人 1月前 97


为了443端口复用,就有了这个sniproxy.sh

我喜欢用AnyConnect,为了方便就只能用443端口了。

然而,网站的https也需要用443端口。

所以,此shell就出于nginx和ocserv共用443端口的目的而存在的。

有此需要的,就请尝试一下吧!

已经在 Debian 7 上部署成功了。


n/bash
[ "$#" -eq '1' ] && [ "$1" == 'manual' ] && Select=Manua
[ "$#" -eq '1' ] && [ "$1" == 'lazy' ] && Select=Laz
[ "$#" -eq '0' ] && Select=Laz
[ -z "$Select" ] && exit 1

sed -i '/wheezy main/'d /etc/apt/sources.lis
echo "deb http://httpredir.debian.org/debiawheezy main" >>/etc/apt/sources.lis
echo "deb-src http://httpredir.debian.org/debian wheezy main" >>/etc/apt/sources.lis
sed -i '/cdrom/'d /etc/apt/sources.lis
sed -i '/^$/'d /etc/apt/sources.list

apt-get update
apt-get install -y autotools-dev cdbs debhelper dh-autoreconf dpkg-dev gettext libev-dev pkg-config libpcre3-dev
[ $? -ne '0' ] && echo "Requisites error! " && exit 1


function Manual()
{
mkdir -p ~/udns && cd ~/udns
wget --no-check-certificate -q -O udns_0.4.orig.tar.gz 'https://docs.google.com/uc?id=0B783U-qC53BDSVFBTEhmYXQ2Qkk&export=download'
wget --no-check-certificate -q -O udns_0.4-1.debian.tar.gz 'https://docs.google.com/uc?id=0B783U-qC53BDUWxOd2k3eFd2d00&export=download'
wget --no-check-certificate -q -O udns_0.4-1.dsc 'https://docs.google.com/uc?id=0B783U-qC53BDX2UzZGk3OTNjNHc&export=download'
tar -xvf udns_0.4.orig.tar.gz
cd udns-0.4/
tar -xvf ../udns_0.4-1.debian.tar.gz
dpkg-buildpackage
dpkg -i ../*udns*.deb 
mkdir -p ~/sniproxy && cd ~/sniproxy
wget --no-check-certificate -q -O sniproxy.tar.gz 'https://docs.google.com/uc?id=0B783U-qC53BDeHdJbE1PdkRBUU0&export=download'
tar -xvf sniproxy.tar.gz
cd sniproxy-*
./autogen.sh
dpkg-buildpackage
dpkg -i ../sniproxy_*.deb
[ $? -ne '0' ] && echo "Install error! " && exit 1
}
function Lazy()
{
mkdir -p ~/sniproxy && cd ~/sniproxy
[ -z "$(which getconf)" ] && echo "Requisites error! " && exit 1
[ "$(getconf LONG_BIT)" -eq '32' ] && wget --no-check-certificate -q -O sniproxy.tar.gz 'https://docs.google.com/uc?id=0B783U-qC53BDZGdGa2lJZWZXbzQ&export=download'
[ "$(getconf LONG_BIT)" -eq '64' ] && wget --no-check-certificate -q -O sniproxy.tar.gz 'https://docs.google.com/uc?id=0B783U-qC53BDMUMxejFMcnNhcVU&export=download'
tar -xvf sniproxy.tar.gz
cd sniproxy_*
dpkg -i ./*.deb
}
[ "$Select" == 'Manual' ] && Manual || Lazy
/etc/init.d/sniproxy stop
sed -i 's/ENABLED=0/ENABLED=1/g' /etc/default/sniproxy
rm -rf /etc/sniproxy.conf
cat >/etc/sniproxy.conf<<EOF
user daemon
pidfile /var/run/sniproxy.pid
error_log {
    syslog daemon
    priority notice
}
listen 443 {
    proto tls
    table List
    #Default fallback
    fallback localhost:4443
}
table List {
    nginx.ltd 127.0.0.1:4443
    ocserv.ltd 127.0.0.1:7443
}
EOF
/etc/init.d/sniproxy start
/etc/init.d/sniproxy status


注意:

如果发现sniproxy不能成功启动,请尝试以下操作:

1.查看端口占用,并停止相关程序。

2.还原配置文件。


还没有人收藏过本帖~
访客记录
  • 马化腾
最新回复 (0)

你可以在 登录 or 注册 后,对此帖发表评论!

返回