端口映射其实就是把其中一个网络设备(路由器,电脑或者服务器)的某个端口转换到另外一个网络设备上,其实就是一种NAT地址转换。linux下ssh连接命令实现的端口转发功能。在讲解端口转发之前,先了解一下ssh命令的参数:-f后台认证用户/密码,通常与-N配合使用,不需要登录远程主机;-p登录ssd服务器的sshd服务端口;-L将本地机器(客户端)的某个端口转发到远程指定机器的指定端口。工作原理是这样的,在本机分配一个socket监听端口,一旦这个端口上有连接,连接就会通过安全通道转发,同时远程主机也会建立连接与主机的主机端口。可以在配置文件中指定端口转发。只有root可以转发特权端口;-R将远程主机(服务器)的某个端口转发到本地指定机器的指定端口。工作原理是这样的,远程主机分配了一个socket监听端口端口。一旦这个端口上有连接,连接将通过安全通道引出,本地主机将与主机的hostport端口建立连接。可以在配置文件中指定端口转发。只有以root身份登录到远程主机才能转发特权端口。-D指定本地机器的“动态”应用程序端口转发。工作原理是这样的,在本机分配一个socket监听端口,一旦这个端口上有连接,就通过安全通道转发连接,根据应用程序的协议,可以判断出连接到哪里远程主机将连接到。目前它支持SOCKS4协议,将充当SOCKS4服务器。只有root可以转发特权端口。可以在配置文件中指定动态端口转发。-C压缩数据传输。-N不执行脚本或命令,通常与-f配合使用。-g允许远程主机连接到已建立的转发端口。如果不加此参数,则只允许本地主机建立连接。注意:linux下的命令和参数是严格区分大小写的。示例:开通一个主机的80端口到本地主机的8080端口的隧道ssh-N-L8080:localhost:80remotehost现在就可以直接在浏览器中输入http://localhost:8080来访问这个网站了。常用的三个转发命令是:ssh-C-f-N-g-Llisten_port:DST_Host:DST_portuser@Tunnel_Hostssh-C-f-N-g-Rlisten_port:DST_Host:DST_portuser@Tunnel_Hostssh-C-f-N-g-Dlisten_portuser@Tunnel_Host基于安全考虑,MySQL服务器的3306端口只能内部访问,防火墙对外只开放ssh端口。这种情况下,我们可以使用SSH隧道直接访问MySQL。ssh-p22-CNg-L3307:rds1r2cp34235345236.mysql.rds.aliyuncs.com:3306root@localhost密码为sshroot用户密码,然后windows客户端连接服务器ip,端口为映射的3307,aliyun-mysql用户,密码可参考:http://www.361way.com/sshswit...
