草庐IT

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

呆呆敲代码的小Y 2024-01-02 原文

文章目录

1. 前言

通过互联网传输文件,是互联网最重要的应用之一,无论是网上观看的视频、图片、小说,甚至协同办公和商业文件传递,都是这项应用的延伸。而之前火热一时的云存储概念,就数据存储服务器加互联网传输形成的。不过,云存储接连爆出事故,让公有云存储服务备受质疑。实际上,我们可以使用一些已有的软件组合,轻松达成建立个人私有的云存储服务器,让我们能随时随地访问到位于内网的数据服务器上的数据。今天,笔者就为大家介绍,如何使用Cpolar内网穿透+eXtplorer,构建专属的私人云存储空间。

2. eXtplorer网站搭建

eXtplorer是一款基于php应用的文件管理器,通过web页面进行操作,操作方式与本地电脑上的资源管理器很像,其主要作用是在本地电脑与服务器之间传送文件,并且能和本地电脑的资源管理器一样,对文件和目录进行编辑、复制、移动和删除等操作,甚至还能修改文件的权限属性。与此同时,eXtplorer的安装而已非常简单,有效降低了我们自己搭建文件服务器的难度。现在,就让我们开始吧。

2.1 eXtplorer下载和安装

首先,我们需要在本地电脑上部署一个eXtplorer。我们可以在eXtplorer的官网页面,轻松找到eXtplorer网页程序的下载位置。

下载完成后,我们将eXtplorer的压缩包解压备用。由于eXtplorer是网页程序,因此我们需要将其部署到本地电脑的web环境中。在这里,笔者使用的是phpstudy(小皮面板)来构建网页环境。因此将eXtplorer的网页安装文件,粘贴到phpstudy的www文件夹下。

接着我们打开phpstudy(小皮面板),在“网站”页面,点击左上的“创建网站”按钮,对打算建立的eXtplorer网页进行设置。设置的内容并不复杂,主要包括

1. 域名 – 这里的域名是指本地电脑访问eXtplorer网页时的域名;
2. 端口 – 即eXtplorer网页的输出端口;
3. 根目录 – 也就是eXtplorer网页程序存放在本地电脑的位置
4. 创建环境 – 即使用哪些支持程序,如FTP传输、SQL数据库等
5. PHP版本 – 也就是使用哪个版本的PHP运行eXtplorer网页(这里需要注意,eXtplorer必须使用低版本的php程序,笔者使用了php5.4版本,否则网页会报错)

完成以上内容的设置后,就可以点击页面下方的确认按钮,创建一个eXtplorer网页的运行环境。接着我们点击该网页条目右侧的管理按钮,点选打开网页,测试是否能正常访问eXtplorer网页。

需要注意的是,eXtplorer必须使用低版本的php程序,笔者使用了php5.4版本,同时要在“php扩展”选项中,勾选“tcp”功能。否则两者都会导致eXtplorer运行报错。

2.2 eXtplorer网页测试

创建好eXtplorer网页后,我们就可以从phpstudy中打开网页(也可以在浏览器地址栏中,输入之前设置好的域名:端口号访问)。只要网页设置正确,我们就能打开eXtplorer的登录页面。

只要输入默认的登录名和密码(登录名“admin”,密码“admin”),就能进入eXtplorer的主界面。不过默认登录名和密码并不安全,因此登录eXtplorer后,网页会提示我们立即修改登录名和密码。

2.3 cpolar的安装和注册

完成eXtplorer测试并能正确登录后,我们就可以转入cpolar的安装。与eXtplorer一样,cpolar的安装注册同样简单易行,甚至还要更简单。我们可以直接在cpolar的官网页面(www.cpolar.com)找到“下载”按钮。

笔者使用的是Windows操作系统,因此选择Windows版本进行下载。

Cpolar下载完成后,解压下载好的压缩文件,双击.msi文件,即可自动执行安装程序。接着只要一路“Next”就能完成安装。

由于cpolar会为每个用户创建独立的数据隧道,并辅以用户密码和token码保证数据安全,因此我们在使用cpolar之前,需要进行用户注册。注册过程非常简单,只要在cpolar主页右上角点击“用户注册”,在注册页面填入必要信息,就能完成注册。

3.本地网页发布

