如何向Azure虚拟机传文件,第1张

1通过远程桌面的本地资源访问

最简单的方式是通过远程桌面的本地资源访问功能。在虚拟机页底部点击“连接”后,浏览器会提示下载rdp文件。

不要直接打开该文件,而是选择另存,将其存在本地

对于下载的RDP文件,不要直接打开,而是右键,选择Edit

然后在本地资源页中,点击More,然后选中本地要访问的磁盘

这样登录虚拟机后,就可以在资源管理器里面看到本地磁盘,直接进行文件拷贝。

这种访问最方便,不过缺点是受网络影响较大。如果文件较大或者较多,效率比较低

2 通过Blob存储中转

Azure存储提供了近乎无限的存储空间,我们可以把要上传的文件先上传到Blob存储,然后再从Azure的各虚拟机下载

Blob的上传下载需要Blob工具,比如Azure Storage Explorer, CloudXplorer等

在本地和Azure虚拟机上,都需要安装这个工具

3 通过FTP

用FTP看似是个好主意,大家都会用。但这里存在一个问题,就是Azure的安全设计。Azure的虚拟机全部位于防火墙后,所有的外部访问均需事先定义端口映射。对于通常的Web访问来说,不是什么问题,因为我们会打开80端口。但是FTP就有点麻烦了。

首先,我们需要了解下FTP的工作原理。FTP基于两个端口运作,21端口是命令端口,用于接受客户连接,此外还有一个端口专门用于传数据。这个端口的确定有两种方式,分别是Passive和Active。其中Active的意思是,客户端主动监听一个端口,然后让服务器反向连接至该端口进行数据传递。这对于大部分场景不可用,因为客户端往往在内网,内网开的端口外网是访问不了的。于是FTP缺省用Passive模式,即服务器随机开一个端口,告诉客户端,然后让客户端连接至该端口传数据。由于这个端口是随机创建的,自然无法在Azure上提前定义端口映射,FTP也就无法运作了。

那么是不是FTP就没法用了?也不是。FTP服务器都支持指定数据端口范围,如果我们限定数据端口在一个很小的范围内,比如30000-30004,然后我们在Azure上把这些端口都定义了,那么就可以解决FTP的防火墙穿越问题。

下面我们实际测试下,首先我们在一台CentOS上配置VsFtp服务,并在Azure上定义21端口,再用FTP客户端访问

我们发现FTP试图连接一个服务器随机创建的端口50118,该端口没有在Azure防火墙上定义,自然无法连通。

接下来,我们修改vsftp配置,在/etc/vsftpd/vsftpdconf末尾添加

pasv_min_port=30000

pasv_max_port=30001

表示数据端口采用30000-30001,重启ftp服务

然后进入Azure门户,为这两个端口定义防火墙映射

再次使用ftp客户端连接

工作正常了!可见客户端正是用30001访问服务器端数据端口

如下21端口改成你的端口号 注意设置SELinux 或者关闭SELinux

firewall-cmd --permanent --zone=public --add-port=21/tcp

然后执行重新载入firewalld设置

firewall-cmd --reload

删除之前的服务

firewall-cmd --permanent --remove-server=tcp

列出firewall开放端口

firewall-cmd --list-all

iptables里面仅仅开放了80、21等常用端口,这样就导致了vsFTPd在被动模式时无法使用随机端口,从而造成了客户端连接FTP时无法列出目录这样的问题。解决方式很简单,给vsFTPd增加随机端口的范围,然后把这个端口范围添加到iptables。给vsFTPd增加随机端口的范围,然后把这个端口范围添加到iptables就可以解决vsftpd不能显示文件目录的问题。

搭建虚拟主机管理系统可以通过以下步骤完成:

1 安装服务器操作系统:选择一种适用于服务器的操作系统,如Linux发行版(例如Ubuntu、CentOS)或Windows Server。安装操作系统时,确保选择服务器版本,并进行基本的初始化设置。

2 安装Web服务器软件:常见的Web服务器软件有Apache和Nginx。选择其中一种并按照所选软件的官方文档进行安装。

