思源网络代理怎么用?

本贴最后更新于 295 天前,其中的信息可能已经物是人非

image.png

没太搞明白,这个网络代理给谁用的(设置=》关于中打开该界面)?

  1. 是前端请求内核时用的吗?(比如,设置了代理后,前端请求内核 api 时先走代理)

  2. 还是内核请求网络时用的(内核访问网络时先走代理)?

我本地搭建了一个 http 服务器,然后设置了 http 网络代理后发现前端请求内核的 URL 还是原来的 URL,并没有走设置的 http 代理服务,这说明不是给前端用的吧?难道是给内核请求网络时用的?

那么,如果想让前端请求时先走代理服务器,然后进行数据过滤后再返回,该怎么做呢?

我尝试了先把 <base href="" /> 标签的 href 改为代理服务器地址,然后再重写 window.fetch 方法添加认证头信息 token,虽然能正常请求代理服务器的 api 了,但由于代码只能放到代码片段中,在代码片段加载前的 api 并不起作用。

请大佬们帮忙指点迷津!

@88250

  • 思源笔记

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

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

    26791 引用 • 111671 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    10349 引用 • 47004 回帖 • 64 关注

相关帖子

被采纳的回答
  • 88250

    设置以后前端对非内核请求会走代理(比如加载网络图片),内核对外部请求(比如同步)也会走代理。

    要拦截内核请求的话目前没有机制,这种情况应该在内核层面做路由处理,另外这种应用场景好像并不多见,你的场景是用来处理什么?

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 88250

    设置以后前端对非内核请求会走代理(比如加载网络图片),内核对外部请求(比如同步)也会走代理。

    要拦截内核请求的话目前没有机制,这种情况应该在内核层面做路由处理,另外这种应用场景好像并不多见,你的场景是用来处理什么?

    1 回复
  • wilsons

    感谢 D 大的回复!

    我目前的应用场景有两个:

    1. 就是想让发布服务中的某些数据不返回给前端,比如目录列表等,所以我想直接通过代理服务过滤下数据再返回。
    2. 如果这种代理可以直接改变对内核的请求的话,甚至可以直接本地客户端访问远程 docker 等的 api,达到远程连接 docker 的功能 😄,不过这样就不是本地优先了。

    目前修改 <base> 标签可以满足大部分 api 请求,但 base 标签影响较大,还要处理好其他资源的请求才行,太过麻烦,如果有只影响对内核 api 请求的方法最好了。

    虽然通过 js 重写 window.fetch 的方法可以实现对大部分 api 的过滤,但前端实现毕竟是不安全的,容易破解。

    1 回复
  • 88250

    在服务端加反代控制呢,应该也可以解决吧,也比客户端做安全一些。

    1 回复
  • wilsons

    没太懂,我想前提是前端请求得先走反向代理服务吧,然后代理服务才能再访问内核 api 服务,然后处理后返回,现在的问题是,无法让前端先走代理服务。

    如果后续思源支持自定义内核 API 主机地址就好了,这样就可以轻松实现 API 过滤了。

    docker 版不知道不修改源码的情况下是否可以,我是直接在 windows 服务器下后台运行思源,最小化到托盘,然后开启伺服和发布服务来实现类似 docker 版功能的。

    1 回复
  • 88250

    反向代理服务上可以做再次代理

    1 回复
  • wilsons

    再次感谢 D 大的回复!

    还是没太明白大大的方法。我觉得这里的问题关键是怎样改变前端请求的接口地址,因为前端请求接口地址我无法改变,内核服务我也无法改变,所以只要这两者无法改变,无论则怎样代理都起不到作用,因为思源请求接口无法和代理服务器发生关联。

    不过,我通过研究也找到了一些办法,比如可以通过 IPTables(linux), netsh(windows)等做请求转发,由于这是系统级的,所以请求会先经过这些规则把 6806 请求转发到代理服务器就可以了。

    还可以通过设置系统代理的方式实现,类似 fiddler 和 Charles 的抓包原理,这样就能实现拦截请求并处理后返回了。

    1 回复
  • 88250

    伺服的用法一般是要加反代服务的,比如通过公网域名/IP 反代到思源内核 127.0.0.1:6806 上,这一步的反代就可以做一些权限控制,和你说的请求转发基本是一回事 😄

    1 回复
  • wilsons

    哦哦,不太明白,能否展开说说,内核接口不是在本地吗?不走公网,怎么用公网反代?用什么方式或工具反代?也是通过设置系统代理吗?

    我的理解是 docker 版或对外公开访问的 web 版是需要通过 NGINX 等反代到公网的。

    我这里说的是系统内部,拦截前端请求到内核的过程,然后变为前端到代理再到内核的过程。

    然后转发过程是 electron,到系统转发规则,到代理服务,到思源内核的过程,加了一步转发过程。

    1 回复
    1 操作
    wilsons 在 2024-10-27 23:32:03 更新了该回帖
  • 88250

    就是常规的反代配置,NGINX 好像有一些插件或者配置方案可以做权限控制,如果是简单的禁掉某些内核接口,那就单独为这些接口配置反代,然后返回 403。

    1 回复
  • wilsons 1

    👍 嗯嗯我知道了,目前类似抓包工具这种方式更简洁方便些。

请输入回帖内容 ...
wilsons
正在努力开发 wilsons 工具箱中 🛠️ 目前已正式入驻爱发电啦!💖 想催更、提需求?欢迎访问 👉 https://afdian.com/a/wilsons

推荐标签 标签

  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 687 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 49 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 143 回帖
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    201 引用 • 120 回帖 • 2 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 14 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    694 引用 • 537 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    167 引用 • 408 回帖 • 483 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    59 引用 • 22 回帖
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 65 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 123 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 2 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 17 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 10 关注
  • Anytype
    3 引用 • 31 回帖 • 36 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    77 引用 • 37 回帖
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 113 关注
  • OneNote
    1 引用 • 3 回帖 • 3 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    379 引用 • 1868 回帖 • 2 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • RemNote
    2 引用 • 16 回帖 • 25 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖 • 3 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • 创业

    你比 99% 的人都优秀么?

    81 引用 • 1395 回帖
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 2 关注