无需输入 ip 访问思源伺服,解决 ip 变化要重新收藏地址的烦恼

思源伺服使用上的麻烦

  我很喜欢使用手机伺服使用思源,人肉同步,不需要总是云同步,不用解决文档同步冲突的问题,简直爽歪歪。

  但是有个麻烦的地方,每次从家里到公司之后手机的 ip 总是变化,之前浏览器收藏夹收藏的地址就没用了,要先去手机上找到自己的 ip,然后复制通过微信发送到电脑上面,再复制到浏览器地址栏访问,过程非常繁琐。

寻找解决办法的过程

  我一直在想能不能有什么办法自动找到手机的 ip 呢,于是在思源的论坛上寻找办法,看到了这篇文章手机伺服,笔记本免输网址打开思源 2.0 - 链滴 (ld246.com)。文章最后一个思路是通过 mDNS 功能通过域名访问手机设备。

啥是 mDNS 功能呢,查了一下,就是如果不知道手机的 ip 可以直接通过手机提供的域名来访问,而且不需要一个公共的 dns 解析器就能和手机通信。也就是说可以通过固定的域名来访问手机的思源(只要电脑和手机在同一个局域网,无论在哪里都能用这个固定的域名访问)。

那么现在问题就是这个域名是什么呢?

于是就去搜索安卓手机(我是小米手机)的 mDNS 的相关信息,苹果是通过[任意前缀].local 来访问 ios 设备,安卓是不是也能这样访问呢,结果不行。然后我在网上找到了一个可以扫描局域网设备的软件:Advanced IP Scanner – 免费下载网络扫描程序 (advanced-ip-scanner.com)。扫描之后果然找到了我想要的结果:

  image

  那么我的手机固定的访问域名是 xiaomi-13-pro.lan,在任何网络环境下,局域网都可以通过这个来访问。

利用 mDNS 固定域名[设备名称].lan 访问伺服

  image

  果然成功了, 然后我尝试修改手机的 ip,再访问 http://xiaomi-13-pro.lan:6806/,果然还是能正常打开,但是第一次访问会比较慢(应该是在缓存),后来再打开就很快了。以后无论在什么网络环境,只要是手机和电脑在同一个局域网下就可以通过这个域名访问使用了。最终开心的将地址收藏到浏览器中。

  每个手机的前缀不一样, 如果不知道是什么可以尝试使用 Advanced IP Scanner 扫描(需要多扫几遍才能出来),这个前缀是固定的,暂时还没找到办法修改。

最终的结论

所以小伙伴们如果习惯使用手机做伺服的话,首先保证电脑和手机在同一个局域网,安卓手机可以尝试一下通过 http://[你的设备名称].lan:6806 来访问, 如果你不知道你的设备名称是什么以及苹果手机,那么就用 Advanced IP Scanner(或者其他类似的网络 ip 扫描工具)扫描一下看看你的手机提供的域名是什么样的,以后不管在哪里就都可以用这个域名来访问思源伺服了。

补充:目前测试在公司和家里环境下是固定的,其他手机型号以及其他网络环境并未测试,可能不生效

  • 思源笔记

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

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

    18799 引用 • 70323 回帖
3 操作
f8401067 在 2024-01-16 18:33:29 更新了该帖
f8401067 在 2024-01-16 16:38:01 更新了该帖
f8401067 在 2024-01-16 15:07:53 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • iphone 应该不是任意前缀.local。这个前缀一般是设备名。

    不过稍微研究了一下,没找到 iPhone 上的具体规则,如果有人知道,烦请告诉我一下,万分感谢。

    1 回复
  • f8401067

    使用 ip 扫描工具扫一次就知道了呀, 上文已经给了下载链接

  • 可以把你这套流程整合到一个插件里,你电脑端装上这个插件,自动帮你扫描发现,然后点击就打开一个远程的思源伺服实例,CE 版本已经能打开了,就差做个远程发现的事儿

    1 回复
  • 路由器设置静态 IP,ip 地址就不会变了

    1 回复
  • f8401067

    但是每天在公司和家里来回,有时候去老家,ip 都是不同的,我的目的就是不管在哪里都访问同一个网址,收藏到 edge 浏览器(收藏夹自动同步),每次直接打开就行了

  • f8401067

    没有流程啊,浏览器直接输入域名就能访问,[手机设备名].lan:6806 就行了

  • 不用这么麻烦,之前在群里讨论过,直接通过设备的 mac 物理地址锁定 IP 就可了

    ```bat
    @echo off
    
    REM 获取所有MAC和IP地址
    arp -a > arp_output.txt
    
    REM 指定要查找的MAC地址
    set target_mac=32-55-83-b5-ca-5d
    
    REM 在arp_output.txt中查找指定MAC对应的IP地址
    for /f "tokens=1 delims= " %%A in ('type arp_output.txt ^| findstr /c:"%target_mac%"') do (
        set target_ip=%%A
    )
    
    REM 调用浏览器打开指定IP地址
    if not "%target_ip%"=="" (
        start "" "http://%target_ip%:6806"
    ) else (
        echo 目标MAC地址未找到。
    )
     *
    

    sh 版本也有

    ```shell
    #!/bin/bash
    
    # 获取所有MAC和IP地址
    arp -a > arp.txt
    # 提取指定MAC的IP地址
    mac_to_find="32-55-83-b5-ca-5d"
    ip_to_open=$(awk -v mac="$mac_to_find" '$0 ~ mac {match($0, /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH)}' arp.txt)
    
    # 打开指定IP的浏览器
    start "" "http://$ip_to_open:6806"
     *
    
    1 回复
  • f8401067

    为啥会觉得麻烦啊?直接访问[手机设备名].lan:6806 就行了啊,一步到位,没任何其他步骤,不用去查 Mac 地址,更不用去复制代码保存个脚本,那用别的电脑又得搞个脚本

    1 回复
  • 建议发知乎

  • 主机名是手机型号,多个同型号接入,主机名会变,需要手动设置唯一主机名

  • 直接简单一点,手机的设置里,关于-本机名称改了。注意别搞特殊符号,尽量是字母、-、数字。

    比如我的 iPhone,设置的是 Vips14p,那么我直接使用 Vips14p.local:6806 就能稳定访问。安卓手机同理,具体设置及访问的后缀(local 那一部分)自行网上查一下。

    image.png

  • 实测荣耀手机没这个功能。

  • wxtgood 1 评论

    大佬,我的手机是一加,通过手机开热点,电脑连接热点,来实现伺服。

    用文中的软件扫描不到 😭

    image.png

    1 回复
    那应该就是手机没有这个功能,这种情况可以看看我之前的方案。
    openAI
  • 如果使用场景固定的话,比如大部分时间是在家里和公司的台式机上用;那么手机在连家里和公司 wifi 的时候,可以使用静态 ip;相应的,公司和家里电脑只需收藏相应的 ip:6806 即可。

请输入回帖内容 ...