目前常规的win10搭建webdav服务一般是通过开启内置IIS服务的方式来进行,操作步骤多,而且在我自己的电脑上搭建好之后,在其它电脑上浏览器可以访问,但rclone或者windows内置的映射网络驱动器都挂载不上 = =。
本篇文章中使用了tfcenter这个工具来进行搭建,无需安装,下载软件后一键运行就自动搭建好了,同时支持在win10和linux上进行部署,方便快捷。再通过frp来设置下内网穿透就可以进行公网访问和挂载~
tfcenter作者CSDN地址:tfcenter的博客_CSDN博客
工具
部署流程
webdav搭建
下载上方工具内的tfcenter绿色版并解压,目录结构如下:
windows
进入windows系列对应目录,直接运行tfcenter.exe
,出现提示启动成功,应用已最小化
就完成了启动。
此时默认用户名admin,密码tf12345678。
如果遇到服务启动失败,请关闭防火墙和windows defender,并尝试手动运行同目录下的tfcenter-service.exe
。
右击电脑右下角的最小化图标,弹出菜单后选择打开网页
进入设置页面。
在用户管理-用户配置
界面修改现有用户密码或添加用户
在webdav管理
页面,可以修改需要使用的端口与协议,启用的用户和可以访问的目录,是否只读等。
设置好后,根据你设置的协议和端口号访问协议://127.0.0.1:端口号
,出现如下页面就说明部署成功了。
如果你有公网IP的话,这个时候在其它电脑浏览器上访问协议://你的公网IP:端口号
,登录后就可以访问文件了,需要挂载的话直接跳过下面的内网穿透部分看最后一节。
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等工具进行挂载。
- rclone的挂载方法请参考:Clone 挂载Webdav
- raiddrive请参考: RaiDrive通过WebDAV挂载阿里云盘
如果不想下载软件的话,可以直接用windws自带的映射网络驱动器
,简单好用。
先参考Windows下WebDAV映射网络驱动器若干问题 -博客园 修改注册表,使得挂载可以支持http协议和大文件复制。
然后打开资源管理器,点击映射网络驱动器
,在弹出的窗口内输入你的访问地址,部署端有公网IP的话就是http(s)://公网IP:webdav端口
,通过内网穿透的话,参考上面的frp部署的话就是http(s)://127.0.0.1:本地访问端口
。
点击连接后,输入webdav的用户名和密码就可以了。
Comments NOTHING