2009年7月7日星期二

ssh翻墙服务

    不多说了,上脚本。
-----------/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/.*LISTEN\s*\(.*\)/\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:

没有评论: