Joplin Server配置端口转发的一个小坑

ops/2025/1/15 16:27:17/

🌟 问题描述

在配置 Joplin Server 时,遇到了一个关于校园网端口转发的有趣问题。具体表现为:从 Windows 客户端连接时出现 “Invalid origin” 错误。

🔍 问题分析

测试发现:

  • 内部端口:连接超时
  • 外部端口:返回 HTTP 400 和 Invalid origin 错误

通过 telnet 测试:

telnet localhost 12345  # 连接超时
telnet 10.42.xx.xxx 54321  # 返回 HTTP 400

🎯 解决方案

关键在于理解 Joplin Server 的配置逻辑:

  1. .env 文件中:
# 这是外部实际访问的地址(校园网IP)
APP_BASE_URL=http://10.42.xx.xxx:54321# 这是内部服务监听地址
APP_PORT=12345
  1. docker-compose.yml 中:
services:joplin:ports:- "12345:12345"  # 内部服务端口

💡 重要说明

  • APP_BASE_URL:必须是外部用户实际访问的 URL(校园网地址)
  • APP_PORT:是容器内部服务监听的端口
  • Docker 端口映射:确保外部请求能正确路由到内部服务

🌈 经验总结

  1. 不要混淆内部访问地址和公共访问地址
  2. 正确设置 APP_BASE_URL 是解决 Invalid origin 错误的关键
  3. 端口映射要与内部服务端口保持一致
  4. 校园网环境下需要特别注意 IP 和端口的正确配置

🚀 参考资料

https://github.com/laurent22/joplin/issues/5300


http://www.ppmy.cn/ops/150337.html

相关文章

欧拉路径算法

欧拉图: 对于应该连通图G,有: 1欧拉路径:一条路径,它能够不重复地遍历完所有的边,这个性质很像不重复地一笔画完所有边,所以有些涉及到欧拉路径的问题叫做一笔画问题。 2欧拉回路&#xff1a…

Rank-Analysis——LOL (英雄联盟)排位战绩查询分析器

项目地址: https://github.com/wnzzer/lol-rank-record-analysis 项目采用 Golang electron 前言: lol 战绩查询,一键查询你的混子队友! 很早以前就想做这个,最近学了学前端的内容,就拿这个练练手&…

【微服务】面试题 5、分布式系统理论:CAP 与 BASE 详解

分布式系统理论:CAP 与 BASE 详解 一、CAP 定理 背景与定义:1998 年由加州大学科学家埃里克布鲁尔提出,分布式系统存在一致性(Consistency)、可用性(Availability)、分区容错性(Part…

ros2笔记-6.5 使用ros2_control驱动机器人

ros2_control 是使用ros2进行机器人控制的框架。简化硬件的集成。 6.5.1 ros2_control安装 为什么要用ros2_contrl.书上、视频上小鱼老师介绍的比较清楚,这里放个control框架图。 安装: sudo apt install ros-$ROS_DISTRO-ros2-control sudo apt ins…

K8S集群常用命令

1,查看pod kubectl get pods -A 查看所有的pod kubectl get pods 这个只查看namespace为default下的pod,也就是只查看默认命名空间下的pod kubectl get pod -A -o wide 查看所有的pod,并且放出的信息更全(包含了pod的ip&#xff0…

C++----STL(string)

引言:STL简介 什么是STL STL(standard template libaray-标准模板库): 是 C标准库的重要组成部分(注意:STL只是C标准库里的一部分,cin和cout也是属于C标准库的),不仅是一个可复用的组件库&…

Vue 学习之旅:从基础到实践(vue快速上手+插值表达式+指令上)

Vue 学习之旅:从基础到实践 文章目录 Vue 学习之旅:从基础到实践一、Vue 简介二、创建 Vue 实例与插值表达式(一)创建 Vue 实例步骤(二)插值表达式 三、Vue 核心特性 - 响应式四、Vue 指令(一&a…

Redis数据结构服务器

Redis数据结构服务器 什么是Redis数据结构服务器 的概念和特点 是一个开源(BSD许可),内存中的数据结构存储服务器,可用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings&#xff09…