周海汉 /文
2010.1.11
SSH端口转发可以提供一条加密隧道,该隧道可以用于穿透防火墙,防止窃听。但隧道两侧仍是明文。
1. LocalForward
应用场景:
你需要访问邮箱pop.163.com 端口110,但你本地localhost不能直接连接到邮箱,而远程一台服务器MySer可以访问到。
zhouhh@zhouhh-home:~$ssh -p 60066 -L 9999:pop.163.com:110 root@MySer
root@Myser's password:
Last login: Sun Jan 10 23:42:21 2010 from 125.39.109.34
其中-p 参数是Myser ssh连接的端口 9999是本地端口。-L 是LocalForward
本地连接:
zhouhh@zhouhh-home:~$nc localhost 9999
+OK Welcome to coremail Mail Pop3 Server (163coms[d0a67bcd290bb19fb165d92968971e20s])
USER ablo_zhou
+OK core mail
PASS xxxxx
LIST
+OK 61 38689853
1 6402
2 2478
3 5780
QUIT
+OK core mail
2. RemoteForward
应用场景:你周末需要加班,但你不想去公司干活,想在家里干。而很多资源如subversion都只有公司内网才能访问到。防火墙不允许你从家里直接连公司。VPN又在周末出了问题,需维护。
可以在下班前,先配置工作机器,远程连接到你家里的电脑,采用远程转发RemoteForward.
工作机器配置:
vi ~/.ssh/config
Host myhome
Hostname 123.45.67.8
RemoteForward 2222:localhost:22
User ablozhou
远程连接到家里:
zhouhh@zhhofs$ssh myhomezhouhh@123.45.67.8's password:
远程连接到家里后,为防止防火墙对不活动连接关闭,做一个定期的ping
zhouhh@zhouhh-home$ ping -i 5 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.1 ms
这样就会有回显,连接才不会断。
回家后,可以连接
zhouhh@zhouhh-home$ ssh -p 2222 zhouhh@localhosthttp://www.securityfocus.com/infocus/1816
zhouhh@localhost's password:
zhouhh@zhhofs$
成功
参考: