通过SSH SOCKS隧道将流量转发到特定IP

时间:2017-01-04 15:37:42

标签: curl ssh iptables socks

我可以在本地网络上SSH到223.32.11.43和cURL其他服务器。

当我进入SSH时,这是有效的:

curl -d '{my: parameter}' -H "Content-Type: application/json" 10.0.30.10
{code:200}

在远程服务器上,我设置了一个SOCKS隧道:

ssh -f -N -D 9090 MyUser@223.32.11.43

我尝试设置iptables,这样我就可以在与远程服务器相同的网络上使用内部服务器:

iptables -t nat -A OUTPUT -s 10.0.30.10 -p tcp --dport 80 -j DNAT --to-destination 223.32.11.43

但它似乎失败了,至少它超时了,我试图cURL:

curl -d '{my: parameter}' -H "Content-Type: application/json" 10.0.30.10
...timeout

做什么,所以我可以在远程服务器上执行相同的cURL?

1 个答案:

答案 0 :(得分:2)

这对我有用:

从远程计算机,将SOCKS SSH隧道设置为远程服务器:

ssh -D 9090 -f -C -q -N MyUser@remote.ip

从远程计算机通过隧道发出请求:

curl -d '{my: parameter}' -H "Content-Type: application/json" \
--socks5-hostname remote.ip:9090 10.0.30.10