在要复制数据的计算机上

在要复制数据的计算机上

我想使用以太网电缆和 FTP 软件(如 gFtp)在两台 Linux Ubuntu 计算机之间传输数据

这可能吗?因为我尝试连接时被拒绝连接

答案1

为了使用以太网电缆在两台机器之间建立连接,两台机器都需要一个位于同一 IP 子网上的静态 IP。

1.抓住一根以太网电缆,并将其连接到主机器的以太网端口,将电缆的另一端插入辅助机器的以太网端口。

2.识别每台计算机上的以太网接口,应该是 eth0 或类似 enp3s0 的名称。记下这些接口名称,因为我们稍后会需要它们。您只需输入以下内容即可完成此操作:sudo ifconfig

3.在主机上...在终端/命令行中运行此命令:(sudo ifconfig eth0 10.0.0.1将 eth0 替换为主机的以太网接口。)

4.在第二台机器上...在其终端/命令行中运行此命令:(sudo ifconfig eth0 10.0.0.2将 eth0 替换为第二台机器的以太网接口。)

5.现在... 两台计算机应该能够相互通信。您可以在主机上输入命令来测试这一点ping 10.0.0.2 -c 2... 如果您看到“来自 10.0.0.2... 的 64 个字节”,则通信正常。

6.使用您的 FTP 客户端连接到辅助机器(IP 地址:10.0.0.2)...我假设您已经在辅助机器上设置了 FTP 服务器。

如果这些步骤不成功,请务必回复我. 令人惊奇的是可以配置 DHCP 服务器来自动为你的辅助机器分配 IP 地址,但这很复杂。

答案2

vsftp 在我路上

如何操作安装vsftpdPAM library 编辑/etc/vsftpd.conf/etc/pam.d/vsftpd 创建具有自定义目录的用户帐户(例如在 /var/www/ 中)使用正确的 chmod 和 chown 设置目录创建具有服务器完全访问权限的管理员用户故障排除

  • 安装vsftpdlibpam-pwdfile创建虚拟用户 我想创建 FTP 用户,但不想添加本地 unix 用户(无 shell 访问权限、无主目录等)。PAM 将帮助您创建虚拟用户。

    sudo apt-get 安装 vsftpd libpam-pwdfile

  • 编辑vsftpd.conf 首先你需要备份原始文件

    sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak

然后创建一个新的

sudo nano /etc/vsftpd.conf

复制并粘贴以下行。该文件应仅包含以下行:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
  • 注册虚拟用户 要注册用户,请使用htpasswd,因此我假设您已经apache2在服务器上工作。创建一个 vsftpd 文件夹,然后将配置文件放入其中。

    sudo mkdir /etc/vsftpd

然后

`sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1`

-c 表示如果文件尚不存在,我们将创建它 -d 强制 MD5,在 ubuntu 12.04 上你需要它,只要一直使用它即可 该命令将提示输入密码。如果你想随后添加新用户:

`sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2`
  • 在 /etc/pam.d/vsftpd 中配置 PAM 再次,您需要备份原始文件

    sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

并创建一个新的

`sudo nano /etc/pam.d/vsftpd`

复制并粘贴这两行(这应该是唯一的内容)。我坚持只保留这两行,我浪费了很多时间保留原件,只是添加了这些。

`auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd`
`account required pam_permit.so`
  • 创建没有 shell 访问权限的本地用户

    sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd

您可以使用 id 命令检查它是否已创建:id vsftpd。我们/bin/false通过 check_shell 参数定义了具有 shell 的用户(即使您不使用它)。

当最终用户连接到 FTP 服务器时,它们将用于权利和所有权:chmodchown。- 重新启动vsftpd 常见的方式是像所有守护进程一样使用 init.d

`sudo /etc/init.d/vsftpd restart`
  • 创建目录根据您的配置,所有用户将被放入此文件夹中:/var/www/user1

您需要使用特定权限创建它们:根文件夹不能具有写入权限!

/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755

注意:用户无法在根目录中创建文件或文件夹。因此,用户无法看到文件夹之外的任何内容。对他vsftpd.conf来说chroot_local_user=YES,服务器如下所示:

因此只需运行以下命令:

mkdir /var/www/user1
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1

/var/www/user1文件夹必须存在,否则连接将失败。

现在您可以尝试连接您的 FTP 客户端,它会成功!如果不成功,您可以查看故障排除部分。

  • 创建管理员用户来访问整个服务器 要创建管理员用户,我们需要使用 htpasswd 注册一个新用户。

在我们这样做之前,我建议您检查一下/etc/ftpusers定义某些不允许使用 ftp 连接的用户的文件。我认为这仅适用于本地用户,而不适用于虚拟用户,但以防万一,不要选择此文件中包含的名称。说实话,vsftpd 已经够复杂了!

sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin

现在我们需要添加一行到/etc/vsftpd.conf

chroot_list_enable=YES

这意味着你的用户将被放入他们的文件夹中(作为监狱),除了/etc/vsftpd.chroot_list

让我们创建此文件并添加我们的用户,该文件只有一行,包含“theadmin”。每行添加一个用户。这意味着您不需要创建 /var/www/theadmin 文件夹,用户将登录并在 /home/vsftpd 中启动。

重新启动服务器就完成了!

故障排除以下是我遇到的一些错误。

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

您的根目录是可写的,这是不允许的。

500 OOPS: cannot change directory:`/var/www/theadmin` if the folder doesnt exist

/var/www/$USER 文件夹不存在,请使用正确的权限(不可写)创建该文件夹或将用户添加到/etc/vsftpd.chroot_list

htpasswd:无法创建文件/etc/vsftpd/ftpd.passwd/etc/vsftpd/文件夹必须存在,htpasswd 不会创建它。

vsftpd 重新启动或停止错误:“重新启动:未知实例”这意味着即使您有成功消息,也无法启动守护进程/etc/init.d/vsftpd start

答案3

在要复制数据的计算机上

  1. 安装该包openssh-server
  2. 检查 IP 地址(ip link addr或使用网络指示器)。

在要复制数据的计算机上

  1. 安装 FileZilla(包filezilla:)。
  2. 启动 FileZilla。
  3. 主机:另一台计算机的 IP 地址,前面加上sftp://。(例如:sftp://192.168.1.8
    用户名:您用于登录另一台计算机的用户名
    密码:您用于登录另一台计算机的密码

  4. 连接按钮。
  5. 左侧您将看到运行 FileZilla 的计算机上的数据,右侧您将看到远程计算机的数据。只需从右侧面板拖放到左侧面板即可(必要时可向另一个方向拖放)。

相关内容