jjzjj

【私有云】 Windows IIS搭建webdav服务实现公网文件共享「内网穿透」

小威要向诸佬学习呀 2023-04-13 原文

文章目录

前言

常用的文件共享有三种:FTP、Samba、WebDAV。FTP虽然简单方便、容易部署,但它的的传输效率低、安全性不佳,目前并不推荐使用。SMB使用的是445端口,因为安全原因,445端口可能会被封掉,所以SMB在内网中的应用会受限。

而WebDAV是基于HTTP的共享协议,用户可以使用用户名和密码来访问存储资源,可供多个用户共享文件。并且,在windows上,我们可以通过系统自带的IIS服务来启用搭建webdav,并做内网穿透,实现在公网下的文件共享,搭建私有云服务。

本文使用的是WIN10 专业版。

视频教程

https://www.bilibili.com/video/BV15G4y1S7Ud/?spm_id_from=333.999.0.0

1. 安装IIS必要WebDav组件

1.1 打开控制面板,查看方式改为类别,进入程序——启用或关闭Windows功能

1.2 在Internet Information Services(IIS)中勾选IIS管理控制台Windows身份验证管理服务WebDAV发布目录浏览,然后确定安装。

1.3 完成安装后,在“Windows管理工具”中找到IIS管理器并打开。

1.4 在网站,按右键添加网站

1.5 为网网起个名,并且选择一个物理路径,这里,我起名称为webdav,路径选择:D:\WebDav(选择想要共享的文件路径),端口号,我们设置为8090

1.6 选中webdav站点,并进入它的WebDAV创作规则

1.7 启用创作规则

1.8 添加创建规则

1.9 选择webdav站点,进入身份认证

1.10 启用基本身份验证,禁用Windows身份验证匿名身份验证

1.11 选中“webdav”,进入目录浏览

1.12 点击启用

1.13 重启webdav站点

2. 局域网浏览器访问测试

在浏览器中,输入http://127.0.0.1:8090/,就可以访问WebDav服务中的文件内容了。

输入windows账号密码登录

3. cpolar内网穿透

测试在局域网内访问成功后,接下来用cpolar做内网穿透,将其发布到公网上,实现在外也可以访问到家里/公司的webdav服务,进行文件共享,无需公网IP,也不需要设置路由器。

3.1 安装cpolar内网穿透

cpolar官网:https://www.cpolar.com/

在cpolar官网注册一个账号,并下载安装windows版本的客户端

3.2 登录cpolar web UI管理界面

cpolar内网穿透安装完成后,打开浏览器访问127.0.0.1:9200,并用cpolar邮箱账号登录。

3.2 创建隧道

登录到cpolar web UI管理界面后,点击左侧的隧道管理——创建隧道,我们来创建一条隧道将本地webdav服务映射到公网上。

  • 隧道名称:可自定义填写,注意不要与已有的隧道名称重复
  • 协议:选择tcp协议
  • 本地地址:8090
  • 端口类型:先按默认选择随机临时端口
  • 地区:按默认选择或者也可以选择China其他地区

点击创建

3.3 获取公网地址

隧道创建成功后,点击左侧的状态——在线隧道列表,我们可以看到,已经生成了一个TCP随机隧道,将其复制下来,接下来测试公网远程访问。

4. 公网远程访问

4.1 浏览器访问测试

我们在浏览器中,粘贴隧道地址,因为是从外网访问,会提示账号及密码进行身份验证。我们使用windows账号及密码登录。

4.2 映射本地盘符访问

在应用之前需要我们需要先修改注册表,需要修改注册表使得WIN10同时支持http和https,否则无法映射WebDAV网络驱动器的。因为如果WebDAV不是https的,win10默认是添加不上的,默认只支持https。

点击左下角开始菜单栏,右键点击运行

输入regedit,点击确定即可打开注册表编辑器

路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

找到BasicAuthLevel后,右键点击修改,将数值数据改成2,并点击确定,修改成功后,重启电脑

打开文件夹,点击此电脑,点击上方的计算机——映射网络驱动器

输入刚刚通过cpolar映射本地8090端口所生成的公网地址,注意需要以http:// 格式填写

连接中

填写windows账号密码进行连接

连接成功,可以直接访问资源

4.3 安装Raidrive客户端

当然,我们还可以通过WebDav客户端,将远程服务器虚拟机本地盘符【无需修改注册表数据】,这里我们用Raidrive公户来实现。

Raidrive客户端下载地址:https://www.raidrive.com/download

安装Raidrive成功后,连接WebDav服务器

连接成功

5. 配置固定公网地址

目前测试使用的是随机TCP隧道创建的链接,所生成的公网地址会在24小时内会变化,如果需要长期使用,我们可以将其配置为固定的公网TCP地址,同时提高带宽。

5.1 保留固定TCP端口地址

配置保留固定的TCP端口地址,需要将cpolar套餐升级至专业版或以上才支持【登录cpolar官网后台——套餐

登录cpolar官网后台,点击左侧的预留,我们来为webdav保留一个固定的TCP端口地址

  • 地区:选择China或者China VIP
  • 描述:即备注,可自定义填写

点击保留

地址保留成功后,系统会返回一个固定的TCP端口地址,将其复制下来

5.2 配置固定TCP端口地址

登录cpolar web ui管理界面http://localhost:9200/,点击左侧的隧道管理——隧道列表,找到wwebdav隧道,点击右侧的编辑

修改隧道信息:

  • 端口类型:选择固定TCP端口
  • 预留的TCP地址:填入刚刚所保留成功的固定TCP端口地址

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经变成了固定的公网TCP端口地址。

6. 使用固定公网TCP端口地址远程连接

6.1 浏览器访问

在浏览器上访问固定公网TCP端口地址,测试正常。

6.2 映射本地盘符

使用固定公网tcp端口地址连接

连接成功

6.3 通过RaiDrive客户端访问

打开RaiDrive,修改一下之前的虚拟盘符的链接,将其改为我们配置成功的公网TCP端口地址,并点击连接即可。

图书推荐

【内容简介】
 Git是一款让人一开始觉得很容易学,但却很难精通的工具。本书除了介绍Git的相关知识外,还会模拟各种常见的状况,让读者知道应该在什么时候使用什么指令。
  《Git从入门到精通》共分11个章节,1~3 章介绍安装工具及环境,对于已经安装完成的读者可直接从第4章开始阅读。第5章介绍Git基本的使用方式,虽然难度不高,但却是整个Git系统的基础。第6章介绍Git中常用的分支功能以及使用情境,第7~9章则是介绍如何修改现有的历史记录、使用标签,以及如何应对其他常见的状况。
  前面的内容都是在自己的计算机上就可以完成的,从第10章开始介绍如何将自己计算机里的记录推一份到线上(GitHub)。*后一章(第11章)介绍团队开发时可能会使用的开发过程Git Flow。
  市面上的参考书籍或网络教程大多是教大家如何通过终端机指令来学习Git,这让不少想学习Git的新手打了退堂鼓。本书除了教大家如何在终端机视窗中输入Git指令,还搭配了图形界面工具,缓和了读者的学习曲线,让读者更容易上手。

评论区留言:人生苦短,我用cpolar,抽取两名幸运观众。

京东自营购买链接:点击跳转

有关【私有云】 Windows IIS搭建webdav服务实现公网文件共享「内网穿透」的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  3. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  4. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  5. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  6. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  7. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  8. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  9. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  10. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

随机推荐