-1

我正在使用此代码连接到 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 地址?

4

1 回答 1

1

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

关于对代理服务器隐藏 IP 地址:
您不能在通往目标服务器的途中对任何代理服务器(或路由器或其他网络组件)隐藏 IP 地址,因为代理服务器(或其他组件)需要知道将 IP 地址路由到哪里请求。

唯一的解决方法是通过代理服务器建立隧道。但是为此,您必须能够在目标服务器之前但在代理之后的某些网络组件上设置隧道的末端(并且您必须愿意让隧道末端的 IP 地址对代理人)。这样,隧道的末端就成为了代理的目的地。

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

于 2014-10-27T09:25:53.110 回答