Bootstrap

ftp支持ipv6

给linux客户端创建ipv6

  • 运行vi /etc/modprobe.d/disable_ipv6.conf(没有这个文件可以pass),将options ipv6 disable=1修改为options ipv6 disable=0 后保存退出。
  • 运行vi /etc/sysconfig/network,将NETWORKING_IPV6=no修改为NETWORKING_IPV6=yes后保存退出。
  • 运行vi /etc/sysctl.conf做如下修改:
    #net.ipv6.conf.all.disable_ipv6 = 1
    #net.ipv6.conf.default.disable_ipv6 = 1
    #net.ipv6.conf.lo.disable_ipv6 = 1

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后,保存并退出。

运行sysctl -p使配置生效

之后ip a可以看到ipv6地址

vsftpd配置ipv6支持

~ $ vim /etc/vsftpd/vsftpd.conf
~ $ cat /etc/vsftpd/vsftpd.conf | grep listen
# 必须把listen改成no,因为gdb调试查看缺省为yes
listen=no
listen_ipv6=yes

连接

from ftplib import FTP

class FtpTest():
    def __init__(self):
        self.ftp_client = FTP()
        # Vsftpd使用的utf-8,所以用utf-8编码防止中文乱码
        self.ftp_client.encoding = 'utf-8'

if __name__ == '__main__':
    host_ip = '13.232.23.1xx'
    host_ip = 'fdfx:9xxx:c5xd:0:42:acf:fxxx:1xx5'
    host_ip6 = 'fdxe:9xx2:c5xd:0:42:af2:fexx:1xx5'
    username = 'root'
    password = 'root'
    # 实例化
    ftp_test = FtpTest()
    # 如果登录成功则执行命令,然后退出
    if ftp_test.login_ftp(host_ip, username, password) == True:
        LOG.info('login success , now will execute some command')
        ftp_test.execute_some_command()
        ftp_test.ftp_logout()
;