最近需要VNC访问内网的一些虚拟机,以前的做法是通过在跳板机上面安装VNC客户端,然后再使用这个客户端来访问内网的机器。感觉比较麻烦,后来发现可以使用SSH进行远程端口转发来简化这个流程。
首先来看下SSH的这个命令:
ssh <username>@<remote host IP address or DNS name> -L <local port>:<remote IP address>:<remote port>
通过这个命令,可以将远端的一个端口转发到本地的一个端口上面。所以,我的做法是,当需要访问一台内网虚拟机的时候,将内网中宿主机上的5900(VNC端口)转发到跳板机上,然后再使用笔记本上面的VNC客户端直接去连接跳板机的5900端口就可以了。类似这样:
ssh root@192.168.1.2 -L 5900:127.0.0.1:5900
同理,也可以使用这个方法进行多级转发,不过注意需要加上-g这个参数,意思是:允许远程主机访问本地的转发端口
ssh root@192.168.1.2 -L 5900:127.0.0.1:5900 -g