为什么要用Webdav

首先,你得知道我们平常用的SMB文件共享服务用的445端口,一般是不对外开放的。云服务器也是如此。而webdav可以通过http服务来访问你的文件,甚至我在家里用Cloudflare Tunnel都可以穿出去访问,非常地方便。

所以对于我家里的小霸王服务器,自我换成Windows Server后,需要在外访问的话就需要打开Webdav

安装Webdav服务

本次使用的是Windows Server 2022

首先先打开Windows Server自带的服务器管理器,选择添加角色和功能,在服务器角色选项卡添加web 服务器(IIS)

然后跳到功能选项卡,勾选Webdav重定向服务

再在下面Web 服务器角色(IIS)选项卡下的角色服务添加Windows 身份验证WebDAV 发布

然后点下一步,把这些功能装上,这个过程可能有点长,装好了记得重启一下,记得先保存一下工作(把虚拟机啥的挂起一下)

添加WebDAV服务器

重启完了以后,我们还是打开服务器管理器,在右上角的工具里面找到IIS工具

然后添加一个网站,物理路径就是你想要共享的文件夹位置,记得改下端口(当然你不介意用80的话可以不改)

设置好了点确定,然后双击我们刚刚添加的网站,找到WebDav创作规则

然后在右侧添加一个创作规则,具体配置按需配置,你也可以按照我这么选,然后点确定

设置身份验证

既然是WebDAV,那肯定得加上身份验证

我们双击左边树状图里我们的网站,然后选择身份验证

如果你需要匿名登录你就保持匿名为启用(注意做好目录限制),然后把第二个Windows 身份验证给打开

开启目录浏览

再次双击左边的树状图里的网站,找到目录浏览,点击右边的启用

搞定了以后,我们双击树状图里我们的网站,在右边重启一下我们的网站

测试网站

重启了以后,我们在浏览器里访问我们的网址(IP地址:端口),如果弹出像我这样的身份验证页面(或者直接不弹,直接看到了目录,取决于你是否开了匿名访问),登陆完进去看到目录树,就是成功了

如果出现了500错误,然后详细信息里面写由于权限不足而无法读取配置文件的话,你就需要右键你网站的目录,选择安全,把你的用户加进去

设置MINE类型

如果你不设置MINE类型的话,会导致你点一个非主流后缀名的文件,出现404(注:web.config文件本身请求就会404,不是MINE问题)

我们还是去到IIS,在自己的网站配置下找到MINE类型这个选项

在右边点添加,然后按我这么填(一劳永逸)

上面填.*,下面填application/octet-stream

然后重启一下网站就可以了

使用Cloudflare Tunnel映射

首先你电脑得装Cloudflared,关于这东西的用法在这里不多讲,这里假设你已经装好了

我们去到Zero Trust,然后去到Tunnel

找到自己的服务器,进去后在Public Hostname添加一个网站,可以按我这么填(上面域名啥的就填自己的了)

然后我们再测试从Cloudflare的Tunnel那边访问一下,确认正常