SSH本地端口转发 个人理解就是端口转发,将TCP端口的网络数据通过ssh连接转发。并提供相应的加密和解密服务。主要用于目标服务器 因防火墙或者别的原因无法直接访问,只能由于同一个局域网内的机器访问,这个时候就需要端口转发了! 原理 主机A要访问主机C,但是应为防火墙无法访问,这个时候我们链接内部的B服务器,通过B链接C服务器,B就是一个跳板机 本地端口转发(实验环境) A主机 192.168.4.7 B主机 192.168.4.72 C主机 192.168.4.189

ssh -L 2222:192.168.4.109:22 -Nf 192.168.4.72
 ![](http://i2.51cto.com/images/blog/201810/28/09216cc6ef1e7f03e6f1bc3f60e2fd60.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
-L 本地端口(建议大于2000)
-f 后台启用
-N 不打开远程shell 处于远程等待状态
192.168.4.9:22 不一定是22端口,看需求可以是任何端口
ps -aux |grep ssh  (可以查看有没有设置成功)

ssh –p2222 127.00.1 这时已经成功登陆了 可以 ip 查看IP地址 成功登陆

ssh 远程端口转发 远端端口转发(假设实验环境) A主机 192.168.4.130 (家里) B主机 192.168.4.72 (公司) C主机 192.168.4.189 (公网)

原理,主机A已经能访问到主机C了,但是想让主机C访问主机A咋办呐?这个时候就需要远程SSH隧道了, 由于公司内部的和自己家里的电脑不在一个网段内无法通信,这个时候端口转发就不能放在本地了,要放在远端的机器上! 命令:ssh -Nf -R 9906:localhost:22 192.168.4.189 //如果没有公钥189的公钥这里要输密码 在189主机上查看监听的端口启动没有

在189主机上面已经开了监听端口,连接189主机的9906端口就会被转到家里的的130的主机上面