使用 WinSCP 将文件和文件夹从 Windows 传输到 Linux
如果你正在寻找一种快速的从你的 Windows 计算机传输文件到你的 Linux 计算机的方法，那么开源的 WinSCP 实用程序会使其很容易地通过网络传输文件或文件夹。
WinSCP scp
如果你正在寻找一种快速的从你的 Windows 计算机传输文件到你的 Linux 计算机的方法，那么开源的 WinSCP 实用程序会使其很容易地通过网络传输文件或文件夹。
![](/data/attachment/album/202211/28/092919hf6y9ojjlmmsfmlm.jpg)



> 
> 如果你正在寻找一种快速的从你的 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` 是一个 <ruby> 环回地址 <rt>  loopback address </rt></ruby> ，计算机仅使用它来自我通信，因此在这个示例中，正确的地址是 `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 防火墙](https://opensource.com/article/19/7/make-linux-stronger-firewalls) 。


### 使用 WinSCP


WinSCP 是一款针对微软 Windows 的开源 SSH 文件传输应用程序。为使用它，你必须先 [下载](https://sourceforge.net/projects/winscp/files/) 和 [安装](https://sourceforge.net/projects/winscp/files/) 它。


在你安装完成后，打开 WinSCP ，并在 “<ruby> 文件协议 <rt>  File Protocol </rt></ruby>” 字段中选择 “SCP” 选项。


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


![Image of the WinSCP login window.](/data/attachment/album/202211/28/092921s33fducjdo33lkuh.png)


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


![Image of a WinSCP window showing where IP adress is located.](/data/attachment/album/202211/28/092922va1a6e36a6ncd6as.png)


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


![Image of drag and drop window in WinSCP.](/data/attachment/album/202211/28/092922xy3m3ns3s766kg7f.png)


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


![Image of a right click option to upload files in WinSCP.](/data/attachment/album/202211/28/092923sqtpjlja8lla7ofy.png)


### 验证副本


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



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

```

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


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


### 远程复制


使用强大的开源 WinSCP 应用程序，你可以访问在你家中或工作场所的任意一台计算机、你拥有账户的服务器、甚至是移动设备、[边缘设备](https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM)、物联网设备。使用这个极好的工具来传输文件就像你在本地目录下将一个文件复制到另一个本地目录一样容易！




---


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


作者：[Paul](https://opensource.com/users/plaubscher) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

