ssh -fCPN -L 3307:192.168.100.101:3306 root@192.168.100.100
说明如下:执行上面的shell语句,会在本地打开一个ssh的守护进程,该进程会监听本地的3307端口,这个端口为隧道的入口,当访问本地的3307端口时,数据包会通过ssh进程,经由192.168.100.100(A)发送到最终的192.168.100.101(B)的3306端口,以此达到localhost机器直接访问B上的数据库实例的目的.
[root@data0 ~]# netstat -nplt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 127.0.0.1:3307 0.0.0.0:* LISTEN 4642/ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2387/sshd
# 参数解释
# -C 使用压缩功能,是可选的,加快速度.
# -P 用一个非特权端口进行出去的连接.
# -f 一旦SSH完成认证并建立port forwarding,则转入后台运行.
# -N 不执行远程命令.该参数在只打开转发端口时很有用(V2版本SSH支持)
让其他机器也可以访问
ssh -fCPN -L 0.0.0.0:3307:192.168.100.101:3306 root@192.168.100.100
[root@data0 ~]# netstat -nplt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 4642/ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2387/sshd
网友评论