在Windows Server上启用Webdav
为什么要用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那边访问一下,确认正常