SSH转发
2021年12月27日本地访问127.0.0.1:port1就是host:port2(用的更多) ssh -CfNg -L port1:127.0.0.1:port2 user@host #本地转发 访问host:port2就是访问127.0.0.1:port1 ssh -CfNg -R port2:127.0.0.1:port1 user@host #远程转发 可以将dmz_host的hostport端口通过remote_ip转发到本地的port端口 ssh -qTfnN -L port:dmz_host:hostport -l user remote_ip #正向隧道,监听本地port 可以将dmz_host的hostport端口转发到remote_ip的port端口 ssh -qTfnN -R port:dmz_host:hostport -l user remote_ip #反向隧道,用于内网穿透防火墙限制之类 socket代理: ssh -qTfnN -D port remotehost 参数详解: -q Quiet mode. 安静模式 -T Disable pseudo-tty allocation. 不占用 shell 了 -f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数 -N Do not execute a remote command. 不执行远程命令,端口转发就用它了 -L port:host:hostport 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport -R port:host:hostport 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport -D port 指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS协议, 将充当SOCKS服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.
本地转发
转发远程服务器的3306端口到本地的1234端口
ssh -CfNg -L 1234 127.0.0.1:3306 root@12.12.12.12
ssh远程转发
在12.12.12.12山访问127.0.0.1:81就是访问内网的80端口
ssh -CfNg -R 81:127.0.0.1:80 root@12.12.12.12
ssh动态转发socks代理
ssh -qTfnN -D 1080 root@12.12.12.12
http://staff.washington.edu/corey/fw/ssh-port-forwarding.html
https://github.com/l3m0n/pentest_study