SSH 正向/反向代理小记
上周因为玩耍Minecraft的原因,折腾了下ssh的正向、反向代理,不得不说,科技改变命运。。了解了基础的用法之后,很多跨域的事情都可以通过代理解决,而且只需要ssh帐号权限即可。
那么就简单来介绍下吧,常见的SSH代理介绍文章都会上来先描述场景,例如ABC三个域,怎么样访问之类,看完头就晕了,我换个说法:
1. minecraft ssh代理
ssh -fCNR 9977:localhost:25565 user1@host1 -p 6666 -o TCPKeepAlive=yes -o ServerAliveInterval=300
第一段在本地minecraft服务器执行,
蓝色部分:fCNR为ssh命令(鉴于我说不准请自己查吧!),9977 是希望在远程host1上打开的目标端口,localhost:25565 为本地的源IP:Port。
红色部分:传统的ssh登陆命令,写上目标机器的用户,IP,我这里特殊指定了ssh连接端口为6666,增加了TCPKeepAlive和 ServerAliveInterval。
运行完成后本地ps查看一下ssh进程是否在,在的话一般就木有问题了。
简单的说,这一段命令的主要目标,就是把 本地的 25565 端口映射到 remote host1 的 9977 端口。
ssh -fCNL 0.0.0.0:9978:127.0.0.1:9977 user1@127.0.0.1 -p 6666
第二段在目标服务器上执行,因为 minecraft 是要开放给外网的,所以第一次映射只映射到了 localhost 本地,第二次在做一个映射。
蓝色部分: 目标为 0.0.0.0:9978 ,源为 127.0.0.1:9977
红色部分: 传统ssh登陆命令。
这一段的主要目标,是把本地的 localhost 9977 映射到 0.0.0.0 9978。
截止到这里,如果你都看懂了的话,基本上ssh的正向、反向代理你也就掌握了,至于哪个是正向,哪个是反向,自己考虑吧!
2. 另外附上一个实战的例子:
len@LEN-PC /e/code
$ ssh -fCNR 3690:dev_ip:3690 ctqmumu@192.168.1.132
通过 ssh 把 内网svn的端口映射到自己的开发机上,这样就可以直接在开发机上checkout了。