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

Curl 通过SSH SOCKS隧道将流量转发到特定IP,curl,ssh,iptables,socks,Curl,Ssh,Iptables,Socks,我能够通过SSH连接到223.32.11.43,并在其本地网络上卷曲其他服务器 当我陷入以下困境时,这种方法会起作用: 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,以便可以在与远程服务器相同的网络上卷曲内部服务器

我能够通过SSH连接到223.32.11.43,并在其本地网络上卷曲其他服务器

当我陷入以下困境时,这种方法会起作用:

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
ssh -D 9090 -f -C -q -N MyUser@remote.ip
但它似乎失败了,至少它在我尝试卷曲时超时了:

curl -d '{my: parameter}' -H "Content-Type: application/json" 10.0.30.10
...timeout
我要做什么,才能在远程服务器上执行相同的卷曲?

这对我很有用:

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

iptables -t nat -A OUTPUT -s 10.0.30.10 -p tcp --dport 80 -j DNAT --to-destination 223.32.11.43
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

在第二个curl请求中,您可能需要添加
--socks5 hostname 223.32.11.43:9090
,告诉它使用socks代理。不需要iptables规则。应用程序需要用socks说话,这在iptables规则中是不会发生的。它将转发到目的地的端口80。另外,我不认为SSH命令正在设置SOCKS隧道,只是SSH隧道。仍然超时。远程服务器是否需要在其iptables中有更多的规则,或者所有内容都通过已经允许的SOCKS隧道进行传输?仍在超时:My Lenovo:~micniel$ssh-D 9090-f-C-q-NMyUser@remote.ip我的联想:~micniel$curl--socks5主机名远程。ip:909090 curl:(7)无法连接到remote.ip端口9090:操作超时,只是为了澄清在原始帖子中是否解释得不够好。本地IP 10.0.30.10不是我的远程服务器本地IP。它是我的远程服务器可以访问的本地IP。