Paul 发布的文章

如果你正在寻找一种快速的从你的 Windows 计算机传输文件到你的 Linux 计算机的方法,那么开源的 WinSCP 实用程序会使其很容易地通过网络传输文件或文件夹。

有时,你需要通过文件传输文件。有很多文件共享服务,但是大多数的共享服务都要求你发送你的文件到互联网上。当两台计算机并排在一起或在一栋建筑物中时,通过互联网传输文件,这似乎看起来绕了很远的路(更不用说隐私问题)。开源的 WinSCP 实用程序会使其很轻易地通过网络将一个文件或一个文件夹从你的 Windows 计算机传输到你的 Linux 计算机。

IP 地址

在你可以传输之前,你必须知道目标计算机的 IP 地址或完全限定域名。假设它是一台在你的同一个网络上的计算机,并且你没有运行 DNS 服务器来解析计算机名称,你可以在 Linux 计算机上使用 ip 命令来找到目标 IP 地址:

[linux]$ ip addr show |grep 'inet '
inet 127.0.0.1/8 scope host lo  
inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0

127.0.0.1 是一个 环回地址 loopback address ,计算机仅使用它来自我通信,因此在这个示例中,正确的地址是 192.168.1.23 。在你的系统中,IP 地址可能会看起来有所不同。如果你不确定哪个是哪个,你可以逐个尝试到你找到正确的 IP 地址 (然后,在一些地方写下来!)

或者,你可以查找你的路由器设置,它列出了所有通过 DHCP 分配的地址。

防火墙和地址

WinSCP 命令使用 OpenSSH 协议,因此,你的 Linux 计算机必需运行 OpenSSH 服务器软件,并且你的 Linux 计算机的防火墙必需允许 SSH 通信。

如果你不确定你的 Linux 机器是否在运行 SSH ,那么在 Linux 机器的终端上运行这个命令:

[linux]$ sudo systemctl enable --now sshd

为确保你的防火墙允许 SSH 通信,运行这个命令:

[linux]$ sudo firewall-cmd --add-servicessh--permanent

关于 Linux 上的防火墙的更多信息,阅读 增强 Linux 防火墙

使用 WinSCP

WinSCP 是一款针对微软 Windows 的开源 SSH 文件传输应用程序。为使用它,你必须先 下载安装 它。

在你安装完成后,打开 WinSCP ,并在 “ 文件协议 File Protocol ” 字段中选择 “SCP” 选项。

在 “ 主机名称 Host name ” 字段中添加你的 Linux 计算机的 IP 地址或 DNS 名称,并在 “ 端口号 Port number ” 字段中输入 22 。针对该 Linux 计算机,输入你的用户名称和密码,然后单击 WinSCP 窗口底部的 “ 登录 Login ” 按钮。

Image of the WinSCP login window.

验证你是否获取了登录 Linux 计算机的身份授权。在验证成功后,你的 Linux 计算机的 IP 地址或 DNS 名称将显示在窗口的顶部。

Image of a WinSCP window showing where IP adress is located.

现在,你可以从左侧的 Windows 面板中拖拽一个文件(如示例,我使用 winscp-test.txt 文件)到右侧的目标 Linux 计算机目标,接下来文件会传输。

Image of drag and drop window in WinSCP.

或者,你可以在左侧的面板中右键单击一个文件,然后上传它到右侧的远程目标的面板。

Image of a right click option to upload files in WinSCP.

验证副本

打开一个 Linux 终端,然后使用 ls 命令来查看已传输的 winscp-test.txt 文件。在我的示例中,它出现在我的主目录, /home/sysadmin

$ ls
Desktop
Documents
Downloads
Music
Pictures
pscp-test.txt[...]

你已经通过网络成功地将一个文件从一台 Windows 计算机传输到一台 Linux 计算机!

当然,你也可以使用类似上述的技术,将文件和文件夹从一台 Linux 计算机传输到一台 Windows 计算机。

远程复制

使用强大的开源 WinSCP 应用程序,你可以访问在你家中或工作场所的任意一台计算机、你拥有账户的服务器、甚至是移动设备、边缘设备、物联网设备。使用这个极好的工具来传输文件就像你在本地目录下将一个文件复制到另一个本地目录一样容易!


via: https://opensource.com/article/22/11/transfer-files-folders-windows-linux-winscp

作者:Paul 选题:lkxed 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

开源的 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。

你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法?开源的 PSCP 程序可以轻松传输文件和文件夹,当然它是开源的。

在 Windows 中设置 PATH

了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程,请阅读 如何在 Windows 上设置 PATH

使用 PSCP

PSCP(PuTTY 安全复制协议)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。

  • 网站 下载 pscp.exe
  • pscp.exe 移动到 PATH 中的文件夹(例如,如果你按照 Opensource.com 上的 PATH 教程进行操作,则为 Desktop\App)。如果你没有设置 PATH 变量,你也可以将 pscp.exe 移动到保存要传输的文件的文件夹中。
  • 使用 Windows 任务栏中的搜索栏在 Windows 计算机上打开 Powershell(在搜索栏中输入 powershell。)
  • 输入 pscp -version 以确认你的计算机可以找到该命令。

IP 地址

在进行传输之前,你必须知道目标计算机的 IP 地址或完全限定域名。假设它是同一网络上的计算机,并且你没有运行 DNS 服务器来解析计算机名称,你可以在 Linux 机器上使用 ip 命令找到目标 IP 地址:

[linux]$ ip addr show |grep 'inet '
inet 127.0.0.1/8 scope host lo
inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0

在所有情况下,127.0.0.1 都是计算机仅用于与自身通信的环回地址,因此在此示例中,正确的地址是 192.168.1.23。在你的系统上,IP 地址可能不同。如果你不确定哪个是哪个,你可以连续尝试每个,直到找到正确的(然后在某处写下来!)

或者,你可以查看路由器的设置,其中列出了通过 DHCP 分配的所有地址。

防火墙和服务器

pscp 命令使用 OpenSSH 协议,因此你的 Linux 计算机必须运行 OpenSSH 服务器软件,并且防火墙必须允许 SSH 流量。

如果你不确定你的 Linux 机器是否正在运行 SSH,请在 Linux 机器上运行以下命令:

[linux]$ sudo systemctl enable --now sshd

要确保你的防火墙允许 SSH 流量,请运行以下命令:

[linux]$ sudo firewall-cmd --add-servicessh --permanent

有关 Linux 上的防火墙的更多信息,请阅读 使用防火墙使 Linux 更强大

传输文件

在这个例子中,我有一个名为 pscp-test.txt 的文件,我想将它从我的 Windows 计算机上的 C:\Users\paul\Documents 传输到我的目标 Linux 计算机主目录 /home/paul

现在你已经有了 pscp 命令和目标地址,你可以传输测试文件 pscp-test.txt。打开 Powershell 并使用 dir 命令切换到示例文件所在的 Documents 文件夹:

PS> dir %USERPROFILE%\Documents\

现在执行传输:

PS> pscp pscp-test.txt [email protected]:/home/paul
| Password:
End of keyboard-interactive prompts from server
pscp-test.txt | 0 kb | 0.0 kB/s | ETA: 00:00:00 | 100%

这是语法,逐字逐句来:

  • pscp:用于传输文件的命令。
  • pscp-test.txt 是你要从 Windows 传输的文件的名称。
  • [email protected] 是我在 Linux 计算机上的用户名,以及 Linux 计算机的 IP 地址。你必须将其替换为你自己的用户和目的地信息。请注意,pscp 需要目标计算机上的目标路径,而 IP 地址末尾的 :/home/paul 指定我希望将文件复制到我的主文件夹。

对 Linux 计算机进行身份验证后,pscp-test.txt 文件将传输到 Linux 计算机。

验证已传输

在你的 Linux 计算机上,打开终端并使用 ls 命令验证文件 pscp-test.txt 是否出现在你的主目录中。

[linux]$ ls
Documents
Downloads
Music
Pictures
pscp-test.txt

从 Linux 系统复制文件

你不仅限于将文件复制到 Linux 系统。使用 pscp,你还可以将文件从 Linux 复制到 Windows。语法是一样的,只是反过来:

PS> pscp [email protected]:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt

这是语法:

  • pscp:用于传输文件的命令。
  • [email protected]:/home/paul/pscp-test.txt 是我在 Linux 计算机上的用户名、Linux 计算机的 IP 地址,以及我要复制的文件的路径。
  • %USERPROFILE%\Documents 是我的 Windows 计算机上我要保存文件的位置。 请注意,在将文件复制回我的 Windows 计算机时,我可以给它一个新名称,例如 pscp-win.txt,以区别于原始文件。 当然,你不必重命名文件,但对于本演示来说,它是一个有用的快捷方式。

打开文件管理器以验证 pscp-win.txt 文件是否已从 Linux 计算机复制到 Windows C:\Users\paul\Documents 下。

Image of a file manager.

远程复制

借助开源 pscp 命令的强大功能,你可以访问家中的任何计算机、拥有帐户的服务器,甚至是移动设备和 边缘设备


via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp

作者:Paul 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出