win10/linux一键搭建webdav服务和公网访问教程

发布于 2022-12-17  1522 次阅读


目前常规的win10搭建webdav服务一般是通过开启内置IIS服务的方式来进行,操作步骤多,而且在我自己的电脑上搭建好之后,在其它电脑上浏览器可以访问,但rclone或者windows内置的映射网络驱动器都挂载不上 = =。

本篇文章中使用了tfcenter这个工具来进行搭建,无需安装,下载软件后一键运行就自动搭建好了,同时支持在win10和linux上进行部署,方便快捷。再通过frp来设置下内网穿透就可以进行公网访问和挂载~

tfcenter作者CSDN地址:tfcenter的博客_CSDN博客

工具

部署流程

webdav搭建

下载上方工具内的tfcenter绿色版并解压,目录结构如下:
image.png

windows

进入windows系列对应目录,直接运行tfcenter.exe,出现提示启动成功,应用已最小化就完成了启动。

此时默认用户名admin,密码tf12345678。

如果遇到服务启动失败,请关闭防火墙和windows defender,并尝试手动运行同目录下的tfcenter-service.exe

右击电脑右下角的最小化图标,弹出菜单后选择打开网页进入设置页面。

image.png

用户管理-用户配置界面修改现有用户密码或添加用户

image.png

webdav管理页面,可以修改需要使用的端口与协议,启用的用户和可以访问的目录,是否只读等。

image.png

设置好后,根据你设置的协议和端口号访问协议://127.0.0.1:端口号,出现如下页面就说明部署成功了。

如果你有公网IP的话,这个时候在其它电脑浏览器上访问协议://你的公网IP:端口号,登录后就可以访问文件了,需要挂载的话直接跳过下面的内网穿透部分看最后一节。

image.png

linux

linux部署流程类似,进入linux系列(centos7&ubuntu18等)文件夹,运行tar -xzvf tfcenter-linux-v2.0.5.tar.gz解压文件,然后cd tfcenter-linux进入文件夹。

执行 ./tfcenter(需要保持终端不关闭)或者nohup ./tfcenter & (后台运行,可以关闭终端),这时也就完成启动了。

查找管理Web的端口号 netstat -pan | grep tfcenter  默认是8866。

如果有图形化界面的话,直接打开浏览器访问127.0.0.1:管理后台端口号进入管理后台。

没有图形化界面的话,查看下linux电脑的IP,在另一台内网电脑上访问对应IP:管理后台端口号进入管理后台。此时默认用户名admin,密码tf12345678。

后续设置请参考上面的windows部分教程即可。

注意:需要放行对应的管理后台端口号和选择的webdav服务的端口号,负责无法访问。命令参考sudo firewall-cmd --zone=public --add-port=80/tcp --permanent,将80修改为你需要放行的端口。

frp内网穿透

一般情况下,目前电脑都是内网IP,并不能直接公网访问,这时候就需要内网穿透了。我这里是使用frp,借助自己的云服务器来进行搭建,你也可以使用公共frp服务,花生壳,ngrok或者cpolar等工具。

tfcenter自己也带端口映射实现穿透,但这需要暴露一个自己服务器的公网端口,不太安全,所以后面选择frp的stcp模式进行穿透。

服务端配置

前往frp release版本地址Release v0.45.0 · fatedier/frp (github.com),选择对应的版本下载到服务器内。

执行如下命令

tar -zxvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64/
vi frps.ini

在vim界面修改配置文件如下所示:

[common]
# frp监听端口,默认是7000,需要放行
bind_port = 7000
# 授权码,请使用强密码
token = 1234abcd  # 这个token之后在客户端会用到

# frp管理后台端口,默认7500
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin

保存后退出。

放行端口:

# 添加监听端口
sudo firewall-cmd --permanent --add-port=7000/tcp  #对应上一步的bind_port
# 添加管理后台端口
sudo firewall-cmd --permanent --add-port=7500/tcp  #对应上一步的dashboard_port
sudo firewall-cmd --reload

这时可以通过nohup ./frps -c frps.ini来在后台启动frps了。

如果需要开机自启动和更方便的查看和管理,可以将frps添加到系统服务中使用systemctl管理。

运行sudo vi /usr/lib/systemd/system/frps.service,如下编辑文件:

[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
# 重要:请把这里的/software/frp/frps和/software/frp/frps.ini修改为你自己的路径
ExecStart=/software/frp/frps -c /software/frp/frps.ini
Restart= always
RestartSec=1min

[Install]
WantedBy=multi-user.target

保存退出后,重新加载配置文件

systemctl daemon-reload

如下命令启动/停止/重启,查看状态,设置开机自启/关闭开机自启

# 启动
systemctl start frps
# 停止
systemctl stop frps
# 重启
systemctl restart frps
# 查看服务状态
systemctl status frps
# 设置开机自启
systemctl enable frps
# 关闭开机自启
systemctl disable frps

客户端配置

需要在你部署webdav服务的电脑和需要访问服务的电脑上都配置客户端

部署webdav服务的电脑上下载frp,如下编辑frpc.ini文件:

[common]
# 你的frp服务端的公网IP
server_addr = XXX.XXX.XXX.XXX
# 你的frp服务端的监听端口,即frps.ini里的bind_port
server_port = 7000
# 对应frps.ini里的token
token = 1234abcd

[webdav]
# 连接类型,选择stcp
type = stcp
# 连接密钥,请使用强密码,最好不要和上面的token重合
sk = abcdefg
# 本机环回地址
local_ip = 127.0.0.1
# 本机webdav服务的端口,也就是刚才在tfcenter管理后台里设置的端口
local_port = 8900

需要访问webdav服务的电脑上下载frp,如下编辑frpc.ini文件:

[common]
# 你的frp服务端的公网IP
server_addr = XXX.XXX.XXX.XXX
# 你的frp服务端的监听端口,即frps.ini里的bind_port
server_port = 7000
# 对应frps.ini里的token
token = 1234abcd

[webdavvisitor]
# 连接类型,选择stcp
type = stcp
# 连接角色为访问者
role=visitor
# 需要连接的服务的名字,一定要对应
server_name=webdav
# 连接密钥,需要和刚才的sk一致
sk = abcdefg
# 本机环回地址
bind_addr=127.0.0.1
# 本地访问端口地址,用于访问服务,可以随便选择一个没有被占用的
bind_port=6000

在两台客户端上都使用.\frpc.exe -c frpc.ini(windows系统)或者nohup ./frpc -c frpc.ini(linux系统)来启动客户端即可,注意windows的话运行完毕不要关闭终端。

启动完成后,在需要访问服务的电脑浏览器中进入127.0.0.1:本地访问端口,输入用户名和密码就已经可以访问了。

将webdav挂载为本地磁盘

每次在浏览器内访问显然是不方便的,我们可以将webdav服务挂载为本地磁盘进行使用,可以使用windows自带的映射网络驱动器,rclone或者raiddrive等工具进行挂载。

如果不想下载软件的话,可以直接用windws自带的映射网络驱动器,简单好用。

先参考Windows下WebDAV映射网络驱动器若干问题 -博客园 修改注册表,使得挂载可以支持http协议和大文件复制。

然后打开资源管理器,点击映射网络驱动器,在弹出的窗口内输入你的访问地址,部署端有公网IP的话就是http(s)://公网IP:webdav端口,通过内网穿透的话,参考上面的frp部署的话就是http(s)://127.0.0.1:本地访问端口

点击连接后,输入webdav的用户名和密码就可以了。

image.png