一点点小说明
有时候,需要在电脑与电脑之间传输一些文件,用U盘有时候不太方便,或者遇到U盘读不出来的奇葩情况,真是一出接一出,于是想办法。
同一个局域网下的电脑对传的话,一般网速能达到上限,速度不错,按100M的路由器来看,速度一般能在10MB/s左右。
局域网传输————Dukto
网上找到一个不错的软件————DuktoR6,这货速度虽然不快,我这儿测试速度3MB/s左右,不过它可用于大部分平台,windows,linux,Android,ios,windows phone,windows 10 mobile/pc,涵盖了日常能用到的大部分平台,连windows phone和windows 10 mobile都有,不得不说是一个良心软件。
使用方法是:两个终端(电脑或者手机)在同一个局域网下,打开DuktoR6,正常情况下软件会自动找到其它客户端,如上图,如果找不到的话,便点击 “IP connection” ,输入接受端的IP地址,若不知道接收端的IP地址的话,在接收端点击最下面三个图标的中间那个图标,就知道了,若是接收端同时具有多个IP地址,就得找到与发送端同一个网段得IP地址才行,用同样的办法查看发送端的IP地址,看IP地址的前三部分的相似度,在大多数情况下,普通路由器分配给终端的IP地址都形如“192.168.1.X或者192.168.0.X。
找到接收端之后,选择要发送的文件或文件夹便可以发送了。
更加高速的办法
本方法适用于拷贝体积较大的文件,几G甚至几十G的文件拷贝用这种办法,时间会大大缩短。
现在的电脑大都配备了千兆网卡,理论传输速度是能超过100MB/s的,不过受限于运营商带宽或者路由器,一般网速只有几MB/s,如学校所用的翼讯,带宽为6M,最高下载持续下载速度也不到1MB/s,网卡性能浪费太多了。
两台电脑对传文件,若使用网线直接将两台电脑连接,这样带宽理论上是能达到网卡上限的。
原理说明
在上面所说的DuktoR6传输办法中,需要发送端和接收端都安装软件,有时候,这个反而不方便(比如两人都没有携带可以传输的设备,U盘什么的,别说手机了,有些手机不装驱动是没办法北电脑识别的)。
这里我使用的是最常见的直接通过链接下载的方法,也就是说通过TCP/IP协议,说得简单一点,就是拿浏览器直接下载了。
详细说明
安装nginx
如上面所说,想要通过浏览器直接下载对方电脑上的文件,得对方的电脑开启了web服务器,这个东西不难找,我使用的是nginx,点我下载
上面的下载链接是针对windows系统的,基于debian的系统使用下面的命令安装nginx
sudo apt-get install nginx
基于redhat的系统使用下面的命令安装nginx
sudo yum install nginx
下面以windows下的nginx使用方法为例
开启web服务器
使用命令提示符(在开始按钮上点击鼠标右键,选择命令提示符即可),然后切换到nginx所在的文件夹,我写本文时nginx版本为1.11.6,解压下载的压缩包,所得目录结构如下
│ nginx.exe
│
├─conf
│ fastcgi.conf
│ fastcgi_params
│ koi-utf
│ koi-win
│ mime.types
│ nginx.conf
│ scgi_params
│ uwsgi_params
│ win-utf
│
├─contrib
│ │ geo2nginx.pl
│ │ README
│ │
│ ├─unicode2nginx
│ │ koi-utf
│ │ unicode-to-nginx.pl
│ │ win-utf
│ │
│ └─vim
│ ├─ftdetect
│ │ nginx.vim
│ │
│ ├─indent
│ │ nginx.vim
│ │
│ └─syntax
│ nginx.vim
│
├─docs
│ CHANGES
│ CHANGES.ru
│ LICENSE
│ OpenSSL.LICENSE
│ PCRE.LICENCE
│ README
│ zlib.LICENSE
│
├─html
│ 50x.html
│ index.html
│
├─logs
└─temp
输入命令
start nginx
看到一个黑框一闪而过,这个时候nginx已经启动了,在浏览器地址栏输入localhost,即可看到这样的画面
我们同样可以在任务管理器查看进程
搭建静态文件服务器
这一步做完,我们就已经成功一大半了,搭建静态文件服务器的办法是更改conf文件夹下的nginx.conf文件。
不管用什么办法(我使用了记事本),编辑nginx.conf文件,将内容更改如下
1 | #user nobody; |
自行更改Directory_ add为被传输文件的目录,比如我再D盘的download文件夹下的文件是我想要传输被对方的,Directory_add就改成D:\Download
此时配置文件已经修改完成,使用命令
1 | nginx -s reload |
重载配置,使其生效,比如这里我改成F:\Minecraft,重载配置文件后,浏览器打开localhost,界面是这样的:
这个时候,只要别人能打开这台电脑的IP,就可以直接点击相应的文件下载了。
开始传输
前面已经说过,原理便是搭建一个web静态文件服务器,这个时候,只要别人能连接打开服务器的电脑,便可以下载配置好的目录里面的文件了。
怎么连接呢?
第一种办法是仍然连接同一个局域网
第二种办法便是直接用网线连接两台电脑,没错,一根网线,两头都是电脑。
不过普通网线没办法使得两台电脑处于同一台局域网,要么使用交叉网线(这种网线一般用不到,所以不好找),要么参考这个办法的方法2的第四和第五个步骤
其实,绕来绕去,就是要让两台电脑能处于同一个网段下面,不管是连接同一个路由器还是用网线直连,目的都是这个。
PS的一些东西
在配置文件中,有这样一行
charset gbk;
因为我是在windows内进行的演示,不用gbk的话,遇到中文名的文件会乱码,如果是linux系统的话,需要删除这一行或者把gbk改成utf-8。
并且,nginx不能放在含中文的目录下面,Dectory_add也不能是含有中文或者空格的目录。