Putty
- 是指将本地端口映射到指定地址
- 是指将远程端口映射到指定地址
SSH
如果使用 linux/mac 下的 ssh 命令
$ ssh -R 9001:127.0.0.1:9000 host
R 代表 remote , 也就是将远程端口9000映射到指定地址127.0.0.1:9000 (本机) , 访问远程服务器的9000端口会转发到本地的9001端口
$ ssh -L 27018:127.0.0.1:27017 host
L 代表 location ,也就是将本地端口27018映射到指定地址127.0.0.1:9000 (远程服务器的网络环境) , 访问本地的27018, 会转发到远端服务器的127.0.0.1:27017 , 下面是另外一种用法, 用来内网穿透,访问远程服务器的局域网内的服务
$ ssh -L 27018:192.168.1.5:27017 host
测试
判断是否映射成功
$ netstat -a -n | grep sshd
如何选择 L / R
- 当远端有一个redis服务 , 监听了6379端口, 想在本地服务器上也访问远端的redis服务, 则使用
ssh -L 6777:127.0.0.1:6379 user@ip
, 在本地执行redis-cli -p 6777 即可访问远端的redis server ,在本地执行netstat -a -n | grep sshd
可以看到, 本地sshd监听了6777端口 - 当本地有一个redis服务 监听了6379端口, 想在远端服务器上也访问本地的服务, 则使用
ssh -R 6666:127.0.0.1:6379 user@ip
, 在远端服务器上执行redis-cli -p 6666
即可访问本地的redis server,在远端执行netstat -a -n | grep sshd
可以看到, 远端的sshd监听了6666端口