我正在寻找将文件从我的计算机传输到另一人的计算机的最佳方法。
我们都使用 Windows,我可以使用一些外部程序(如 TeamViewer)进行文件传输,但我发现速度不够快。所以我尝试寻找其他传输数据的方法。在 Linux 上,这非常简单,因为你有scp
等等ftp
。但在 Windows 上,没有这样的支持;至少不是原生的。
所以我尝试了TeamViewer(但速度很慢),然后就是温SCP但我们需要设置某种服务器(ssh daemon
?)。
磷脂酰肌醇也不起作用,它只是给我错误:
不支持本地到本地的传输。
FTP 也需要 FTP 服务器。
还有什么其他选择?传输文件的首选方法是什么?
我想我可以使用 BitTorrent 技术,但我需要跟踪器地址。当然,这些并不难找到,但真的有与 Linux 使用命令行选项传输文件的方式相当的方法吗?或者有什么方法可以让客户端之间轻松快速地传输数据?
答案1
自 1803 版以来,Windows 10Windows 版 OpenSSH内置。
对于旧版本的 Windows,您可以手动安装 OpenSSH。
我已经准备好了设置指南Windows 上使用此 Microsoft 版本的 OpenSSH 的 SSH/SFTP 服务器。
对于 FTP,您可以使用 IIS(Web 服务器)内置的 FTP 服务器。默认情况下,它不运行。请注意,即使没有设置网站,您也可以使用 IIS 设置 FTP 服务器。
在 IIS 中设置 FTP 服务器时,出于安全考虑,请确保强制使用 TLS/SSL 加密(FTPS)并禁止匿名身份验证。
请参阅(我的)指南使用 IIS 在 Windows 上安装安全 FTP 服务器。
设置好 FTP(S) 服务器后,您可以使用任何 FTP 客户端。Windows 资源管理器本身支持 FTP(S)。但请注意,Windows 内置命令行ftp.exe
客户端毫无用处,因为它不支持 TLS/SSL 或被动模式(因此很难通过防火墙和 NAT 进行连接)。
答案2
您可以使用 Powershell 远程处理(自 Powershell 5 起),
这里有很多示例https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/copy-item
您也可以通过Help Copy-Item -Examples
在 Powershell 中运行来获得它。
这是一个将本地文件复制到远程计算机的简单示例。
示例 5:将文件复制到远程计算机
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\PattiFul" Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session
答案3
今天,可以在 Windows 10 上使用本机 scp,您可以通过配置菜单或 PowerShell 安装它,对于最后一个选项,这里是代码:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Set-Service -Name ssh-agent -StartupType 'Automatic'
Start-Service ssh-agent
对于传入连接,我们需要 OpenSSH 服务器;对于传出连接,我们需要客户端。
请记住,如果您有带防火墙的防病毒软件,请在端口 22 处为 ssh 创建传出和传入规则
答案4
如果您在安装工具、源文件夹共享以及使用“pushd”并在目标计算机的 cmd 提示符中复制方面受到限制,那么对我来说是可行的。我想也可以编写脚本。