手机伺服党的福利,一键访问手机伺服

前言

众所周知,思源的手机伺服很方便,也很强大。

但遗憾的是手机 ip 经常变化,每次都要打开手机看下 ip 才能访问,这很不方便。

你可能说,社区有教程啊,通过 arp 可以获取局域网 ip,没错,确实可以。但也有公司或单位出于安全的考虑屏蔽了 arp 探测局域网 ip 的能力。

另外,你每次启动都要打开脚本去执行这也不方便呀。还有,如果你出差在外地,或者被迫用其他人的电脑,别人电脑上没有脚本咋办?又回到了手动输入的时代,不是吗?

有没有一种方法,直接打开浏览器就能访问呢?

有啊,今天这个脚本就是实现这个目标的。

这个脚本的原理就是,每次手机启动时,会自动把自身的 ip 写到云端,然后浏览器访问时读取并跳转即可。

这个云端并不是自建的服务器,也不是 serverless。而是,利用 Easy Mock 网的 api 服务。

之所以选择这个平台,是因为这个网站的 api 调用方便,对新手用户友好,而且服务器在国内速度快。

当然,你也可以根据这个原理放到其他服务上,比如 github, vercel 等。

脚本内容

使用方法

  1. 把脚本放到 js 代码片段中,并修改脚本中的 username 和 password 两个变量的值,这个随便设置,当用户不存在时会自动注册,然后保存 js 片段即可。

    这时,会在 data/public 目录生成一个 siyuan.html 文件。

  2. 同步代码片段到手机上,分别点点电脑和手机上的小云朵按钮即可。

  3. 打开手机端思源,开启手机伺服服务,已开启的可以忽略。

  4. 打开 data/public/siyuan.html 就可以访问手机伺服了。

    注意,第一次访问时会提示你先把该页面收藏到收藏夹,下次直接收藏夹里打开这个文件就行了。

    当然,你也可以把这个文件放到服务器上或 github,vercel 等,然后就可以随时随地访问了。

注意事项

  1. 脚本会在 Easy Mock 网站创建一个叫 siyuan 的项目,其下有一个 api 叫/ip,请不要修改或删除这个项目和 api。
  2. pc 端仅在第一次保存时运行,确切的说,当代码片段中的 username 不同时会运行一次更新配置数据。
  3. 如果多个客户端同时使用这个脚本,那么以最后一次启动的客户端的 ip 为准。

效果演示

