本地转发:以本地作为跳板,访问其他网络的资源。下图给出一个示例:

目的:想让 D服务器 能访问 A服务器 的 6379 端口。
已有条件:1、A服务器开放 6379 端口;2、B服务器可以访问A服务器;3、我们能控制 C服务器,由于端口映射、开放网络策略、代理、VPN等等或者其他原因,我们可以用 C服务器 作为客户端登录到 B服务器;
在 C服务器 上执行: ssh -f -N -g -L 63790:10.0.0.1:6379 root@10.0.0.2
会在 C服务器 上开放一个 63790 的端口,D服务器访问 C服务器 的此端口,就是访问 A服务器 的 6379 端口。

A服务器的6379端口,也可以是 B服务器上监听在127.0.0.1的端口。
远端转发:把本地能访问的资源(指端口资源),转发到别的网络中,让别的网络可以通过本地(指自己这台服务器)访问该资源(端口资源)。下图给出一个示例:

目的:想让 C服务器 能访问 A服务器 的 6379 端口。
已有条件:1、A服务器开放 6379 端口;2、B服务器可以访问A服务器;3、我们能控制 B服务器,并且可以作为客户端登录 C服务器;
在 B服务器 上执行: ssh -g -f -N -R 63790:10.0.0.1:6379 root@123.1.2.3
会在 C服务器 上开放一个 63790 的端口,访问此端口,就是访问 A服务器 的 6379 端口。

A服务器的6379端口,也可以是 B服务器上监听在127.0.0.1的端口。
重点:如果想把监听绑定在 C服务器 的 0.0.0.0 上,需要修改 /etc/ssh/sshd_config 配置文件里的 GatewayPorts 为 yes,然后重启sshd服务。如果没有此配置项,需要手动添加。
发表回复