Linux下高效传输图片的方法 (linux 传输图片)


随着数码相机、手机等电子设备的普及,越来越多的图片被保存在电脑中。在这些图片中,有些是非常珍贵的,例如家庭合影、旅游照片、孩子成长记录等。因此,对于图片的保护和传输成为了大多数人必须面对的问题。而Linux作为一款流行的操作系统,其高效传输图片的方法也非常值得学习。

传统图片传输方法存在的问题

在传统的图片传输方法中,往往采用U盘、移动硬盘等存储设备来传输图片。但这种方法有以下几个问题:

1. 不安全:如果存储设备丢失或者被盗,图片会泄露。特别是一些私人照片,一旦别人拿到,就会影响个人隐私。

2. 不方便:当需要传输的图片数量比较多的时候,需要反复插拔存储设备,操作繁琐,浪费时间。

3. 不稳定:存储设备本身容易出现损坏或者数据丢失等情况,导致无法传输图片。

因此,采用一种高效、安全、稳定的方法来传输图片变得越来越重要。

基于网络的高效传输方法

当前,基于网络的传输方式已经成为了传输图片的主流方式。在这种方式下,可以利用局域网或者互联网来进行图片传输。具体方法有以下几种:

1. 电子邮件

电子邮件是最常见的一种传输方式。用户只需要将图片作为附件添加到邮件中,发送给接收方。这种方式的好处是简单易行,但不适合传输大量的图片。

2. 网络硬盘

网络硬盘,顾名思义,就是在互联网上提供存储服务的硬盘。用户可以将需要传输的图片上传到云端,在需要的时候,再将图片下载到本地。这种方式的好处是可以随时随地访问图片,而且不会占用本地存储空间。常用的云存储服务有百度网盘、阿里云盘、Dropbox等。

3. 基于局域网的文件共享

在局域网环境下,用户可以通过启用共享功能将需要传输的图片放入公共文件夹中,其他用户便可以通过网络共享方式访问该文件夹,从而获取图片。这种方式的好处是传输速度快,可以传输大量的图片。缺点是需要在同一局域网中。

4. FTP传输

FTP(File Transfer Protocol,文件传输协议)是网络传输文件的常用协议,也是Linux中常用的文件传输方式。可以通过FTP服务器将需要传输的图片上传到服务器上,再从服务器上下载到另外一台电脑。这种方式的好处是可以进行多用户传输,同时也支持文件夹传输。

随着电子设备的不断普及,图片的传输已经成为了一个不可避免的问题。而Linux作为一款流行的操作系统,其高效传输图片的方法也非常值得学习。基于网络的传输方式,可以让用户随时随地地访问图片,而且传输速度又快又稳定,因此是目前更佳的图片传输方式。

相关问题拓展阅读:

  • 如何在虚拟机上的Linux系统配置FTP服务,跟Windows建立连接传输文件
  • linux下ftp服务器的上传下载的过程

如何在虚拟机上的Linux系统配置FTP服务,跟Windows建立连接传输文件

在虚拟机上的Linux系统配置FTP服务,跟Windows建衡仔立连接传游拦纳输文件的具体操作步骤如下:

1、在电脑上下载并安装好小型FTP服务器(Quick Easy FTP Server) 软件,打开进行设置用户名,用于远程登录。

2、设置密码,再输一次确认密码。

3、设置想共享的文件夹。

4、神没设置各项权限,包括下载上传权限、下载上传速度限制等。

5、全部设置完毕后,点击“完成”。

6、完成之后,可以在软件里进行各项服务器配置,并且点左上角绿色按钮可以启动服务器,启动后,绿色按钮变暗,红色按钮变亮。

一. FTP 说明

linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp)。 我们这里也是简单的说明下vsftp的配置。

vsftp提供3种远程的登录方式:

(1)匿名登录方式

就是不需要用户名,密码。就能登录到服务器电脑里面

(2)本地用户方式

需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户。

(3)虚拟用户方式

同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有祥改的(没有该用户帐号)

二. Vsftp的安装配置

2.1 安装

vsftp 的安装包,可以在安装里找到。 用yum 安装过程也很简单。

安装命令:yum install vsftpd

2.2. 相关命令

2.2.1 启动与关闭

# service vsftpd start

Starting vsftpd for vsftpd:

# service vsftpd stop

Shutting down vsftpd:

# service vsftpd restart

Shutting down vsftpd:

Starting vsftpd for vsftpd:

# /etc/init.d/vsftpd start

Starting vsftpd for vsftpd:

# /etc/init.d/vsftpd stop

Shutting down vsftpd:

# /etc/init.d/vsftpd restart

Shutting down vsftpd:

Starting vsftpd for vsftpd:

# /etc/init.d/vsftpd status

vsftpd (pid 3931) is running…

#

2.2.2. 其他命令

–查看裤宴旁vsftpd 启动状态

# chkconfig –list vsftpd

vsftpd:off 1:off 2:off 3:off 4:off 5:off 6:off

# chkconfig vsftpd on

# chkconfig –list vsftpd

vsftpd:off 1:off 2:on 3:on 4:on 5:on 6:off

这里看到,默认情况下从2到5设置为on了。2到5是多用户级别。 这个对应的是linux不同的胡橡运行级别。

我们也可以加level 选项来指定:

# chkconfig –level 0 vsftpd on

# chkconfig –list vsftpd

vsftpd:on 1:off 2:on 3:on 4:on 5:on 6:off

我们看到0已经设置为on了。

我们可以使用man chkconfig 来查看帮助:

–level levels

Specifies the run levels an operation should pertain to. It is given as a string of numbers from 0 to 7. For example, –level 35 specifies runlevels and 5.

传统的init 定义了7个运行级(run level),每一个级别都代表系统应该补充运行的某些特定服务:

(1)0级是完全关闭系统的级别

(2)1级或者S级代表单用户模式

(3)2-5 级 是多用户级别

(4)6级 是 重新引导的级别

(1)查看防火墙

我一般都是把系统的防火墙关闭了。 因为开了会有很多限制。

# /etc/init.d/iptables status

Table: nat

Chain PREROUTING (policy ACCEPT)

num target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

num target prot opt source destination

1 MASQUERADE all.168.122.0/24 !192.168.122.0/24

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

Table: filter

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT udp.0.0.0/.0.0.0/udp dpt:53

2 ACCEPT tcp.0.0.0/.0.0.0/tcp dpt:53

3 ACCEPT udp.0.0.0/.0.0.0/udp dpt:67

4 ACCEPT tcp.0.0.0/.0.0.0/tcp dpt:67

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

1 ACCEPT all.0.0.0/92.168.122.0/24 state RELATED,ESTABLISHED

2 ACCEPT all.168.122.0/.0.0.0/

3 ACCEPT all.0.0.0/.0.0.0/

4 REJECT all.0.0.0/.0.0.0/reject-with icmp-port-unreachable

5 REJECT all.0.0.0/.0.0.0/reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

You have new mail in /var/spool/mail/root

–添加开放21号端口:

# /in/iptables -I INPUT -p tcp –dport 21 -j ACCEPT

# /etc/init.d/iptables status

Table: nat

Chain PREROUTING (policy ACCEPT)

num target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

num target prot opt source destination

1 MASQUERADE all.168.122.0/24 !192.168.122.0/24

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

Table: filter

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 ACCEPT tcp.0.0.0/.0.0.0/tcp dpt:21

2 ACCEPT udp.0.0.0/.0.0.0/udp dpt:53

3 ACCEPT tcp.0.0.0/.0.0.0/tcp dpt:53

4 ACCEPT udp.0.0.0/.0.0.0/udp dpt:67

5 ACCEPT tcp.0.0.0/.0.0.0/tcp dpt:67

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

1 ACCEPT all.0.0.0/92.168.122.0/24 state RELATED,ESTABLISHED

2 ACCEPT all.168.122.0/.0.0.0/

3 ACCEPT all.0.0.0/.0.0.0/

4 REJECT all.0.0.0/.0.0.0/reject-with icmp-port-unreachable

5 REJECT all.0.0.0/.0.0.0/reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

–保存配置

# /etc/rc.d/init.d/iptables save

Saving firewall rules to /etc/sysconfig/iptables:

–重启防火墙:

# service iptables {start|stop|restart}

(2)查看关闭selinux

# sestatus

SELinux status: disabled

我这里在安装操作系统的时候就关闭了selinux,如果没有关闭,可以修改如下文件来关闭:

# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#enforcing – SELinux security policy is enforced.

#permissive – SELinux prints warnings instead of enforcing.

#disabled – SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

#targeted – Only targeted network daemons are protected.

#strict – Full SELinux protection.

SELINUXTYPE=targeted

#

保存退出并重启系统reboot

三. FTP配置文件

FTP 安装好之后,在/etc/vsftpd/目录下会有如下文件:

# cd /etc/vsftpd/

# ls

ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh

#

vsftpd.conf: 主配置文件

ftpusers: 指定哪些用户不能访问FTP服务器

user_list: 指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。

# cat user_list

# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and

# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers

# for users that are denied.

我们过滤掉#的注释后,查看一下vsftpd.conf 文件:

# cat /etc/vsftpd/vsftpd.conf |grep -v ‘^#’;

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=yes

tcp_wrappers=YES

至于这些参数的意思,在注释里有详细的说明。

我们可以在vsftpd.conf 文件设置如下参数:

(1)ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息

(2)idle_session_timeout=60 :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)

(3)data_connection_timeout=120 :设置客户机在进行数据传输时,设置空闲的数据中断时间

(4)accept_timeout=60 设置在多长时间后自动建立连接

(5)connect_timeout=60 设置数据连接的更大激活时间,多长时间断开,为别人所使用;

(6)max_clients=200 指明服务器总的客户并发连接数为200

(7)max_per_ip=3 指明每个客户机的更大连接数为3

(8)local_max_rate=50000(50kbytes/sec) 本地用户更大传输速率限制

(9)anon_max_rate=30000匿名用户的更大传输速率限制

(10)pasv_min_port=端口

(11)pasv-max-prot=端口号 定义更大与最小端口,为0表示任意端口;为客户端连接指明端口;

(12)listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;

(13)listen_port=端口号 设置FTP工作的端口号,默认的为21

(14)chroot_local_user=YES 设置所有的本地用户可以chroot

(15)chroot_local_user=NO 设置指定用户能够chroot

(16)chroot_list_enable=YES

(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用户才能执行 )

(18)local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;

(19)chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;

(20)chroot_list_enable=yes/no 锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;

(21)userlist_enable=YES/NO 是否加载用户列表文件;

(22)userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;

(23)userlist_file=/etc/vsftpd/user_list 列表文件

限制IP 访问FTP:

#vi /etc/hosts.allow

vsftpd:192.168.5.128:DENY 设置该IP地址不可以访问ftp服务

FTP 访问时间限制:

#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd

#vi /etc/xinetd.d/vsftpd/

修改 disable = no

access_time = hour:min-hour:min (添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)

例: access_time = 8:30-11:30 17:30-21:30 表示只有这两个时间段可以访问ftp

ftp的配置基本上只有这些了。

默认情况下,ftp根目录是/var/ftp。 如果要修改这个目录位置,可以更改/etc/passwd 文件:

# cat /etc/passwd | grep ftp

ftp:x:14:50:FTP User:/var/ftp:/in/nologin

创建一个用户来访问FTP,并指定该用户的FTP 目录:

# useradd -d /u02/qsftp qs

# passwd qs

Changing password for user qs.

New UNIX password:

BAD PASSWORD: it is WAY too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

这里指定的是/u02/qsftp 这个目录,要注意个目录的权限。

更改用户不能telnet,只能ftp:

usermod -s /in/nologin username //用户只能ftp,不能telnet

usermod -s /in/bash username //用户恢复正常

禁止用户ssh登陆

useradd username -s /bin/false

更改用户主目录:

usermod -d /bbb username//把用户的主目录定为/bbb

然后用qs这个用户就可以访问了。

以上只是一些简单的设置。 在用户权限这块还有很多内容可以研究。 比如特定用户的特定权限。 安全性等。 以后在研究了。

1. 首先保证网络畅通(假设win: 192.168.1.linux: 192.168.1.2)

2. 安装VSFTPD软件,(一般情况下都会安装好,可以唤衡通过rpm -qa |grep vsftpd来查看)

3. 启动vsftpd服务,service vsftpd start ,出现了一个OK,就算是启动成功了。

4. 在LINUX的字符界面测试一下服务器是否正常:

输入ftp localhost,回车如果成功会提示让你输入用户名,输入ftp,回车,提示输入密码,族枯直接回和穗做车,如果出现了ftp>,此时继续输入dir,如果看到了一个pub的目录,说明服务器没有问题,正常。

5. 转到windows上测试,打开IE浏览器输入 ,如果可以看到pub文件夹,说明好了,如果不能提示无法访问,有可能是linux的防火墙和SELINUX机制导致的。

解决办法:

A: 分别执行: iptables -F

iptables -X

service iptables save

