本地端口转发
将远程主机的80端口转发到本地7777端口
ssh -L 7777:127.0.0.1:80 username@192.168.239.239
大概是一种进入内网的姿势,当B主机可以访问C主机,但A主机无法访问时,使用A主机可以通过ssh连接到B主机将C主机的端口转发到A主机,也可以转发B主机上监听的地址为127.0.0.1
的端口:
ssh -L 7777:C主机IP:80 username@B主机IP
远程端口转发
将本地8888端口映射到远程主机的7777端口
ssh -R 0.0.0.0:7777:127.0.0.1:8888 username@192.168.239.239
可以实现端口映射,同时还能使得内网中不出网的靶机C通过B主机的端口上线
ssh -R 0.0.0.0:7777:127.0.0.1:8888 username@B主机IP
通常映射的端口只有B主机一台主机能访问,要时其他主机也能访问可以在/etc/ssh/sshd_config
中加入下面的配置
GatewayPorts yes
动态端口转发
使用本地8888端口进行socks5代理,通过目标主机访问其他资源
ssh -D 8888 username@192.168.239.239
在ssh端口转发后可以将目标主机作为代理服务器:
curl --proxy socks5://127.0.0.1:8888 http://192.168.239.78
其他参数
在连接时还可以加上某些参数时端口转发在后台运行:
-C 压缩数据 -f 后台运行 -N 不执行命令 -T 不分配tty -g 启用网关功能
例如:
ssh -fNTD 8888 username@192.168.239.239