3 安装数据库服务器:虚拟主机管理系统需要使用数据库来存储用户和站点的信息。常见的数据库软件有MySQL和PostgreSQL。选择其中一种并按照所选软件的官方文档进行安装。

4 配置Web服务器:根据所选择的Web服务器,编辑相关配置文件以启用必要的模块和功能。例如,在Apache中,您可以编辑httpdconf文件;在Nginx中,您可以编辑nginxconf文件。

5 下载和安装虚拟主机管理系统:有许多开源的虚拟主机管理系统可供选择,例如cPanel、Plesk、Virtualmin等。根据您的需求和偏好选择一个系统,并按照其官方文档进行下载和安装。

6 配置虚拟主机管理系统:安装完成后,您需要进行一些必要的配置。这可能包括设置管理员账户、配置DNS服务器、设置邮件服务、定义资源配额等。

7 创建虚拟主机:在虚拟主机管理系统中,您可以创建和管理虚拟主机。根据系统的不同,您可以设置域名、FTP账号、数据库等。

8 安全配置:确保服务器和虚拟主机管理系统的安全性,例如使用防火墙、更新软件、实施访问控制策略等。

9 监控和维护:定期监控服务器和虚拟主机管理系统的性能和安全状态。确保及时进行软件更新、备份数据、检查日志等。

请注意,搭建虚拟主机管理系统需要一定的技术知识和经验。如果您是初学者或对服务器管理不熟悉,建议寻求专业人士的帮助或选择使用托管服务提供商。

在我用的所有ftp服务器中来说,首推iis7服务器管理工具,而且一直在用,感觉非常好。它可以作为FTP的客户端,想要进行FTP的上传下载操作,只需要下载安装iis7服务器管理工具就可以了,操作不复杂!

简单的介绍一下iis7服务器管理工具:可以批量管理WIN系列服务器、VPS、批量导入服务器VPS的IP,端口,账号和密码 、批量打开N个服务器VPS的远程桌面、远程桌面后,远程窗口右上角会出现 服务器备注的信息,如郑州xxx号服务器 5、远程桌面后,不影响任务栏显示。可以及时看其他窗口。支持多种方式连接,操作简洁,自身附带教程。

第一步:点击主程序图中“上传下载”键;

第二步:点击“ Ftp”;

第三步:点击“添加”;

第四步:在弹出服务器信息框中填写Ftp信息,注意:FIP ip端口、账号、密码为必填项;

第五步:选择需要打开的FTP服务器;

第六步:点击打开,即刻见FTP效果图。

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。

工作方式

主动模式:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始 监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

被动模式:当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

先安装vsftpd

[root@localhost ~]# yum install vsftpd -y[root@localhost ~]# systemctl  start vsftpd      #启动vsftpd[root@localhost ~]# systemctl  status vsftpd    #查看vsftpd状态

vsftpdservice - Vsftpd ftp daemon

Loaded: loaded (/usr/lib/systemd/system/vsftpdservice; disabled; vendor preset: disabled)

Active: active (running) since 五 2018-02-02 08:22:39 CST; 1min 50s ago

Process: 12558 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpdconf (code=exited, status=0/SUCCESS)

Main PID: 12559 (vsftpd)

CGroup: /systemslice/vsftpdservice

└─12559 /usr/sbin/vsftpd /etc/vsftpd/vsftpdconf

vsftp三种认证模式

annoymous 匿名用户 #无虚输入密码即可访问

local user 真实用户 #服务器上存在的用户

guest user 虚拟用户 #映射到ftp服务器的用户

vsftpd的默认配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpdconf

# Allow anonymous FTP (Beware - allowed by default if you comment this out)anonymous_enable=YES  #允许匿名用户登陆## Uncomment this to allow local users to log in# When SELinux is enforcing check for SE bool ftp_home_dirlocal_enable=YES  #允许本地用户登陆## Uncomment this to enable any form of FTP write commandwrite_enable=YES  #允许本地用户读写## Default umask for local users is 077 You may wish to change this to 022,# if your users expect that (022 is used by most other ftpd's)local_umask=022  #本地用户创建文件的umask值

dirmessage_enable=YES    #当用户进入某个目录时,会显示该目录需要注意的内容是  messagexferlog_enable=YES #启动维护记录服务器上传和下载情况的日志文件connect_from_port_20=YES   #FTP PORT主动模式进行数据传输时使用20端口xferlog_std_format=YES #传输日志文件将以标准 xferlog 的格式书写listen_ipv6=YES  #监听ipv6pam_service_name=vsftpd  #pam认证模块的名字userlist_enable=YES   #拒绝登陆ftp的名单tcp_wrappers=YES   #限制IP访问vsftpd

匿名用户认证

我们刚才已经开启了vsftpd 我们已经可以登陆ftp站点 #需关闭防火墙或设置规则 并关闭selinux

我们已经登陆到ftp站点了

试着创建一个文件夹 出现550报错 是因为我们是以匿名用户登陆到FTP站点 并没有给匿名用户创建目录的权限

在vsftpd配置文件中添加

anon_upload_enbale  #允许匿名用户上传anon_mkdir_write_enable=yes  #允许匿名用户创建目录anon_other_write_enable=yes #允许匿名用户修改目录名称或删除目录

再赋予匿名用户登陆的文件夹最高权限

chmod 777 /var/ftp/pub

已经可以创建并修改文件夹

还有一种方法 是将匿名用户登陆到的目录系统用户改成ftp 就不用修改目录权限

[root@localhost ~]#chown -Rf ftp /var/ftp/pub

本地用户模式

修改vsftp配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpdconf

加入一行

local_root=/etc/ftp

创建 一个用户

[root@localhost ~]#useradd 51cto[root@localhost ~]# passwd 51cto更改用户 51cto 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

创建这个目录

[root@localhost ~]#mkdir /etc/ftp

重启一下vsftpd

用我们刚创建的用户登陆

登陆成功

诶? 既然说本地用户模式是 服务器上真是存在的用户 那我们的管理员root 也是真实存在的 那是否可以登陆呢?

无法登陆 这是为什么呢?

这是因为vsftpd有一个禁止用户登陆的名单

在上面的匿名用户说过 vsftpd默认是开启禁止用户名单的 我们的root用户在名单之中 自然就无法登陆了 禁止root用户登陆也对服务器提升了安全性 防止通过ftp爆破root密码

虚拟用户

虚拟用户是这三种认证模式中最安全的一种 也稍微复杂一些

虚拟用户是用PAM认证模块中配置 FTP认证的数据库文件来进行加密

关于PAM认证可以看http://blog51ctocom/tyjhz/1436175

首先我们在/etc/目录下 创立一个用户数据库文件

奇数行为账户偶数行为密码

为了安全我们用db_load命令 用哈希算法将明文信息转换成密文数据库文件并降低文件的权限 避免其他人看到数据库文件

[root@localhost etc]#db_load -T -t hash -f /etc/ftp/ftptxt ftpdb[root@localhost etc]#rm ftptxt[root@localhost etc]#chmod 600 ftpdb

我们用默认的pam文件 注释其他行

新加两行

db_load 后面跟的是数据库的路径不用写数据库的后缀

创建存放虚拟用户配置文件的目录

[root@localhost etc]#mdir -p /etc/ftp

配置虚拟用户权限

[root@localhost ftp]#vim user1

[root@localhost ftp]#vim user2

创建两个用户登陆的目录

[root@localhost ftp]#mkdir -p /home/user1 [root@localhost ftp]#mkdir -p /home/user2赋予最高权限

[root@localhost ftp]#chmod 777 /home/

修改vsftpd配置文件

重启一下vsftpd

测试一下权限

给你访问目录下面的文件夹授权,命令如下:

chomd -R 755 文件夹路径 或者chomd -R 777 文件夹路径

如果你安装了SELinux,建议关闭;

解决方法:

//使用setsebool命令开启

# setsebool ftpd_disable_trans 1

或者

# setsebool ftp_home_dir 1

//再次查看当前状态是否是on的状态

# getsebool -a|grep ftp

ftpd_disable_trans --> on

或者

ftp_home_dir-->on

//setsebool使用-P参数,无需每次开机都输入这个命令

# setsebool -P ftpd_disable_trans 1

或者

# setsebool -P ftp_home_dir 1

# service vsftpd restart

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何向Azure虚拟机传文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情