环境说明:
注意事项:
- 配置单向网关或防火墙策略时,外部网络变动时,容器内部不会变动,容器以及 docker 都需要重启才可以更新。
 
ftplib 连接
前置依赖说明
- 信息说明
 
- 注意事项
- 服务器 A 可以 ssh 连接访问服务器 B 用户
 
- 服务器 AB 都要配置好 vsftpd
 
 
Linux 系统配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | 
 
  sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config setenforce 0
 
  yum install vsftpd -y
 
  /etc/vsftpd/vsftpd.conf
  /etc/vsftpd/vsftpd.conf
 
  service vsftpd restart chkconfig vsftpd on
  systemctl restart vsftpd systemctl enable vsftpd.service
 
  | 
 
Ubuntu 安装 vsftpd
Ubuntu 配置 vsftpd 不同于 CentOS8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
   |  sudo apt-get install vsftpd -y sudo systemctl start vsftpd sudo systemctl enable vsftpd
 
  sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
 
  listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty
  pam_service_name=ftp pasv_enable=Yes pasv_min_port=10000 pasv_max_port=11000
 
  userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
 
  ftdm 
 
  sudo systemctl restart vsftpd sudo systemctl status vsftpd
 
  | 
 
项目使用说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   |  useradd fdm echo "qwe123"  | passwd fdm --stdin mkdir /bank_data chown fdm:fdm -R /bank_data
 
 
 
 
  export FTP_HOSTADDR=192.168.100.162 export FTP_USERNAME=fdm export FTP_PASSWORD=qwe123 export FTP_PORT=21 export FTP_MONITOR_DIR=/bank_data export DAILY_MODE=SURVEY
 
  python tools.py --rebuild_orm sys_info_dataset python tools.py --rebuild_orm sys_info_dataset_detail
  python tools.py --start_ftp_monitor
  python tools.py --start_daily_job_monitor
 
  | 
 
paramiko
参考链接: Python SSH、FTP 连接
附件
参考链接
问题记录
500 OOPS:cannot change directory:/root
ftplib 连接时 selinux 未关闭导致的这个错误。
解决方法
- 关闭 selinux
 
- setsebool ftpd_disable_trans 1 或者 setsebool ftp_home_dir 1
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | 今天在使用Filezilla连接Linux的时候不能成功,显示"500 OOPS:cannot change directory:/root" 错误,如何解决呢? 参考链接:https://www.cnblogs.com/jinxiblog/p/6698698.html 默认下是没有开启FTP的支持,所以访问时都被阻止了 解决: 1. 查看SELinux设置
  发现 ftpd_disable_trans –> off 或者 ftp_home_dir–>off 2. 使用setsebool命令开启
  3. 查看当前状态是否是on的状态
  此时 ftpd_disable_trans –> on 或者 ftp_home_dir–>on 4. 最后重启  OK,问题解决了。
   | 
 
ftplib.FTP().connect Time Out
注:宿主机外部网络变更时,容器内部网络不会变更,需要重启容器和 docker.service.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
   |  尝试修改防火墙策略,内容如下 1.仅当客户端在21端口向服务端发送数据请求时可以通过 2.服务器向客户端发送请求无法通过 3.VSftpd服务在服务器端,启动项目服务在客户端。 4.使用容器启动的项目服务,通过项目服务获取服务器的指定目录。
 
  客户端容器服务已关闭,修改防火墙策略之后,容器内部服务无法正常启动。
  问题原因
  关闭 容器,重启docker service,重新启动项目服务
  关键点: 宿主机外部网络变更时,容器内部网络不会变更,需要重启容器和docker.service
 
  |