zoukankan      html  css  js  c++  java
  • 网卡NAT方式下虚拟机安装FTP服务

    在windows8下安装Oracle VM VirtualBox虚拟机,虚拟机中安装的CentOS操作系统,在CentOS中搭建LNMP环境,安装vsftpd服务器,宿主机在phpStorm编程,将代码FTP上传到虚拟机,在宿主机浏览器输入地址,访问虚拟机中php代码页。虚拟机网络使用桥接方式很方便,但是宿主机进入公司办公网络后,FTP出现问题,因此改用网络采用NAT模式。NAT下虚拟机ip地址10.0.2.15。

    安装过程分为三步,

    1,在CentOS安装vsftpd服务器,配置好,再安装ftp客户端,可以利用ftp客户端访问vsftpd服务器;

    2,在宿主机中通过网页访问虚拟机中ftp服务器;

    3,在宿主机phpStorm配置ftp服务器,可以连接虚拟机中ftp服务器;将代码上传到虚拟机中ftp服务器;

    1,在CentOS安装vsftpd服务器,配置好,再安装ftp客户端,可以利用ftp客户端访问vsftpd服务器;

    1.1,以管理员(root)身份执行以下命令,安装FTP服务器端

    yum install vsftpd

    1.2,设置开机启动vsftpd ftp服务

    chkconfig vsftpd on

    1.3,启动vsftpd服务

    service vsftpd start

    1.4,安装FTP客户端

    yum install ftp

    1.5,为ftp添加用户

    /usr/sbin/adduser -d /opt/ftp1 -g ftp -s /sbin/nologin ftp1

    1.6,为ftp1用户设置密码

    passwd ftp1

    输入新密码即可

    1.7,测试vsftp是否安装成功

    ftp 10.0.2.15

    用户名

    密码

    显示成功,表示vsftpd安装成功。(有时会出现错误,需要去vsftpd.conf禁用默认用户登录

    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable = YES 修改为 anonymous_enable = NO

    重启vsftpd服务,service vsftpd restart

    )。

    2,在宿主机中通过网页访问虚拟机中ftp服务器;

    由于虚拟机选用NAT网络模式,虚拟机可以访问宿主机,宿主机没法访问虚拟机,需要在NAT中配置接口转换,ftp对应20,21两个接口,需要NAT配置两次,比如

    127.0.0.10     2020         10.0.2.15   20
    127.0.0.10     2021         10.0.2.15   21

    在宿主机的浏览器输入ftp://127.0.0.10:2021,会弹出输入用户名、密码窗口,输入后显示错误。此时通过对ftp了解,知道ftp连接分为两个过程:客户端连接服务器的21端口,认证用户是否合法,验证通过之后;服务器端会将根目录下数据通过20端口发送到客户端。我们可以登陆进去,没法显示服务器端数据。说明20接口有问题。将ftp模式设定为PASV被动模式,设定新的接口。

    2.1,在vsftpd.conf中将被动模式接口写进去,

    pasv_min_port=2017
    pasv_max_port=2020
    

      注意等号左右不能有空格。

    2.2,在FTP指令下,将模式设定为PASV。输入passive,使POR和PASV模式切换。

    2.3, 在NAT下调整接口

    如图所示,LNMP和SSH是配置网页访问虚拟机代码,和ssh连接虚拟机的,此处暂且不考虑。

    2.4, 在宿主机的浏览器输入ftp://127.0.0.10:2021,会弹出输入用户名、密码窗口,输入后显示根目录内容;

    3,在宿主机phpStorm配置ftp服务器,可以连接虚拟机中ftp服务器;将代码上传到虚拟机中ftp服务器

    3.1,在phpStorm配置ftp,点击advanced options选择被动模式;

    3.2,mapping需要配置下

    3.3,测试ftp是否联通,点击Test FTP connection测试是否联通,如果网页联通,此处基本会联通的。
     
    3.4,通过phpStorm将代码上传到虚拟机,
    提示错误:
    "[2015/9/23 1:41] Failed to transfer file 'F:ftp1log est.php': cant open output connection for file "ftp://www.lhycentos.com:2021/blog/test.php". Reason: "553 Could not create file.".",需要配置FTP配置文件。

     3.4.1,确保/opt/ftp1目录对应ftp1用户权限是755或777,如果不是修改;

     3.4.2,使用命令getsebool -a|grep ftp 查看ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on。如果不是需要修改。

    第一个修改setsebool ftpd_disable_trans 1,此时又会出错,貌似找不到setsebool ftpd_disable_trans;直接修改setsebool   ftp_home_dir 1,只要ftp_home_dir修改成功,就不用管ftpd_disable_trans了。第三个修改setsebool   allow_ftpd_full_access 1。至此宿主机可以将代码上传到虚拟机了。但是这个修改只是临时的,关闭虚拟机重启后失效,每次开机都需要修改很麻烦,因此还有种方式直接关闭selinux,然后重启即可。

    (

    vi /etc/selinux/config

     #SELINUX=enforcing     #注释掉

    #SELINUXTYPE=targeted  #注释掉

    SELINUX=disabled  #增加

    :wq  #保存,关闭。

     shutdown -r now   #重启系统

    查看SELinux的状态:

    getenforce

    )

  • 相关阅读:
    CMSIS_OS中osMailPut 和 osMessagePut 的问题
    网络:W5500抓包TCP segment of a reassembled PDU
    网络:W5500 UDP数据包格式注意事项
    笔记:把编译时间加入到目标文件
    笔记:git和码云
    笔记:git基本操作
    FreeRtos堆栈检测应用
    一个由自增运算符以及C语法顺序细节引起的bug
    高级文件操作
    linux 权限相关
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/4831093.html
Copyright © 2011-2022 走看看