五口475 2023-09-21 18:20 采纳率: 0%
浏览 28
已结题

在ubuntu中无法连接到远程服务器传输文件

问题

在Ubuntu22.04系统下,尝试用ftp、lftp以及Filezilla连接远程服务器全部失败。
ftp和lftp会显示没有到主机的路由,Filezilla则会显示下图的问题。

img

尝试过的解决方法
  1. 连接服务器需要设置代理,首先怀疑是不是ftp/lftp没有走代理的原因。
    通过vpn接入局域网,然后按照网上的方法在命令行输入
    echo “export http_proxy=http://xxxxx:xxx" > ~/.lftp
    
    以及在网络选项中设置手动代理,ftp/lftp都会长时间的显示正在连接,或者不断重新连接,或者显示没有到主机的路由。
    Filezilla在设置中设置好代理,通过查看日志文件可以发现代理连接成功,但最后会报上图中的错误。

    img

  1. 怀疑是不是服务器端有问题,但我在Windows环境下,通过WinSCP设置相同的代理方式和相同的登陆账户可以成功连接并上传文件。

  2. 网上的其他各种方法都进行了尝试,比如关闭防火墙、设置为被动传输模式、强制使用UTF-8等全部都没有效果。

  3. 还另外在Windows系统下尝试了使用Filezilla连接服务器,基本设置与WinSCP相同,但发现也是会出现跟上面相同的问题。两者选择sftp都是连接不了的,应该是只支持ftp协议。

    img


    img


    (所以是Filezilla某些设置没设置好的原因?但两边能对照的我都设置成了相同的选项,况且Linux中ftp和lftp也都用不了)

我想要达到的结果

在Windows下能够通过WinSCP成功连接并上传文件说明服务器的设置应该是没问题的,求解如何才能在本地Ubuntu连接上远程服务器并传输文件?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-09-21 18:34
    关注

    引用 皆我百晓生 小程序回复内容作答:
    可能是你的Ubuntu系统没有正确的配置网络代理。你可以尝试如下方法来解决这个问题:

    1. 确保你已经正确设置了网络代理。你可以在终端中执行以下命令来检查代理设置:

      echo $http_proxy
      

      如果没有输出,表示你没有设置代理。你可以执行以下命令设置代理:

      export http_proxy=http://xxx.xxx.xxx.xxx:port
      

      其中,xxx.xxx.xxx.xxx是你的代理服务器的地址,port是你的代理服务器的端口号。如果你的代理服务器需要用户名和密码验证,你可以执行以下命令来设置代理:

      export http_proxy=http://username:password@xxx.xxx.xxx.xxx:port
      

      注意将username替换为你的用户名,password替换为你的密码。

    2. 如果你通过VPN连接到局域网,可能需要设置VPN的路由。在终端中执行以下命令来检查路由设置:

      route -n
      

      确保你的VPN的路由设置正确。如果没有设置正确,可以执行以下命令来添加路由:

      sudo route add -net [VPN子网] gw [VPN网关]
      

      其中,[VPN子网]是你的VPN的子网,[VPN网关]是你的VPN的网关地址。

    3. 确保你的防火墙没有阻止FTP和SFTP连接。你可以通过在终端中执行以下命令来打开FTP和SFTP端口:

      sudo ufw allow ftp
      sudo ufw allow sftp
      

      如果你使用的是其他防火墙,需要根据具体的防火墙软件进行设置。

    4. 确保你的Ubuntu系统上安装了FTP和SFTP客户端。你可以通过在终端中执行以下命令来安装lftp和openssh-client:

      sudo apt update
      sudo apt install lftp openssh-client
      

    希望以上方法可以帮助你解决问题。如果问题仍然存在,可以提供更多的细节,以便我们进一步帮助你。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月21日
  • 创建了问题 9月21日