如何从代理服务器隐藏SFTP服务器IP地址?

时间:2014-10-27 08:41:33

标签: c# proxy sftp tunnel ssh.net

我使用此代码连接到SFTP服务器:

var connectionInfo = new PasswordConnectionInfo(txtHost.Text, 22, txtUsername.Text, txtPassword.Text, ProxyTypes.Http, "209.xx.xxx.xxx", 3128,"proxyUser","proxyPass");

sftp = new SftpClient(connectionInfo);
try
{
    sftp.Connect();
    addItemToListBox("Connect", "Connect to server Success.");
    BeginInvoke((MethodInvoker)delegate()
    {
        connect_state(false);
    });
    connection_flag = true;
}
catch
{
    addItemToListBox("Connect", "Connect to server failed.");
    addItemToListBox("Connect", "Try agine.");
    connection_flag = false;
}

现在,在使用Wireshark嗅探我的连接时,我可以看到HTTP请求,包括SFTP服务器IP地址。

如何从代理服务器隐藏SFTP服务器IP地址?

1 个答案:

答案 0 :(得分:1)

您只能看到代理请求。底层的SSH和SFTP数据包是(应该)加密的。

关于从代理服务器隐藏IP地址:
您无法在前往目标服务器的路上从任何代理服务器(或路由器或其他网络组件)隐藏IP地址,因为代理服务器(或其他组件)需要知道将请求路由到何处。

唯一的解决方法是隧道穿过代理服务器。但是为此,您必须能够在目标服务器之前在某个网络组件上设置隧道的末端,但是在代理之后(并且您必须愿意使隧道的末端IP地址对于代理)。通过这种方式,隧道结束成为代理的目的地。

简单地说,如果您不控制代理和目标之间的任何网络组件,则必须让代理知道目标IP。没有办法解决这个问题。这就是互联网的运作方式。 IP地址是识别目的地的唯一方法。

相关问题