【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?

这篇具有很好参考价值的文章主要介绍了【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通过 frp 内网穿透将闲置手机暴露至公网,并使用 caddy 搭建 webdav 服务,客户端使用 rclone 实现 webdav 挂载,达到类坚果云的效果。

要有公网 IP!要有公网 IP!要有公网 IP!

前置条件

  • 公网 IP 或者一台 VPS,这里我用的是阿里轻量,新加坡(没有特殊需求还是建议选国内)。
  • Android 手机

termux 配置

termux 是 Android 手机可用的终端管理器,功能强大,这里我们使用它来完成服务端(闲置手机)的配置。

首先将仓库源更换为国内速度更客观的 USTC,输入 termux-change-repo 后出现下图界面:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

空格选择,回车确认。

然后更新默认的包管理器和已安装的包,防止部分包过旧无法使用,输入:

pkg update
pkg upgarde

开启存储权限,输入 termux-setup-storage 并同意权限申请,这一步是为了访问外部存储并将部分公用文件夹映射到 termux 的私有目录,所以不要手动开启 termux 的存储权限:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

开启后通过 ls 命令列举根目录的文件夹会出现 storage:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

安装 vim:

pkg install vim

要注意 termux 对它内置的所有文件都进行了跟踪校验,如果你的手机有 root 并在外部文件管理器对 termux 内置的文件进行了编辑,之后所有在 termux 内对该文件的操作都会报权限不足的错误。

frp 内网穿透配置

frp 是开源的反向代理工具,通过在服务器中部署 frps,在内网机器中部署 frpc 可以实现内网穿透的功能,frps 会将访问服务器的流量转发到部署了 frpc 的内网机器上。

我们下载机器 CPU 对应的版本,这里我下载 linux_arm64:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

右键复制链接,在服务器中通过 wget 命令下载:

wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_arm64.tar.gz

在闲置手机中,我们先将文件下载到 /storage/emulated/0/Download/ 目录下,此时 termux 内的 storage/downloads 下也会出现对应的文件:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

通过 mv 命令移动到私有目录:

mv ~/storage/downloads/frp_0.54.0_linux_arm64.tar.gz ~/frp

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

两端对压缩文件进行解压:

tar -zxvf /path/to/frp

cd 到解压出来的目录中,结构应该如下:

  • LICENSE 开源协议
  • frpc 内网客户端机器使用,二进制可执行文件
  • frpc.toml 内网客户端机器使用的配置
  • frps 服务器使用,二进制可执行文件
  • frps.toml 服务器使用的配置

frps.toml 配置:

# 用于 frps 和 frpc 通信的 tcp 端口
bindPort = 7000 # 端口可以自定义,服务器防火墙需要放行对应的端口

frpc.toml 配置:

# 服务器公网 IP
serverAddr = "8.8.8.8"
# 用于 frps 和 frpc 通信的 tcp 端口,和 frps 的 bindPort 保持一致
serverPort = 7000

# 代理配置
[[proxies]]
name = "webdav"        # 自定义
type = "tcp"
localIP = "127.0.0.1"
localPort = 8888       # 本地侦听的端口
remotePort = 8888      # 服务器侦听的端口,防火墙需放行

上述的代理配置表示将访问 8.8.8.8:8888 的流量转发到 127.0.0.1:8888

使用 chmod 命令赋予执行权限:

chmod +x path/to/file

启动命令分别是:

./frps -c ./frps.toml
./frpc -c ./frpc.toml

当然也可以配置后台运行:

nohup ./frps -c ./frps.toml &
nohup ./frpc -c ./frpc.toml &

caddy 配置

caddy 是一个像 Apache、nginx 的 web 服务器,我们使用它的 webdav 模块来搭建服务。

下载 CPU 对应的二进制可执行文件:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

将二进制文件移动到 termux 的私有目录中,创建需要等下用的密码:

./caddy hash-password --plaintext yourpassword

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

使用 touch 命令在同级目录创建 caddy 配置文件:

touch Caddyfile

使用 vim 写入以下配置:

{
  order webdav before file_server
}

