在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:\ftp1\blog\test.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

)

网卡NAT方式下虚拟机安装FTP服务的更多相关文章

  1. NAT 模式下虚拟机安装的centos7 ping主机显示connect: Network is unreachable

    在虚拟机下安装的centos7使用的网络是NAT模式,安装成功后ping主机地址显示 Network is unreachable 解决方案: 1)使用ifconfig命令查看网卡信息 2)进入/et ...

  2. 【CNMP系列】CentOS7.0下安装FTP服务

    一个小插曲,安装一个FTP服务,便于和远程服务器的文件沟通.后续我们会讲到如何使用Capistrano配合git完成服务器的代码部署以及发布流程.现在,代码先走FTP吧,挺稳. FTP简介 FTP 是 ...

  3. 使用cuteFTP与虚拟机交互文件---安装ftp服务

    安装ftp服务,以便在Windows中使用cuteFTP与虚拟机交互文件,使用sudo apt-get install vsftpd 安装完后,打开/etc/vsftpd.conf文件,去掉local ...

  4. CentOS7.0下安装FTP服务的方法

    http://www.jb51.net/article/106604.htm   本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟 ...

  5. Linux下安装FTP服务(Ubuntu)

    在Ubuntu 14.04 上安装 FTP 服务 第一步>>更新库 linuxidc@linuxidc:~$ sudo apt-get update 第二步>>采用如下命令安装 ...

  6. Linux安装FTP服务

    转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1.  在Linux和其他机器之间共享文件(在linux下安装ft ...

  7. linux环境中安装ftp服务

    需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...

  8. Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

    Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...

  9. Windows下虚拟机安装Mac OS X —– VM12安装Mac OS X 10.11

    ____________________________________________________________________________________________________ ...

随机推荐

  1. App登录状态维持

    转载地址:http://www.jianshu.com/p/4b6b04244773 目前APP大都支持长登录,就是用户登录一次后,如果用户没有主动注销.清除APP缓存数据或卸载APP,就在一段时间内 ...

  2. 在Centos7下安装Python+Selenium+Firefox学习环境

    Selenium 一自动化测试工具.它支持 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测 ...

  3. Go Flow Control

    [Go Flow Control] 1.for没有(),必须有{}. 2.for的前后表达式可以为空. 3.没有while,for即是while. 4.无穷循环. 5.if没有(),必须有{}. 6. ...

  4. SpringBoot配置Shiro时@RequiresRoles不起作用

    在SpringBoot中配置Shiro,结果@RequiresRoles.@RequiresPermissions等注解都无效 解决方法: 在ShiroConfiguration中注入开启支持aop. ...

  5. 24.Swap Nodes in Pairs (List; Two-Pointers)

    Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...

  6. UNITY地图寻路及服务器解决方案

    多边形寻路算法简单介绍 http://liweizhaolili.lofter.com/post/1cc70144_86a939e UNITY3D MMO服务器寻路 http://www.pathen ...

  7. gradle 构建测试

    以后决不能再犯此类低级错误

  8. 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetLzdtArticleResult。InnerException 消息是“反序列化对象 属于类型 lzdt.DTO.Dtolzdt[] 时出现错误。读取 XML 数据时,超出最大

    当遇到这个错误的时候郁闷了好长时间报错是字符串长度过大可是修改了MaxStringContentLength”属性的值却不起作用最后才发现还是因为配置文件配置的问题在服务端 格式化程序尝试对消息反序列 ...

  9. Castle ActiveRecord学习(八)事务

    代码: public void UpdateThemeInfo(int id) { //事务 using (TransactionScope ctran = new TransactionScope( ...

  10. 如何求数字n的因数个数及因数和

    我们有可能在某些数学题中会求到某个数的因数和,那我们怎么求呢? 因为我们知道任意一个合数都可以由两个或多个质数相乘得到,那么我们就先分解质因数吧 例:我们随便去一个数吧,嗯,就108了,好算... 我 ...