木星连珠 發表於 2022-1-17 14:43:00

Debian安装WebDAV

<p> 参考地址:Linux/Win/OMV5 安装WebDAV服务 - 轶哥 (wyr.me),自己用的是二进制安装</p><p><strong>&nbsp;&nbsp;&nbsp; 此安装方法通用于所有*unix系统、Windows系统。</strong></p><p>&nbsp;&nbsp;&nbsp; 在OMV5(openmediavault)中安装WebDAV服务器端的方法不同于旧版本。在OMV5之前的版本,可以直接在管理界面的“插件”中安装并启用WebDAV服务,但是新版本去除了此插件,需要手工进行安装。目前相关资料较为匮乏,网上的WebDAV镜像质量也参差不齐。</p><p>&nbsp;&nbsp;&nbsp; 通过对比目前较为受欢迎的WebDAV服务器端软件,https://github.com/hacdias/webdav 较为稳定(唯一遗憾的是,此仓库作者提供的Docker镜像竟然在Docker Hub中排名非常靠后,以至于完全搜不到)。</p><p>&nbsp;&nbsp;&nbsp; 此开源项目是使用GoLang开发的,因此兼容性非常强悍,仅作者预编译针对不同操作系统和CPU架构的二进制文件就有34种,可以说涵盖了几乎所有运行环境。</p><p>&nbsp;&nbsp;&nbsp; 作者默认使用此软件的都是专业选手,因此没有手把手的文档可以参考。这对于非程序员甚至非GoLang程序员不太友好。</p><h3>&nbsp;&nbsp;&nbsp; 配置文件</h3><p>&nbsp;&nbsp;&nbsp; 作者给出的配置参考已经非常详细,但需要注意的是,你需要<strong>全部复制</strong>并做出对应修改,程序中并没有做默认值合并。注释中的<code>will be merged</code>仅仅针对当前配置文件下文的用户默认值。</p><h3>&nbsp;&nbsp;&nbsp; 二进制安装</h3><p>&nbsp;&nbsp;&nbsp; 访问https://github.com/hacdias/webdav/releases/,对应下载作者预编译的二进制版本。</p><p>&nbsp;&nbsp;&nbsp; 参考Systemd Example,注册为*unix服务,实现开机自动启动。此步骤有疑问的话,搜索对应<code>操作系统</code>+<code>systemd</code>关键词。</p><p>&nbsp;&nbsp;&nbsp; 需要特别注意的是:</p><ul><li>二进制文件所在的执行目录需要和Systemd配置文件中的<code>ExecStart</code>目录保持一致。 </li><li>作者说明了支持JSON, YAML and TOML配置文件格式,因此你需要加上相应后缀,否则配置文件不生效。例如JSON添加<code>.json</code>、YAML添加<code>.yml</code>。</li></ul><p>&nbsp;&nbsp;&nbsp; OMV5(Debian)中二进制文件安装例子(解压提示路径错误,webdav解压到、/usr/bin目录就行):</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 255, 1)">wget</span> https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/hacdias/webdav/releases/download/v4.1.0/linux-amd64-webdav.tar.gz</span>
<span style="color: rgba(0, 0, 255, 1)">tar</span> -zxvf linux linux-amd64-webdav.<span style="color: rgba(0, 0, 255, 1)">tar</span><span style="color: rgba(0, 0, 0, 1)">.gz
vim </span>/etc/systemd/system/webdav.service</pre></div><p>webdav.service(注意确保路径<code>/opt/webdav.config.yml</code>下的配置文件已存在):</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 0, 1)">
Description</span>=<span style="color: rgba(0, 0, 0, 1)">WebDAV server
After</span>=<span style="color: rgba(0, 0, 0, 1)">network.target


Type</span>=<span style="color: rgba(0, 0, 0, 1)">simple
User</span>=<span style="color: rgba(0, 0, 0, 1)">root
ExecStart</span>=/usr/bin/webdav --config /opt/<span style="color: rgba(0, 0, 0, 1)">webdav.config.yml
Restart</span>=on-<span style="color: rgba(0, 0, 0, 1)">failure


WantedBy</span>=multi-user.target</pre></div><p><code>/opt/webdav.config.yml:</code></p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 0, 1)"># Server related settings
address: </span><span style="color: rgba(128, 0, 128, 1)">0.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span><span style="color: rgba(0, 0, 0, 1)">
port: </span><span style="color: rgba(128, 0, 128, 1)">8080</span><span style="color: rgba(0, 0, 0, 1)">
auth: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
tls: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
prefix: </span>/<span style="color: rgba(0, 0, 0, 1)">

# Default user settings (will be merged)
scope: .
modify: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
rules: []

cors:
enabled: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
credentials: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">

users:
</span>-<span style="color: rgba(0, 0, 0, 1)"> username: admin
password: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{bcrypt}$2a$12$NRf4qBRbBJ0/XR56S7UwaOWzlLIs8fTRDILiC02BGCbbol2g/dw2i</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
scope: </span>/<span style="color: rgba(0, 0, 255, 1)">date</span><span style="color: rgba(0, 0, 0, 1)">
modify:   </span><span style="color: rgba(0, 0, 255, 1)">true</span></pre></div><p>设置开机启动并启动服务:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre><span style="color: rgba(0, 0, 0, 1)">systemctl enable webdav
systemctl start webdav</span></pre></div><h3>Docker安装</h3><p>使用SSH连接后,执行命令:</p><div class="cnblogs_code" style="padding: 5px; border: 1px solid rgba(204, 204, 204, 1); border-image: none; background-color: rgba(245, 245, 245, 1)"><pre>docker run --restart always --name=webdav -<span style="color: rgba(0, 0, 0, 1)">itd \
</span>-v /export:/<span style="color: rgba(0, 0, 0, 1)">data \
</span>-v /opt/webdav.config.yml:/opt/<span style="color: rgba(0, 0, 0, 1)">webdav.config.yml \
</span>-p <span style="color: rgba(128, 0, 128, 1)">8081</span>:<span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)"> \
hacdias</span>/webdav:v4.<span style="color: rgba(128, 0, 128, 1)">1.0</span> --config /opt/webdav.config.yml</pre></div><p>命令内容一目了然了,相应配置文件参考:</p><pre><code># Server related settings
address: 0.0.0.0
port: 80
auth: true
tls: false
prefix: /

# Default user settings (will be merged)
scope: .
modify: true
rules: []

cors:
enabled: false
credentials: false

users:
- username: admin
    password: "{bcrypt}$2a$12$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    scope: /data

</code></pre><p><code>scope</code>即为根目录本地映射地址。<code>password</code>可以用明文,也可以加密,Bcrypt密码在线生成地址: https://bcrypt-generator.com/。</p><p>配置文件同样需要注意后缀问题。</p><h3>&nbsp; 关于内网穿透</h3><p>为NAS搭建内网穿透有很多种方案。</p><p>针对SSL证书部署,可以采用:</p><ol><li>直接在配置文件中设置<code>tls</code>为<code>true</code>并配置相应的SSL证书地址。 </li><li>配置文件中保持<code>tls</code>为<code>false</code>,在FRP或其它内网穿透工具中配置<code>HTTPS</code>并加载相应证书。 </li><li>配置文件中保持<code>tls</code>为<code>false</code>,在FRP或其它内网穿透工具中仅穿透TCP协议(可配置加密和压缩),在公网服务器(FRP或其它内网穿透工具所在的服务器)中配置Nginx反向代理搞定证书问题。</li></ol><p>强烈推荐第三个方案,简单也安全。</p><p>关于Nginx反向代理的关键配置信息,此<code>webdav</code>服务端作者<code>hacdias</code>已经在README.md中注明。</p><h3>其它</h3><p>请大家不要咨询在OMV中<code>如何安装Docker</code>或<code>如何在Portainer中安装webdav</code>之类的问题。此类问题太过于基础(例如后者,可以先进SSH直接执行命令,然后回到<code>Portainer</code>中看<code>Container</code>配置发生了什么变化)。</p><p>推荐大家使用<code>Mountain Duck</code>这样的工具挂载带有SSL证书的<code>WebDAV</code>地址,可以实现和<code>OneDrive</code>或<code>Dropbox</code>一样的智能同步功能(<code>始终在此设备上保留</code>、<code>释放空间</code>)。</p><br><br>
来源:https://www.cnblogs.com/wxfy/p/15813425.html
頁: [1]
查看完整版本: Debian安装WebDAV