SSH端口转发

本地端口转发

应用场景:远程主机运行了一个服务如HTTP网站,而防火墙等原因不允许访问该服务,通过本地端口转发到本地主机可避免修改防火墙等设置达到访问该服务的目的。

详细命令:ssh -fCNL 127.0.0.1:8080:127.0.0.1:80 root@192.168.1.1
简写命令:ssh -fCNL 8080::80 root@192.168.1.1

  • -f 后台运行
  • -C 启用数据压缩
  • -N 不执行命令
  • -R 本地端口转发 参数形式:本地主机IP:本地端口:目标主机IP:目标端口

远程端口转发

应用场景:本地主机运行了一个服务如HTTP代理,远程主机需要通过该代理访问网络。

将本地主机的127.0.0.1:7890转发到远程主机的127.0.0.1:1080端口:
详细命令:ssh -fCNR 127.0.0.1:1080:127.0.0.1:7890 root@192.168.1.1
简写命令:ssh -fCNR 1080::7890 root@192.168.1.1

  • -f 后台运行
  • -C 启用数据压缩
  • -N 不执行命令
  • -R 远程端口转发 参数形式:远程主机IP:远程端口:目标主机IP:目标端口

动态端口转发

应用场景:远程主机充当代理服务器,本地通过远程主机代理访问网络。

将本地主机127.0.0.1:1080端口用作动态端口转发:
命令:ssh -fCND 1080 root@192.168.1.1

  • -f 后台运行
  • -C 启用数据压缩
  • -N 不执行命令
  • -D 动态端口转发

使用方法:
在本地主机上设置代理,协议为SOCKS4或SOCKS5、代理服务器为127.0.0.1、端口1080,即可通过远程主机代理来访问网络。