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

本文关键字:服务器 IP 地址 SFTP 隐藏 代理服务器 | 更新日期: 2023-09-27 18:27:53

我使用以下代码连接到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地址?

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

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

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

唯一的解决方法是通过代理服务器进行隧道传输。但为此,您必须能够在目标服务器之前、但在代理之后的某个网络组件上设置隧道末端(并且您必须愿意使隧道末端的IP地址对代理可见)。这样,隧道的末端就成为代理的目的地。

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