网卡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.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服务的更多相关文章
- NAT 模式下虚拟机安装的centos7 ping主机显示connect: Network is unreachable
在虚拟机下安装的centos7使用的网络是NAT模式,安装成功后ping主机地址显示 Network is unreachable 解决方案: 1)使用ifconfig命令查看网卡信息 2)进入/et ...
- 【CNMP系列】CentOS7.0下安装FTP服务
一个小插曲,安装一个FTP服务,便于和远程服务器的文件沟通.后续我们会讲到如何使用Capistrano配合git完成服务器的代码部署以及发布流程.现在,代码先走FTP吧,挺稳. FTP简介 FTP 是 ...
- 使用cuteFTP与虚拟机交互文件---安装ftp服务
安装ftp服务,以便在Windows中使用cuteFTP与虚拟机交互文件,使用sudo apt-get install vsftpd 安装完后,打开/etc/vsftpd.conf文件,去掉local ...
- CentOS7.0下安装FTP服务的方法
http://www.jb51.net/article/106604.htm 本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟 ...
- Linux下安装FTP服务(Ubuntu)
在Ubuntu 14.04 上安装 FTP 服务 第一步>>更新库 linuxidc@linuxidc:~$ sudo apt-get update 第二步>>采用如下命令安装 ...
- Linux安装FTP服务
转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1. 在Linux和其他机器之间共享文件(在linux下安装ft ...
- linux环境中安装ftp服务
需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...
- Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11
Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...
- Windows下虚拟机安装Mac OS X —– VM12安装Mac OS X 10.11
____________________________________________________________________________________________________ ...
随机推荐
- java.io.CharConversionException: Not an ISO 8859-1 character:
java.io.CharConversionException: Not an ISO 8859-1 character: XXX 这个问题可能是因为outputstream输出中文字造成的影响. r ...
- 牛X的FieldBlur
[牛X的FieldBlur] Use Field Blur to build a gradient of blurs, by defining multiple blur points with di ...
- PLSQL启动很慢的问题
最近重新做了系统,win7 64位系统上装了oracle10g,plsql10.发现plsql启动比较慢. 解决方法: 首先停止打印机服务:Print Spooler,然后将这个服务设置为手动模式.
- Vue.js基础知识
<!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml&q ...
- Excel中保留有效数字的问题
在工作表界面中按 <alt>+<F11>,进入代码页面,然后再 WORKBOOK中插入模块,把以下代码COPY入模块中.就可以在工作表中使用 =YXSZ(数值,保留位数). 如 ...
- Chrome 强制刷新缓存的方法
https://jingyan.baidu.com/article/11c17a2c2a9e27f446e39d98.html
- yarn 完美替代 npm
众所周知,npm是nodejs默认的包管理工具,我们通过npm可以下载安装或者发布包,但是npm其实存在着很多小问题,比如安装速度慢.每次都要在线重新安装等,而yarn也正是为了解决npm当前存在的问 ...
- MySQL redo log及recover过程浅析
写在前面:作者水平有限,欢迎不吝赐教,一切以最新源码为准. InnoDB redo log 首先介绍下Innodb redo log是什么,为什么需要记录redo log,以及redo log的作用都 ...
- java通过经纬度计算两个点的之间的距离的算法
通过两个点的经纬度计算距离 从google maps的脚本里扒了段代码,没准啥时会用上.大家一块看看是怎么算的. private const double EARTH_RADIUS = 6378.13 ...
- php CI框架输出空行问题排查
今天在使用 curl 命令行工具调试一个功能时,发现输出的内容总是会在最开始莫名其妙的多一行空行: 项目框架是 php 的 CodeIgniter,感觉这种问题在网上不好查找,因为可以确定这个是业务出 ...