到这里,我们完成了本地eXtplorer网页的搭建,并安装了cpolar内网穿透程序,接下来我们就可以使用cpolar,创建一个能够连接本地测试页面的公共互联网地址,让我们能在公共互联网下访问到本电脑的eXtplorer网页。

3.1.Cpolar云端设置

由于私人云盘服务器有可能随时随地需要访问,但cpolar免费版的数据隧道会每24小时重置一次。为避免每天重连设置的麻烦,我们可以选择升级cpolar至vip版,获得能长期稳定存在的内网穿透数据隧道。

接下来,我们继续进行穿透内网工作,要达到内网穿透的目的,需要先登录cpolar的官网,并在用户主页面左侧找到“预留”按钮,并点击进入cpolar的数据隧道预留页面。

Cpolar会根据我们在cpolar云端设置的信息,生成一个公共互联网地址(可看做数据隧道的入口),由于此时这个地址没有连接本地的软件输出端口,因此也可以看做是空白的数据隧道。

在预留页面,可以看到很多种可保留的数据隧道,这里我们选择“保留二级子域名”栏位(eXtplorer是以web网页形式运行)。

在“保留二级子域名”栏位,要进行几项信息的简单设置,即:

“地区”(服务器所在区域,就近选择即可)
“二级域名”(会最终出现在生成的公共互联网地址中,作为网络地址的标识之一)
“描述”(可以看做这条数据隧道的描述,能够与其他隧道区分开即可)。

完成这几项设置后,就可以点击右侧的“保留”按钮,将这条数据隧道保留下来。

当然,如果这条数据隧道不打算再使用,还可以点击右侧的“x”将其轻松删除,节约宝贵的隧道名额。

3.2.Cpolar本地设置

完成cpolar云端的设置,并保留了空白数据隧道后,我们回到本地的cpolar客户端,将云端生成的空白数据隧道与本地的测试页面连接起来,让我们能在公共互联网上访问到本地的测试页面。

在本地打开并登录cpolar客户端(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式)。

点击客户端主界面左侧“隧道管理”项下的“创建隧道”按钮,进入本地隧道创建页面(如果要创建没24小时重置地址的临时数据隧道,可直接在此进行设置,不必再cpolar官网设置空白数据隧道)。

在这个页面,同样需要进行几项信息设置,这些信息设置包括:

隧道名称 – 可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可;
协议 – 由于的测试页面是网页,因此选择http协议;
本地地址 – 本地地址即为本地网站的输出端口号,而默认输出端口为,因此这里也填入82;
域名类型 – 在这个例子中,我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,该例为“eXtplorerweb”。如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址;
地区 – 与cpolar云端预留的信息一样,我们依照实际使用地填写即可;

完成这些设置后,就可以点击页面下方的“创建”按钮,将cpolar云端的空白数据隧道与本地的支付测试页面连接起来,生成可以在公共互联网访问本地eXtplorer页面的数据隧道。内网穿透数据隧道生成后,cpola会自动跳转到“隧道列表”页面。

我们可以在“隧道管理”项下的“隧道列表”页面中,对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,最这条数据隧道的信息进行修改。

4.公网访问测试

最后,我们点击左侧“状态”项下的“在线隧道列表”按钮,就能找到这个页面的公共互联网地址,将这个地址粘贴到浏览器中,就能看到本地页面,即达成了本地页面发布到公共互联网上的目的。

5.结语

当然,cpolar的内网穿透功能并不是只能发布eXtplorer网页,我们还可以在本地电脑上部署其他类型的网页如博客、音乐网站、视频网站、OA系统或者是其他类型的网站或网页,让我们能通过公共互联网,访问到本地电脑(局域网内电脑)上的信息资料,然我们的个人电脑变身成为私有服务器。

有关【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  3. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  4. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  5. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  6. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  7. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  8. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  9. Ruby 写入和读取对象到文件 - 2

    好的,所以我的目标是轻松地将一些数据保存到磁盘以备后用。您如何简单地写入然后读取一个对象?所以如果我有一个简单的类classCattr_accessor:a,:bdefinitialize(a,b)@a,@b=a,bendend所以如果我从中非常快地制作一个objobj=C.new("foo","bar")#justgaveitsomerandomvalues然后我可以把它变成一个kindaidstring=obj.to_s#whichreturns""我终于可以将此字符串打印到文件或其他内容中。我的问题是,我该如何再次将这个id变回一个对象?我知道我可以自己挑选信息并制作一个接受该信

  10. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

随机推荐