SSH之流量转发

一、Windows安装opensshfor windows

1、在gethub下载傻瓜式安装

下载地址:https://github.com/babarnazmi/WinSSH/raw/master/downloads/WinSSH.exe

2、建一个可以登录ssh的账户并设置密码

3、Cmd进入c:\program files (x86)\openssh\bin

mkgroup -l >> ..\etc\group      (local groups)
mkgroup -d >> ..\etc\group      (domain groups)
mkpasswd -l  >> ..\etc\passwd      (local users)
mkpasswd -d  >> ..\etc\passwd      (domain users)

4、开启服务: net start opensshd

二、全部流量转发

注:再把A主机所有得流量经A主机的某一端口通过B主机(代理服务器)转发。

1、ssh命令流量转发

命令:
ssh -D [本地IP或省略]:[本地端口] [登陆服务器的用户名@服务器IP] -p [服务器ssh服务端口(默认22)]

本机IP :192.168.2.27
SSH服务器IP:192.168.2.26
在本机(192.168.2.27)执行:SSH -qTfnN -D 10800 root@192.168.2.26
-q  安静模式,忽略一切对话和错误提示。
-T  不占用 shell 了。
-f  后台运行,并推荐加上 -n 参数。
-n  -f 推荐的,不加这条参数应该也行。
-N  不执行远程命令,专为端口转发度身打造。

-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
或者用xsell, 隧道>添加>类型选择Dynamic,端口填一个没有被占用的,然后连接,点击查看隧道窗格可以查看,ID显示为绿点表示成功。

2、在windows主机上(192.168.2.27)的代理配置:

打开控制面板> 网络和internet > internet选项>连接>局域网设置>为LAN使用代理服务器>高级>套接字(填localhost 端口)

三、端口转发

1) -L 本地转发

# ssh -CfNg -L 1234:127.0.0.1:3389 oracle@172.16.1.164
本机(运行这条命令的主机)打开1234端口, 通过加密隧道映射到远程主机172.16.1.164的3389端口(使用远程主机oracle用户). 既:本机的1234端口等于远程的3389端口.

如图:在A上面执行

实例:把本地5601端口,转发到本地80(未开)端口

ssh -L 192.168.1.21:80:192.168.1.21.5601 localhost

2) -R 远程转发

# ssh -CfNg  -R 0.0.0.0:1111:B:80 root@A
作用:把内网192.168.1.2(B)的80端口,转发到外网(A)1111端口

在B或者B的内网上面执行上条命令

注:

如果不写0.0.0.0,ssh默认会把端口转发到远程主机(A)的127.0.0.1上,也就是说,只能被本机自己访问到。如何才能让其他机器访问这个端口呢?我们可以把这个映射的端口绑定在0.0.0.0的接口上,还可以加-g参数。

需要编辑  /etc/ssh/sshd_config   打开GatewayPorts 并把no 改为yes,并重起ssh server生效

参考文献:

http://blog.csdn.net/a351945755/article/details/21785647
http://www.cnblogs.com/wangkangluo1/archive/2011/06/29/2093727.html

发表评论

邮箱地址不会被公开。 必填项已用*标注