:8888 # 侦听 8888 端口,frpc.toml 中对应的 localPort
basicauth {
  # 用户名 # 刚刚创建的密码 
  yuanyxh $2a$14$UUqrsAY7ckh2hIbRRq4dPu1K/M9G0K4QTp2j9NE6fvJThuhN4ucG.
}
# 根路径为 /data/data/com.termux/files/home/test 需要自己创建对应的文件夹
root * /data/data/com.termux/files/home/test

route {
  # 重写路径
  rewrite /test /test/
  # 开启 webdav,可访问 /test/ 下的文件
  webdav /test/* {
    # 访问该 webdav 服务的路径 http://8.8.8.8:8888/test
    prefix /test
  }
  # 允许在浏览器中访问
  file_server browse
}

运行 caddy:

./caddy run --config ./Caddyfile

然后就可以访问自己的 webdav 服务了,或者直接在浏览器中访问 http://公网 IP:映射端口/webdav 路径

进程保活

为了防止服务挂掉,我们需要做一层保护,可以使用 termux-services 对我们运行的服务进行守护,做到进程拉起的功能。

安装 termux-services:

pkg install termux-services

创建对应服务的目录:

mkdir -p $PREFIX/var/service/frp/log
mkdir -p $PREFIX/var/service/caddy/log

链接到 termux-services:

ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/frp/log/run
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/caddy/log/run

然后在 $PREFIX/var/service/<pkg>/run 文件中写入启动服务的命令:

# frp
#!/data/data/com.termux/files/usr/bin/sh
path/to/frpc -c path/to/frpc.toml

# caddy
#!/data/data/com.termux.files/usr/bin/sh
path/to/caddy run --config path/to/Caddyfile

最后启动对应的服务:

sv up frp
sv up caddy

rclone 挂载本地文件夹

rclone 是一个用于管理云存储上的文件的命令行程序,我们用它来挂载 webdav 服务到本地。

下载需要的可执行文件:

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

运行:

path/to/rclone config --config=rclone.conf

根据提示输入自己的 webdav 服务器信息,然后就会在 rclone 的同级目录下创建一个 rclone.conf 的配置文件。

继续输入以下命令执行挂载:

path/to/rclone mount test: E:\test --cache-dir %cd%\temp --log-file %cd%\logs\log.txt --allow-other --vfs-cache-mode full --vfs-cache-max-age 72h --vfs-cache-poll-interval 10m  --allow-non-empty

参数:

  • test: E:\test
    • test 是上一步中你创建 webdav 服务时输入的别名,test: 表示 webdav 远程根目录
    • E:\test 是挂载到的本地路径
  • --cache-dir %cd%\temp
    • –cache-dir 是已加载文件的缓存目录
    • %cd%\temp 中的 %cd% 表示程序运行所在目录
  • --log-file %cd%\logs\log.txt
    • –log-file 输出的日志文件
  • --allow-other:允许除 rclone 的其他进程访问
  • --vfs-cache-mode full:vfs 缓存模式,读取文件时进行缓存
  • --vfs-cache-max-age 72h:设置文件缓存允许的最大时间
  • --vfs-cache-poll-interval 3m:轮询检查文件是否有更改
  • --allow-non-empty:允许在非空目录上挂载,windows 中不支持

通过这些设置,只要没有大文件,基本上可以像访问本地文件一样访问 webdav 服务器中的文件了。

最后我们可以通过 vbs 脚本无感知的运行 rclone:

# rclone.vbs
CreateObject("WScript.Shell").Run "cmd /c %cd%\rclone.bat",0
# rclone.bat
rclone.exe mount test: E:\test --cache-dir %cd%\temp --log-file %cd%\logs\log.txt --allow-other --vfs-cache-max-age 72h --vfs-cache-poll-interval 10m --vfs-cache-mode full --allow-non-empty

将 rclone.vbs 的快捷方式放到 C:\Users\[username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 就可以实现开机启动(windows 端)。

扩展

ssh 登录手机

termux 下载 openssh,生成 key ssh-keygen -A,运行 sshd

frpc.toml 添加代理

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8022  # termux 中的 openssh 默认侦听 8022 端口
remotePort = 8044 # 服务器放行 8044 端口

查看用户 whoami,设置密码 passwd,也可以添加私钥,然后用公钥访问。

私有 git 仓库

termux 安装 git,pkg install git,初始化裸仓库 git init --bare

远端 clone 仓库, git clone ssh://username@ip:port/path/to/git

也可以使用 termux 中的 gitea 包来快速搭建完善的私有 git 服务。

远程桌面

电脑开启允许远程协助,并指定允许远程协助的本地用户(需要设置密码),同时运行 frpc 穿透到公网,配置如下:

serverAddr = "8.8.8.8"
serverPort = 7000

# 代理配置
[[proxies]]
name = "remote_desktop"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389       # windows 远程桌面默认侦听的端口是 3389
remotePort = 9833      # 服务器侦听的端口,防火墙需放行

将电脑锁屏(win + L),在另一台客户端中使用远程桌面连接

【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?,前端,android,git

注意:电脑不能进入休眠状态。文章来源地址https://www.toymoban.com/news/detail-858457.html

到了这里,关于【折腾向】闲置手机 + 内网穿透 + caddy + rclone = ?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用手机公网远程访问本地群辉Video Station中视频文件【内网穿透】

    最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 我同事老王最近刚换了新出的iPhone 15 Pro Max,直呼屏幕牛逼,太香了! 但他作为我司摸鱼

    2024年02月02日
    浏览(39)
  • Android Termux安装MySQL,内网穿透实现公网远程访问

    Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身Linux。 MariaDB是MySQL关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL 下开源。开发这个分支的原因之一是:甲骨文公司

    2024年02月05日
    浏览(48)
  • 群晖 NAS WebDAV服务手机ES文件浏览器远程访问【无公网IP内网穿透】

    📱 iOS开发上架主页 在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验,助您在移动应用开发领域取得成功。 📌欢迎访问我们的微

    2024年02月12日
    浏览(49)
  • Android Termux安装MySQL,通过内网穿透实现公网远程访问

    🔥 博客主页 : 小羊失眠啦. 🔖 系列专栏 : C语言 、 Linux 、 Cpolar ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 Android作为移动设备,尽管最初并非设计为服务器,但是

    2024年02月08日
    浏览(52)
  • 超详细!Android Termux上如何安装MySQL,内网穿透实现公网远程访问

    Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身Linux。 MariaDB是MySQL关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL 下开源。开发这个分支的原因之一是:甲骨文公司

    2024年02月08日
    浏览(48)
  • Android Termux安装MySQL,并使用cpolar实现公网安全远程连接[内网穿透]

    Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身Linux。 MariaDB是MySQL关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL 下开源。开发这个分支的原因之一是:甲骨文公司

    2024年02月08日
    浏览(60)
  • Android Termux安装MySQL数据库 | 公网安全远程连接【Cpolar内网穿透】

    转载自cpolar极点云的文章:Android Termux安装MySQL数据库 | 公网安全远程连接【Cpolar内网穿透】 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身Linux。 MariaDB是MySQL关系数据库管理系统的一个复刻,由社区开

    2024年02月01日
    浏览(59)
  • Android Termux安装MySQL数据库并通过内网穿透实现公网远程访问

    Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身Linux。 MariaDB是MySQL关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL 下开源。开发这个分支的原因之一是:甲骨文公司

    2024年02月04日
    浏览(44)
  • 【教程】N2N V3内网穿透、异地组网,包括Win/Linux/Android,包括不同内网实现adb远程连接

    目录 一、背景 二、Linux 配置 并运行 N2N - Supernode (必选) 三、Linux -- 配置 并运行 N2N - 边缘节点配置 Edge(可选步骤) 四、Windows -- 配置 并运行 N2N - 边缘节点配置 Edge (可选步骤) (一)配置 TAP 虚拟网卡 (二)配置 N

    2024年02月21日
    浏览(68)
  • Grass手机注册使用教程,利用闲置手机WiFi带宽赚钱

    Grass是一个Chrome浏览器插件,它将你用不到的带宽分享,并获取额外的奖励,是一种利用流量挂机赚取代币的新概念。 Grass 的核心功能是允许用户通过出售他们未使用的网络资源来获得被动收入。通过建立去中心化网络,让用户通过分享闲置带宽获取收益。这一创新解决方案

    2024年04月09日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包