选择SSH.NET中SftpClient类要使用的网络接口

问题描述 投票:0回答:2

有什么方法可以设置SSH.NET中的SftpClient类使用的本地网络接口吗?

sftp ssh.net
2个回答
0
投票

我相信 SSH.NET 是不可能的。

您必须更改

SocketAbstraction.Connect
方法 的实现,才能在 Socket.Bind
 之前调用 
Socket.ConnectAsync


您确定需要设置默认界面吗?

FTP 客户端可能需要使用特定的网络接口来侦听主动 FTP 模式下的传入连接。但对于传出连接(SSH/SFTP 仅使用传出连接),通常不需要选择网络接口。


0
投票

是的,“通常”——有问题!

我们(以及我们不屈不挠的客户)经常遇到这样的情况:将不止一根以太网转 USB 电缆插入 PC 中以连接到设备或设备网络。这些电缆都会导致 Windows 将它们识别为 APIPA 地址范围 169.254.x.y 中的以太网适配器。这些设备还使用 APIPA 并获取此范围内的 IP 地址,然后通过 Avahi/Bonjour 将它们广播给独立但地址范围重叠的网络上的侦听器,让我们的应用程序找出哪个设备位于哪个网络上,但将网络堆栈本身毫无头绪。在这种情况下,在尝试连接之前,网络套接字必须绑定到正确的适配器,否则连接将失败。

因此,在这个由多个 APIPA 网络连接到一台计算机的美丽新世界中,选择网络接口的能力已不再像以前那么不寻常。

© www.soinside.com 2019 - 2024. All rights reserved.