SSH隧道的好处就不多说了。建立好一个SSH 隧道后,在你的机器本地会开放一个端口,通过本地的这个端口访问,就相当于在远程主机上去直接访问目标。如果隧道另一端的端口是动态的,SSH 隧道就是一个不折不扣的代理了。如果在某些情况下,本地不能直接访问SMTP服务器而有一个远程主机可以,那就利用下SSH的隧道功能吧。下面以putty为例:

1、在PuTTY的Connection-〉SSH-〉Tunnels 设置页面中,Add new forwarded port 就是添加隧道转发端口的。其中 Source port是隧道的入口,填上SMTP的端口:25。Destination是目的地,隧道的出口,输入的格式是: server:port,填上SMTP服务器的IP地址和端口。方向选Local。如果你想收邮件也通过远程主机来收,那么为POP3也添加一个隧道就可以了。
2、在Outlook 2010 或者其他邮件客户端的设置里,SMTP服务器的地址设置成127.0.0.1(localhost)即可。
3、发送邮件之前,先用PuTTY登陆远程主机,然后在Outlook里正常收发邮件就可以了。

顺便介绍下隧道方向的概念。SSH隧道的方向是由单选按钮 Local/Remote/Dynamic来决定的。如果单选按钮选中的是Local,那么Destination这里填写的目标是相对于远程主机而言,而非你的机器。这样的隧道称之为正向隧道,隧道的入口是在你的本地,出口在远程主机那一端。如果单选按钮选中的是 Remote,那么目标地址就是相对于你的机器而言,而非远程主机。这样的隧道称之为反向隧道,隧道的入口是远程主机那一端,隧道的出口则是你的本地机器。正好与Local是相反的。而最后一个 Dynamic 则不用指明 Destination 目标地址,也就是说目标地址是动态的了,连入隧道时可以随意指定目标地址,而不像 Local/Remote 指明的固定目标地址,所以这样的隧道就成了一个不折不扣的加密socks5代理服务器了。