ssh -ND 1082 [email protected]
在本地开一个1082端口,做动态转发,暴露为socks5协议。程序需要明确生命使用该代理。比如 proxychains4
和 google ext SwitchyOmega
这时可以使用sock5 127.0.0.1 1082
代理, 所有经过此代理的TCP请求会经远程主机转发...
双重转发:
viaproxy 'socks5 127.0.0.1 1082' ssh -ND 1081 [email protected]
viaproxy参考:
#!/bin/bash
# Author: [email protected]
# Usage: viaproxy "socks5 127.0.0.1 1080" telnet some-host
command -v proxychains4 && proxychains=proxychains4 || proxychains=proxychains
proxy="$1"
shift
$proxychains -f <(/bin/echo -e "strict_chain\nproxy_dns\nlocalnet 127.0.0.0/255.0.0.0\n[ProxyList]\n$proxy") "$@"
https://gist.github.com/wonderbeyond/6ef3cdc191490e02a6b12162deab4fd7
本地是host1:
情形一: host1和host3互通,host3和host2互通, host1和host2不通, 需要host3做接力让host1访问host2
# 本地端口转发
ssh -NL 5556:host2:5555 ubuntu@host3 # 本地端口转发, 开一个5556端口,以目标服务器身份访问指定IP的指定端口。所有经过本地5556的数据都会由host3转到host2的555端口
ssh -NL 9901:host2:22 ubuntu@host3
ssh -p 9901 localhost # host1只要登录本地9901就可以通过host3登录host2
情形二: host3能访问host1, 但host1不能访问host3, host3和host2互通, host1和host2不通, 需要host3做接力让host1访问host2,此时本地端口转发失效
# 远程端口转发
# 在host3起命令, 登录host1, 让host1监听2121端口
ssh -R 2121:host2:21 host1
# 在host1经2121传数据, 会被host3收到并送到host2
ftp localhost:2121
http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html
好工具!!!!