环境说明:
注意事项:
- 配置单向网关或防火墙策略时,外部网络变动时,容器内部不会变动,容器以及 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
|