B. 编辑/etc/sysconfig/selinux,会看到一个selinux=enable,如果是enable,改成disabled,然后一定要重启linux系统,这样应该就没有问题了。

让你看的不是LO口的IP 是eth0或者eth1的IP 那个才是网卡IP

selinux可以通过getenforce查看 看值是什么 如果说山迅是permissive或模唯裤者disabled就没事 不是的话想临时改动的话 输入旦简setenforce 0即可

无论虚拟和真是机器,对于ftp服务来说,没区别,ftp服务在Linux上,有很多软件,先说vsftp吧。

最困扒简单的办法,

打命令命令: service vsftp start

或者:/etc/init.d/vsftp start

或者:运行setup,在服务汪昌昌那里,开启vsftp。

linux下ftp服务器的上传下载的过程

LinuxftpFTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。通常我们使用ftp命令,主要是上传和下载文件,ftp登陆的用户一般都是一些虚拟用户,因为这是出于安全考虑。

语法:ftp

参数:

-v显示指令执行过程。

-n不使用自动登陆。

-g关闭本地主机文件名称支持特殊字符的扩充特性。

-i关闭互动模式,不询问任何问题。

-d详细显示指令执行过程,便于排错或分析程序执行的蠢茄游情形。

例子:登录124.16.144.120,命纳庆令

$ftp124.16.144.120

Connectedto124.16.144.120.

220(vsFTPd2.0.5)

530PleaseloginwithUSERandPASS.

530PleaseloginwithUSERandPASS.

KERBEROS_V4rejectedasanauthenticationtype

Name(124.16.144.120:root):anonymous#用户名

331Pleasespecifythepassword.#用户密码

Password:

230Loginsuccessful.

RemotesystemtypeisUNIX.

Usingbinarymodetotransferfiles.

下载文件通常用get和mget这两条命令

a)get

格式:get

将文件从远端主机中传送至本地主机中.

如要获取服务器上c:\a\1.jpg,则

ftp>get/a/1.jpg1.jpg(回车)

b)mget

格式:mget

从远端主机接收一批文件至本地主机.

如要获取服务器上E:\a\下的所有文件,则

ftp>cd/a

ftp>mget*.*(回车)

ftp下输入prompt命令,批量获取则不在一一提示。

注意:文件都下载到了linux主机的当前目录下。比如,在 /root/web下运行的ftp命令,则文件都下载到了/root/web下。

3.上传文件

a)put

格式:putlocal-file

将本地一个文件传送至远端主机中.

如要把本地的1.jpg传送到远端主机c:\a,并改名为2.gif

ftp>put1.jpg/a/2.gif(回车)

b)mput

格式:mputlocal-files

将本地主机中一批文件传送至远端主机.

如要把本地当前目录下所有bmp文件上传到服务器c:\a下

ftp>cd/a(回车)

ftp>mput*.jpg (回车)

注意:上传文件都来自于主机的当前目录下。比如,在 /root/web下运行的ftp命令带销,则只有在/root/web下的文件linux才会上传到服务器c:\a下。

linux教程:Linuxshell中使用ftp自动下载上传文件

FTP自动登录批量下载文件

从ftp服务器192.168.1.171上的/home/data到本地的/home/databackup

!/bin/bash

ftp-v-n192.168.1.171

userguest

binary

cd/home/data

lcd/home/databackup

prompt

mget*

close

bye

FTP自动登录批量上传文件

从ftp服务器192.168.1.171上的/home/data到本地的/home/databackup

#!/bin/bash

ftp-v-n192.168.1.171> /etc/vsftpd/user_list

重启服务让配置文件生效。

# /etc/init.d/vsftpd restart

测试ftp服务器。

在浏览器中输入地址

点确定后,出现如下错误。

解决方法:

# setsebool -P ftp_home_dir on

# /etc/init.d/vsftpd restart

再来测试:

在浏览器中输入ftp服务器地址,然后输入用户名和密码:

可以看出通过ftp已经进入了test的家目录,并且可以切换到其他目录,如果要限制test在自己的家目录中,将chroot_local_user=YES加入到配置文件中。

下面我们使用ftp客户端来测试上传和下载:

测试前,我们在test家目录创建一个test.txt文件。

$ echo “this is a test txt” > /home/test/test.txt

把桌面的一份文件上传到test的家目录。

下载test.txt到桌面:

$ ls

?ĸ?????.txt test.txt

可以看出test家目录已经有两个文件了。(?是由于编码的原因)。

实验总结:

关于linux 传输图片的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。