当用ssh连接*Nix服务器,几分钟没有操作,ssh连接就会被断开。如何才能保持ssh连接不被超时断开呢?有两种方法: 服务器端设置 打开文件 /etc/ssh/sshd_config 找到 ClientAliveInterval 选项, 如果没有的话,添加此选项。如下设置表示每360秒(6分钟)向客户端发送一个是否保持连接的查询信息(该选项默认为0,表示不发送查询信息) ClientAliveInterval 360 客户端设置 打开文件 /etc/ssh/ssh_config 找到 ServerAliveInterval 选项, 如果没有的话,添加此选项。如下设置表示每360秒(6分钟)向服务器端发送一个是否保持连接的查询信息(该选项默认为0,表示不发送查询信息) ServerAliveInterval 360 当你需要连接到多个ssh服务器时,可以使用 客户端设置 的方法,如果你是管理一个ssh服务器,希望所有的ssh客户端不被自动超时断开的话可以使用 服务器端设置 网络书签
创建SSH SOCKS 服务器 我们知道设置SSH SOCKS 代理服务器是很简单的,只要你有一个远端服务器的ssh帐号,使用下面的命令就可以轻易的创建一个套接字代理服务器。 ssh -fND 6666 ssh_user@ssh_server 它的用途是将应用程序的端口请求通过ssh加密通道动态的转发到远端ssh服务器。比如,我们可以设置firefox使用SOCKS5代理服务器并将端口按上面的命令设置为6666, 这样当我们用firefox浏览网页时(也就是对80端口的访问请求)就被转发到远端ssh服务器上作请求了。因为所有的访问请求经过ssh加密通道,所以用来对付墙还是很得心应手的。 bzr 不支持SOCKS代理服务器转发 因为经常要用bzr版本控制工具同步在launchpad上的项目,但是直截访问launchpad的速度实在太慢了。我发现我在国外租用的ssh服务器访问launchpad的速度非常快,而本地访问ssh服务器的速度也还不错,所以,自然就想到了能不能把bzr通信转发到ssh服务器。很不幸的发现bzr并不支持SOCKS代理服务转发。难不成我们只能忍受bzrlp的龟速,Google一通之后,发现了 tsocks tsocks 如何工作 它的基本原理是: 在加载应用程序之前, tsocks 先加载其共享库 该函数库覆写了内核的 connect() 函数 这样当应用程序发送连接请求时,该请求就被转发给了代理服务器(然后通过加密通道转发到了ssh服务器) 所有这些是通过设置环境变量 LD—RELOAD``的值为 ``/usr/lib/libtsocks.so 来实现的,tsocks 本身只是一个简单的shell包装(wrapper)脚本,所有的转发任务都是由上述的函数库完成。 安装好tsocks后,编辑文件 /etc/tsocks.conf 将已有的所有内容都注释掉,添加下面两行内容: server = 127.0.0.1 server_port = 6666 #设置为你的SSH SOCKS服务器开放的端口 就是这么简单,以后我们只要在运行bzr程序前,运行tsocks就可以使用创建好的SSH SOCKS服务器了: tsocks bzr pull lp:xxxx 这下bzr的访问速度还真是大大的提高了, 其实我们可以用tsocks来实现所有不直接支持SOCKS代理服务的程序。 参考文章:http://www.plenz.com/tunnel-everything 网络书签













