不多说了,上脚本。

-----------/etc/init.d/sshtunnel------------

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin
CONF="/etc/default/sshtunnel"
source $CONF

if ! [ -x /usr/bin/ssh ]; then
exit 0
fi

start ()
{
	echo -n "Starting tunnel.."
	ssh -CNq -D "$PROXYPORT" "$USERNAME@$SSHHOST" -p $SSHPORT -o ServerAliveInterval=30 &
	echo "done."
}

stop ()
{
	echo -n "Stopping tunnel.."
	PID=$(netstat -nlp -4 | grep ":$PROXYPORT")
	PID=$(echo $PID | sed "s/.*LISTENs*(.*)/1/" | cut -f1 -d/)
	kill -9 $PID
	echo "done."
}

case "$1" in
	start|restart)
		start
		;;
	stop)
		stop
		;;
	restart)
		stop
		start
		;;
	*)
		echo "Usage: $0 {start|stop|restart|clear}"
		exit 1
		;;
esac
exit 0

-----------------end of file------------------


---------/etc/default/sshtunnel----------
PROXYPORT=7777
USERNAME=abc
SSHHOST=abc
SSHPORT=22
-----------------end of file------------------

首先准备一个远程服务器,获得域名端口,用户名密码。而后将上述脚本放置于指定位置,修改/etc/default/sshtunnel的值,即完成配置。但是上述脚本并没有解决自动登录问题,因此,请生成一个没有密码的密钥,将公钥导入远程服务器。

在完成配置后,可用update-rc.d sshtunnel start 90 2 .进行自动启动服务的安装,其中的2请替换成服务器的默认启动级别。如果不知道可以用以下方法查询。

# cat inittab | grep ^id
id:2:initdefault: