linux ftp及C/S服务架构
乱码转换工具
使用convmv软件:windows中文字符编码为GB2312
linux中文字符编码为utf-8
选项:
-f:源文件中中文字符编码
-t:转换成字符编码
-r:代表递归
--notest:不测试,直接转换
[root@hydraxx]#convmv -f GB2312 -t utf-8 -r --notest
————————————————————————————————————————————————————————————
搭建FTP服务
[root@hydraxx 桌面]#yum -y install vsftpd (安装vsftpd)
[root@hydraxx 桌面]# chkconfig vsftpd on(设置随机自启)
[root@hydraxx 桌面]# chkconfig vsftpd --list(查看状态)
vsftpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@hydraxx 桌面]#/etc/init.d/vsftpd status(开启服务,默认共享文件夹为/var/ftp/)
[root@hydraxx 桌面]# mkdir -p /var/ftp/iso/rhel6(创建仓库目录)
[root@hydraxx ~]# mount -o loop /ISO/rhel-server-6.7-x86_64-dvd.iso /var/ftp/iso/rhel6/(本地挂载镜像需要加-o loop选项)
[root@hydraxx ~]# vim /etc/fstab(开机自动挂载)
/ISO/rhel-server-6.7-x86_64-dvd.iso /var/ftp/iso/rhel6/ iso9660 defaults,loop 0 0(写上配置)
[root@hydraxx ~]# umount /var/ftp/iso/rhel6/(卸载挂载点)
[root@hydraxx ~]# ls /var/ftp/iso/rhel6/(测试自动挂载)
EFI EULA_it HighAvailability README ScalableFileSystem
EULA EULA_ja images release-notes Server
EULA_de EULA_ko isolinux repodata TRANS.TBL
EULA_en EULA_pt LoadBalancer ResilientStorage
EULA_es EULA_zh media.repo RPM-GPG-KEY-redhat-beta
EULA_fr GPL Packages RPM-GPG-KEY-redhat-release
[root@hydraxx 桌面]# vim /root/.bashrc (创建别名)
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias goa='ssh -X root@192.168.4.5'
alias gob='ssh -X root@192.168.4.205'
———————————————————————————————————————————————————————
ssh设置公钥验证
[root@hydraxx 桌面]# ssh-keygen (生成公钥和私钥)
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (公钥私钥为于/root/.ssh)
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
80:d1:60:da:be:5d:53:23:e8:50:25:09:f7:b0:fd:f0 root@hydraxx
The key's randomart image is:
+--[ RSA 2048]----+
| =+=o. |
| + =oB |
| . + + = o |
| . o . * . |
| . . S E |
| o . . |
| . . |
| |
| |
+-----------------+
[root@hydraxx 桌面]# ls /root/.ssh/(查看公钥和私钥)
authorized_keys id_rsa id_rsa.pub
[root@hydraxx 桌面]# ssh-copy-id root@192.168.4.5(把公钥复制到需要远程管理的主机上,以后远程就不要输入密码)
————————————————————————————————————————————————————————————
C/S服务架构
典型服务模式:C/S,Client/Server
由服务器提供资源或者某种功能
客户机使用资源或功能
服务端:能够提供某种资源或者功能的应用程序
需要在服务器上监听某个ip地址的某个端口
客户端:能够访问某种资源或功能的应用程序
能够通过ip地址,端口号连接到服务端程序
应用层协议:服务端与客户端共同遵守的一套通信协议
常见网络服务:
————————————————————————————+
类型 | 资源,功能 | 应用层协议 |
文件传输 | 文件下载,上传 | FTP |
网站 | 网页浏览 | HTTP |
域名 | 互联网地址查询 | DNS |
远程装机 | 操作系统安装 | DHCP,PXE |
虚拟化 | 虚拟机 | ----- |
邮件 | 发收邮件 | SMTP,POP3,IMAP |
远程同步 | 增量备份,目录镜像| RSYNC |
————————————————————————————+
FTP服务概述:基于C/S结构的文件传输协议
FTP会话层属于复合TCP连接:
控制连接:TCP 21 端口,发送FTP命令信息
数据连接:TCP 20 端口,上传数据
数据连接模式
主动模式:服务端2端口—主动连接—》客户端
被动模式:服务端xx端口《—被动连接—客户端
xx端口范围需预先限定
传输模式
文本模式:ASCLL模式,文本序列传输
二进制模式:Binary模式,二进制序列传输
FTP用户类型
匿名用户:ftp或Anonymous
本地用户:Linux服务器本机系统用户账号
虚拟用户:账号信息存放在独立的文件或数据库内
vsftpd服务基础
服务程序和脚本
服务程序:/usr/sbin/vsftpd
系统服务脚本:/etc/init.d/vsftpd
配置目录:/etc/vsftpd
主配置文件:vsftpd.conf
ftp命令工具
格式:ftp 服务器地址
根据提示登陆(匿名用户可任意密码)
[root@svr5 ~]# ftp 192.168.4.254
Connected to 192.168.4.254 (192.168.4.254).
220 (vsFTPd 2.2.2)
Name (192.168.4.254:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
在ftp>中输入?可获取指令列表
下载:get/mget,wget
上传:put/mput
lcd切换本地目录,quit或by退出
利用!可调出外部shell命令操作
常用的全局配置FTP配置(启用为yes,关闭为no)
listen:是否以独立运行的方式监听服务
listen_address:设置监听FTP服务的ip地址
listen_port:设置监听FTP服务的端口
write_enable:是否启用写入权限
download_enable:是否允许下载
anonymous_enable:是否启用匿名访问
anon_root:匿名FTP的根目录
local_root:本地用户的FTP根目录
local_umask:本地用户上传的权限掩码
chroot_local_user:是否禁锢再主目录
用户访问控制
黑名单文件:/etc/vsftpd/ftpusers列入其中的用户被紧=禁止访问
黑/白名单文件:/etc/vsftpd/user_list
userlist_enable=yes
userlist_deny=yes|no
由userlist_enable决定时是否启动此文件
当userlist_deny=yes时,此文件黑名单,否则为白名单
FTP连接及传输控制
并发数限制,宽带限制
max_clients:限制并发的客户端个数
max_pre_ip:限制每个客户机ip的并发连接数
anon_max_rate:匿名最大速度(字节/秒)
local_max_rate:验证用户最大速度(字节/秒)
服务监听地址
概念:
系统服务在哪一个网络接口提供服务
比如 listen_address=192.168.1.1
指的是服务器的某一个ip地址,而不是客户机地址
如果不指定,默认在所有接口监听
linux ftp及C/S服务架构的更多相关文章
- 打开Linux ftp服务,如:vsftpd: unrecognized service
打开Linux ftp服务,如:vsftpd: unrecognized service [root@BZXXDBS02 ~]# service vsftpd start vsftpd: unre ...
- 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端
在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...
- 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...
- 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- CI Weekly #5 | 微服务架构下的持续部署与交付
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
- WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例
最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...
- Linux FTP的安装与配置
Linux FTP的安装与配置 ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service ...
- 基于AWS的云服务架构最佳实践
ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...
随机推荐
- 李忠益TP5商城项目笔记(待完成)
商品种类的无限极分类 $data=db('goods_type')->field(['*','concat(path,",",id)'=>'paths'])->o ...
- 【转】 C++易混知识点4: 自己编写一个智能指针(Reference Counting)学习auto_ptr和reference counting
这篇文章建大的介绍了如何编写一个智能指针. 介绍: 什么是智能指针?答案想必大家都知道,智能指针的目的就是更好的管理好内存和动态分配的资源,智能指针是一个智能的指针,顾名思义,他可以帮助我们管理内存. ...
- Python类的__getitem__和__setitem__特殊方法
class testsetandget: kk = {}; def __getitem__(self, key): return self.kk[key]; ...
- .Net 更容易的使用配置文件 SuperConfig
一.原始配置文件的问题 我们在做开发时,不管是B/S还是C/S,现在几乎所有的项目都会碰到使用配置文件,简单点的如链接字符串.上传路径啊,一些API的接口地址等等.复杂点就更多了,如ActiveMQ的 ...
- Python笔记001-----简介及常用的库
1.Python是一种解释性语言,大部分代码要比编译型语言(如C++,java等)运行要慢点多.2.对于高并发,多线程的应用程序而言,Python并不是理想语言,python有全局解释器锁(Globa ...
- [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...
- python中的线程之semaphore信号量
semaphore是一个内置的计数器 每当调用acquire()时,内置计数器-1 每当调用release()时,内置计数器+1 计数器不能小于0,当计数器为0时,acquire()将阻塞线程直到其他 ...
- 二分图匹配 洛谷 [P3386]
最为经典的匈牙利算法 匈牙利算法应用了增广路的性质,实际上就是通过搜索可行的增广路,每搜到一条,匹配数++ 还可以应用配对的方法去理解,此算法的时间复杂度 (V*E),比较慢,但是实现较为简单. df ...
- React ref回调函数例子
ref属性也可以是一个回调函数而不是一个名字. 这个函数将要在组件被挂载之后立即执行. 这个参照的组件将会作为该函数的参数,这个函数可以立即使用这个组件参数,当然也可以将其保存供以后使用. 当这个 ...
- AJAX面试题都在这里
AJAX常见面试题 什么是AJAX,为什么要使用Ajax AJAX是"Asynchronous JavaScript and XML"的缩写.他是指一种创建交互式网页应用的网页开发 ...