r36.gif

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22994 引用 • 92478 回帖
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    728 引用 • 1273 回帖 • 2 关注
  • 伺服
    1 引用 • 20 回帖
  • 脚本
    20 引用 • 147 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 好高级,但是我觉得手机查看 IP 可能更方便

    1 回复
  • wilsons

    第一次使用你会觉得麻烦了点,以后每次只需要在浏览器书签里点击就可以访问了。

    比如我也会把这个文件托管到 github 平台,以后启动手机 app 后只需要访问 https://xxxx.github.io/siyuan.html 就可以访问了

    1 回复
  • pakeh2866

    解决了每次要试几个 IP 的问题

  • 能穿透内网吗

    2 回复
  • wilsons

    用不到内网穿透,因为这个压根不受内网影响,只要你手机和电脑可以访问网络即可。

    原理就是自动获取手机 ip,然后传到云端,然后电脑访问时,直接从云端读取 ip 并跳转。

    1 回复
  • 懂了,连别人 WIFI 的时候用的。

    1 回复
  • wilsons

    嗯嗯,手机自带的热点也可以,所以只要手机在,随时随地都可以。😄

  • wilsons

    如果有朋友想通过其他脚本获取 ip 的,可打开 public/siyuan.html 参考里面的获取方法即可。

  • wilsons

    更新:

    手机端增加手动上传 IP 功能,这在某些情况下非常有用,比如切换了网络啥的,不用重启思源的情况下上传 IP。(代码已更新)

    Snipaste20240830234601.png

  • 膜拜大佬,涨知识了

  • wilsons

    感谢!

  • 该方法的优势:linux、mac、平板电脑全平台都能用。

    1 操作
    openAI 在 2024-08-31 22:30:18 更新了该回帖
  • tecent

    内网穿透你选择不很多么?Screenshot20240831041333821com.miui.homeedit.jpg

    1 回复
  • wilsons 1 1 赞同

    最新经验,如果你把 siyuan.html 托管到服务器或静态托管平台(但必须是 https 的网站),比如 github 中。

    也可以在谷歌浏览器中保存为应用打开。

    mac:

    image.png

    windows:

    image.png

    image.png

    如果不行,可以把 siyuan.html 放到文件夹中,比如 siyuan 文件夹,然后 siyuan.html 改为 index.html,然后再该文件夹中新建一个 manifest.json 文件,然后把 <link rel="manifest" href="/siyuan/manifest.json"> 加入到 index.html 中即可(不过这个 manifest 加不加貌似都可以,如果你的有问题再加吧)。

    manifest.json 代码如下

    {
      "name": "思源笔记",
      "short_name": "思源笔记",
      "start_url": ".",
      "display": "fullscreen",
      "background_color": "#fff",
      "orientation": "portrait",
      "theme_color": "#3b3e43",
      "description": "思源笔记手机伺服版",
      "icons": [
        {
          "src": "https://ld246.com/images/hacpai/logo@48.png",
          "sizes": "48x48",
          "type": "image/png"
        },
        {
          "src": "https://ld246.com/images/hacpai/logo@72.png",
          "sizes": "72x72",
          "type": "image/png"
        },
        {
          "src": "https://ld246.com/images/hacpai/logo@96.png",
          "sizes": "96x96",
          "type": "image/png"
        },
        {
          "src": "https://ld246.com/images/hacpai/logo@144.png",
          "sizes": "144x144",
          "type": "image/png"
        },
        {
          "src": "https://ld246.com/images/hacpai/logo@192.png",
          "sizes": "192x192",
          "type": "image/png"
        },
        {
          "src": "https://ld246.com/images/hacpai/logo@512.png",
          "sizes": "512x512",
          "type": "image/png"
        }
      ]
    }
    
    

    效果

    image.png

  • wilsons 1 1 赞同

    补充:

    以 app 方式启动

    windows:

    新建 Chrome 快捷方式,然后在快捷方式属性中修改目标参数如下

    "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" --app="file://yourpath/data/public/siyuan.html"

    Chrome 路径根据你的实际情况修改。

    mac:

    用“自动操作”app 编写 shell,然后保存为 app 应用即可。

    image.png

    image.png

    image.png

    shell 代码如下

    # 打开思源手机伺服版
    "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --app="file:///yourpath/data/public/siyuan.html"
    
    # 更改图标
    # cp "/yourpath/siyuan-icon.icns" "/yourpath/思源笔记手机伺服版.app/Contents/Resources/ApplicationStub.icns"
    

    更改图标的方法

    1. 按照上图的方法,cp /yourpath/siyuan-icon.icns 到 app 中即可

    2. 复制一张图标图片,大多数图片格式都可,然后打开 app 的简介对话框,选中图标,粘贴即可。

      image.png

    1 和 2 的区别:1 是永久有效,无论这个 app 移动到哪台电脑,2 则仅本电脑有效。但 1 更改后不会立即生效,需要移动 app 到别的目录,再移动回来才生效,或者重启电脑。

    我把已做好的 APP 和 icns 上传上来,app 通常用“自动操作”app 打开修改即可。

    思源笔记手机伺服版.zip

    最终效果

    image.png

    1 操作
    wilsons 在 2024-08-31 23:04:22 更新了该回帖
  • 我有 ZeroTier One,很久没用了

  • qingxueqiling

    我测试了不在同一个局域网内的手机和电脑,不能访问,处于同一个局域网内的设备可以访问,所以这个脚本的只是免去手动输入 IP 的麻烦是吗?

    1 回复
  • wilsons

    是的,解决手动输入 ip 的麻烦,不是实现内网穿透的。

    1 回复
  • openAI 2 评论

    有没有可能出一个 ipv6 版的,这样不在一个局域网也能访问?

    简单试了下,伺服用 ipv6 似乎不太行
    openAI 1 赞同
    @openAI 确实,好像不能获取有效的对外访问的地址,不清楚原因。设备互相访问,可以试试楼上两位大佬的推荐,比如 ZeroTier One
    wilsons 1 赞同
请输入回帖内容 ...