原理非常简单,借助unixcenter或者其他两台机器都可以ssh上的支持转发的服务器做跳板就可以
下面说明步骤
1.架设ssh server
如果你是win,那么你需要在本机开一个ssh server,不要以为ssh server是linux的专利,win也有,OpenSSH for Windows,,基于cygwin移植安装步骤非常简单,关键是安装完成以后要同步导入本机用户和密码到里面去
[bash]cd C:\Program Files\OpenSSH\bin
mkgroup -l > ..\etc\group
#同步本地组
mkgroup -d >> ..\etc\group
#同步域组
mkpasswd -l > ..\etc\passwd
#同步本地用户帐户
mkpasswd –d >> ..\etc\passwd
#同步域用户
net start opensshd
[/bash]
然后就可以使用你的NT用户名和密码ssh到本机了
Linux下面假设ssh server不赘述
2.在A机上映射本地动态socks V5端口,假设为1080
[bash]ssh -N -D 1080 ihipop@localhost[/bash]
3.把A机本地的socks V5端口,这里为1080端口,和unixcenter上的某个没有被占用的端口映射起来,假设为8000
[bash]ssh -N -R 8000:localhost:1080 [email protected][/bash]
3.把unixcenter的已经和A机的1080端口建立映射的socks V5端口,这里为8000端口,和B机上的某个没有被占用的端口映射起来,假设为8110
[bash]ssh -N -L 8110:localhost:8000 [email protected][/bash]
这样,在B机上,就建立起来了一条映射链条
[Machine B]:8110->[unixcenter]:8000->[Machine A]:1080
这样,只要在B机上设置代理为本地8110端口,使用支持socks V5的浏览器就可以通过A机上网,比如,访问只对A机开放的A机所在的内网资源
参考黑孩儿日志:OpenSSH 端口转发原理