Linux下安装并配置PPTP客户端

声明

作者:昨夜星辰

博客:http://yestreenstars.blog.51cto.com/

本文由本人创作,如需转载,请注明出处,谢谢合作!

目的

在Linux上安装并配置PPTP客户端。

脚本

#!/bin/bash
# 脚本作用:交互式自动安装PPTP客户端
# 作者:昨夜星辰
# 创建时间:2015-04-29
# 修改时间:2015-04-29

echo ‘请输入VPN服务器的相关信息:‘
echo ‘(温馨提示:在输入过程中,如果不小心输错了,那么只能通过Ctrl-C终止脚本重新来过了。)‘

while read -p ‘IP:‘ IP
do
	if [ -n "$IP" ]
	then
		break
	fi
done

while read -p ‘用户名:‘ username
do
	if [ -n "$username" ]
	then
		break
	fi
done

while read -p ‘密码:‘ password
do
	if [ -n "$password" ]
	then
		break
	fi
done

echo ‘信息收集完毕!开始安装并配置PPTP客户端!‘

echo -n ‘正在安装主要软件...‘
(
yum -y install ppp pptp pptp-setup
cp /usr/share/doc/ppp*/scripts/po{n,ff} /usr/sbin/
chmod u+x /usr/sbin/po{n,ff}
) &> /dev/null && echo ‘完成‘ || exit

echo -n ‘正在配置PPTP...‘
(
pptpsetup --create vpn --server $IP --username $username --password $password --encrypt
cat > /etc/ppp/options << EOF
# Lock the port
lock
# We don‘t need the tunnel server to authenticate itself
noauth
# Turn off compression protocols we know won‘t be used
nobsdcomp
nodeflate
# We won‘t do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2
# (you may need to remove these refusals if the server is not using MPPE)
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
EOF
echo ‘#!/bin/bash
# chkconfig: 2345 10 90

prog="vpn"

start() {
	if pgrep pppd &> /dev/null
	then
		echo "The $prog service has been started."
	else
		echo -n "Starting $prog..."
		pon vpn
		#sleep 5
		#route add -net 0.0.0.0 dev ppp0
		while true
		do
			route add -net 0.0.0.0 dev ppp0 &> /dev/null
			if [ "$?" -eq 0 ]
			then
				break
			fi
			sleep 1
		done
		echo "OK"
	fi
}

stop() {
	if pgrep pppd &> /dev/null
	then
		echo -n "Stopping $prog..."
		poff vpn
		echo "OK"
	else
		echo "The $prog service is not started."
	fi
}

status() {
	if pgrep pppd &> /dev/null
	then
		echo "The $prog service is running..."
	else
		echo "The $prog service is not running..."
	fi
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		sleep 1
		start
		;;
	status)
		status
		;;
	*)
		echo "Usage: $0 {start|stop|restart|status}"
esac‘ > /etc/init.d/vpn
chmod u+x /etc/init.d/vpn
) &> /dev/null && echo ‘完成‘ || exit

while read -p ‘是否设置VPN为开机自动启动?(y/n)‘ answer
do
	case "$answer" in
		y)
			chkconfig --add vpn
			break
			;;
		n)
			break
			;;
		*)
	esac
done

echo ‘安装并配置完毕!有关vpn客户端的启动、停止等操作请参考以下提示:‘
/etc/init.d/vpn

参考内容:https://wiki.archlinux.org/index.php/PPTP_VPN_client_setup_with_pptpclient

本文出自 “昨夜星辰” 博客,请务必保留此出处http://yestreenstars.blog.51cto.com/1836303/1640555

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。