关于SSH之前在《ssh基本原理和免密码登录》文章中介绍过ssh的一些基本的原理,SSH其实还有一个比较另类的应用就是做Socket 5代理。
现在很多公司都对内部访问网络做了一些限制,比如不让访问微博,不能上QQ等聊天工具。小编公司就安装了一个上网行为管理的设备,居然在linux下收发邮件都是问题,真不知道这个设备是哪个公司产的,幸亏小编公司在外部有很多服务器可以拿来做代理使用。
幸好有天然的ssh支持socket 5代理,通过ssh进行代理有很多好处:ssh通道是加密的,ssh代理不需要在服务器端安装什么软件因为ssh-server是linux的标配了。
打开终端执行如下命令:
ssh -qTfnN -D 7070 -p 22 user@host |
该命令是一个后台命令,执行完毕后输入正确的密码(可以免密码登录)后就可以关闭终端。
以Thunderbird为例设置代理服务器:菜单栏–>编辑–>首选项–>高级–>网络&磁盘磁盘空间–>链接-设置成如下:
这样就可以享受ssh给你带来的socket 5代理了。
如果您有服务器在国外,还可以使用这种方式进行翻墙,Pidgin、Firefox、Chrome(需要插件)均可以通过这个方法翻越公司的行为管理设备。
顺便提下该才命令的各个参数:
- -D 绑定本地端口
- -p 远程服务器的端口
- -q Quiet mode,ssh的诊断信息以及警告等信息被抑制
- -T 禁用伪终端分配
- -f 该选项是后台执行的ssh在规定时间(10秒)内进行连接,如果超过该时间ssh将退出。
- -n 重定向标准输入到/dev/null中,为了防止从标准输入中读入。ssh进行后台执行时必须使用该参数。该选项对于要求输入密码不起作用
- -N 不执行远程命令