Shell's Home

Jul 7, 2009 - 1 minute read - Comments

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/.*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:

Tags: gfw linux ssh

系统 游婺源

comments powered by Disqus