实现两台MPTCP主机之间的通信——VSFTPD的配置与使用
MPTCP主机USB无线网卡的选择
在支持MPTCP的新内核中,USB无线网卡的驱动失效,查阅相关资料没有很好的解决方法。用师兄的免Linux驱动的USB无线网卡试了一下,发现新内核也可以成功识别该网卡。因此最终选择了免Linux驱动的USB无线网卡。
VSFTPD配置
配置目的
在两台支持MPTCP的主机之间进行TCP传输时,会自动使用MPTCP协议,而其中任何一方不支持MPTCP时,则使用普通的TCP进行传输。现在已经成功的配置了两台支持MPTCP的协议,我们将其中一台配置成FTP服务器,通过FTP文件传输抓包观察MPTCP的支持情况。
VSFTPD介绍
VSFTPD是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。VSFTPD是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的FTP服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。VSFTPD是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
VSFTPD配置
安装VSFTPD
sudo apt-get install vsftpd
配置vsftpd.conf
sudo gedit /etc/vsftpd.conf
具体的配置如下,找到相应代码,去掉前面的注释即可
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp
添加FTP用户
sudo useradd -d /home/ftp -M ftpuser
sudo passwd ftpuser
调整文件夹权限,不然会500 OOPS报错,这里要将FTP目录及其目录下的所有文件均设为555权限
sudo chmod -R 555 /home/ftp
修改pam.d/vsftpd,不然会530 login incorrect报错
sudo gedit /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
重启VSFTPD服务
sudo service vsftpd restart
VSFTPD使用
将两台主机连接到局域网内,现在已经可以在客户端用刚刚设置的账号ftpuser登陆ftp了,并且可以看到目录/home/ftp下的文件并进行上传和下载活动。
可以通过浏览器访问
ftp://xxx.xxx.xxx.xxx
也可以直接通过终端进行访问
ftp xxx.xxx.xxx.xxx
依次输入账号密码,在终端访问时,各操作命令如下
##接入ftp服务器
ftp xxx.xxx.xxx.xxx
##查看当前目录
ls
##进入某一目录(以data文件夹为例)
cd data
##以二进制方式传送
bin
##下载文件(以1.MP4为例)到某目录(缺省为当前目录)
get 1.MP4
##上传文件
put
##退出FTP模式
bye quit exit
##查FTP当前状态
status
##用其他用户登陆
user
VSFTPD测试
我们用搭好的FTP服务器进行了如下功能性测试:
- FTP服务器:有线网卡一个,IP:192.168.100.120;无线网卡一个,IP:192.168.1.161;
- FTP客户端:有线网卡一个,IP:192.168.100.127;
客户端从服务器192.168.100.120下载MP4文件。
一开始只有120的包,把IP为120的网线拔掉后,自动改用161传输,传输没有中断。重新插上网线后,恢复120的传输。
对照组实验:用不支持MPTCP的内核重复上述,拔掉网线后,传输直接中断。
利用wireshark抓包工具在传输的同时进行抓包,可以看到传输自动使用了MPTCP协议,可以看到报文中TCP->Options中有关于MPTCP的描述。