设为首页收藏本站
查看: 18859|回复: 0

[Linux] Linux下配置SSH隧道Socks代理(bitvis功能)

[复制链接]

231

主题

64

回帖

2145

积分

管理员

积分
2145
玉米糊 发表于 2015-7-9 13:58:51 | 显示全部楼层 |阅读模式
1、首选有一个远程的SSH帐号和密码。
2、通过如下命令即可实现:
ssh -D 7070 -g user@serverip
ssh 命令的
  • -D [bind_address:]port 参数,可以在bind_addressport 端口提供代理服务;
  • -g 参数则允许其他主机连接到 -D 在本地创建的代理服务上来。


自动连接
如果你想让连接长期保持,可以写个脚本来保证因为网络原因断线的话可以自动重连。Linux平台ssh默认不支持把密码作为参数,不过有sshpass可以搞定,下载:http://sourceforge.net/projects/sshpass/files/latest/download。然后解压,编译:[mw_shl_code=bash,true]tar zxf sshpass-1.05.tar.gz
cd sshpass-1.05/
./configure --prefix=/home/user/proxy/sshpass
make
make install[/mw_shl_code]
完成后会将sshpass安装在:/home/user/proxy/sshpass目录(貌似ubuntu下可以直接apt-get install sshpass)。切换到该目录,执行命令格式如下:
sshpass -p "password" ssh -D 7070 -g user@serverip
然后写脚本autossh.sh,内容如下:
[mw_shl_code=bash,true]#!/bin/bash

while [ '' == '' ]
do
ssh_d_process_num=`ps aux|grep -E 'ssh \-' |grep -v grep |wc -l`
if [ "$ssh_d_process_num" == "0" ]; then
  /home/user/proxy/sshpass -p "password" ssh -D 7070 -g user@ServerIP &
fi

sleep 300
done[/mw_shl_code]
执行一下这个脚本就可以了。sleep 300代表300秒查看一次,可以根据需要调整。也可以配置到~/.profile脚本,使系统启动时自动执行该脚本。

本地下载sshpass: sshpass-1.05.tar.gz (96.06 KB, 下载次数: 13346)

开机连接
另外一个设置自动开启脚本的办法需要用到expect,用法如下:
[mw_shl_code=bash,true]#!/usr/bin/expect
set timeout 60
spawn /usr/bin/ssh -D 7070 -g user@ServerIP
expect {
    "*yes/no*" { send "yes\r"; exp_continue }
    "*password:" { send "your_password\r" }
}
interact {timeout 60 { send " "} }[/mw_shl_code]




回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-12-23 04:43 , Processed in 0.047167 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表