解决:远程服务器(阿里云 VHost)和本地文件传输 windows

解决:远程服务器(阿里云)和本地文件传输

服务器:linux(centos7)
本地:Windows 10

方案一:Use SSH Secure Shell Client

Success!

  1. 下载 SSH/SFTP Secure Shell 3.2.9
  2. 填写端口号和 host ,直接用登陆服务器的账户登录就好。

作者按: 虽然软件看起来不时尚,不过用着舒服、解决问题!
发现新版客户端跟 windows 10 不那么兼容,综合看来这个方案并不十分友好。

方案二:在服务器搭建 FTP server

Failed ?

方法一: 安装 vsftpd

  1. 安装
    yum install vsftpd

  2. 修改 vsftpd 相关配置

/etc/vsftpd/vsftpd.conf

添加用户

  1. 修改ftp目录及其父目录权限

  2. 修改防火墙的接口限制,iptables 或其他

  3. 修改 SELinux(Security-Enhanced Linux) 安全子系统,禁用之

  4. 遇到问题

  • 登录失败
    修改防火墙端口控制

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

    vi /etc/vsftpd.conf
    添加 allow_writeable_chroot=YES

  • 500 OOPS: cannot change directory
    修改ftp目录及其父目录权限

    chmod 755 /root/ftp

  • 无法读取目录

状态: 已登录
状态: 读取目录列表…
状态: 服务器发回了不可路由的地址。被动模式失败。

调查了半天也没解决,在本地虚拟机的 centos 上可以顺利传输。关闭防火墙后问题同样没能解决。
怀疑是阿里云为了安全,对数据传输端口做了限制。

方法二: 用 Python + pyftbdlib 搭建 FTP 服务器

  1. 安装

pip install pyftpdlib

  1. 配置服务器,执行程序代码:
# coding:utf-8
#----------------------------
# Author: Kun Liu         
# Start date: 2017-03-28  
# Latest edit: 2017-03-28
#=============================
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import logging

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

LOG_FILE = 'FTP_LOG.txt'
CONTROAL_PORT = 21
USER_NAME = "test"
PASSWD = "111111"

import os
USER_DIR = os.getcwd()
ANONY_DIR = os.path.join(USER_DIR, 'anonymous')
if not os.path.exists(ANONY_DIR):
    os.mkdir(ANONY_DIR)

#新建一个用户组
authorizer = DummyAuthorizer()
#将用户名,密码,指定目录,权限 添加到里面
authorizer.add_user(USER_NAME, PASSWD, USER_DIR, perm="elr")#adfmw
#这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码,可以自己尝试
authorizer.add_anonymous(ANONY_DIR)
 
handler = FTPHandler
handler.authorizer = authorizer
# Define a customized banner (string returned when client connects)
handler.banner = "Wellcome Trenders! It's a FTP server powered by Pyftpdlib."

def main():
    # 日志设置
    # logging.basicConfig(filename=LOG_FILE, level=logging.INFO)
    #开启服务器
    server = FTPServer(("0.0.0.0", CONTROAL_PORT), handler)
    server.serve_forever()

if __name__ == '__main__':
    main()

同样遇到无法读取目录的问题。

方案三

参考: https://yq.aliyun.com/articles/68550
WinSCP

存在的问题

windows环境下,包含中文路径会导致错误

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值