使用ssh转发

ssh实现转发,只要用到以下两条命令:

    

ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119

 

    不论是做跳板,还是加密隧道,还是加密其他的网络连接也都是这两条命令。
视具体情况而定,有时只要用到其中一条,有时两条都要用到。

倒序解释:
    -CfNg 
        C 表示压缩数据传输
        f  表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用.
        N 表示不执行脚本或命令
        g 表示允许远程主机连接转发端口

-L 本地转发

ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119

 表示:
     1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主192.168.1.119      的账号。
     2、在本机上打开6300端口.用 netstat -an|grep 6300 可看到 127.0.0.1:6300 或 127.0.0.1.6300
     3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.

          简单说,本机的6300端口就是远程主机192.168.1.119的1080端口。

-R 远程转发

ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119

 1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在远程主机192.168.1.119上打开1080端口.
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.

    注:本机的6300端口可直接看作远程主机192.168.1.119的1080端口


举个实用的例子:
      有A、B、C 3台服务器,A,C有公网IP,B是某IDC的服务器无公网IP。A希望同过B连接C的80端口,A<=>B<=>C

在B上执行如下命令即可:

[root@B root]# ssh -CfNg -L 6300:127.0.0.1:80 userc@C
[root@B root]# ssh -CfNg -R 80:127.0.0.1:6300 usera@A

    服务器A和服务器C之间,利用跳板服务器B建立了加密隧道。在A上连接127.0.0.1:80,就等同C上的80端口


需要注意的是:
    服务器B上的6300端口的数据没有加密,可被监听,
例:

#tcpdump -s 0 -i lo port 6300

 

 禁用ssh设置的转发

     ssh -x 127.0.0.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值