How should I set up jellyfin so that I can access the jellyfin server only through a reverse proxy without enabling remote connections. #5300

Closed
opened 2026-02-07 01:40:06 +03:00 by OVERLORD · 5 comments
Owner

Originally created by @lin1123 on GitHub (Dec 8, 2023).

Please describe your bug

I want to open my jellyfin server to the internet and have caddy provide the ssl certificates via caddy reverse proxy to 127.0.0.1:8096. i can access jellyfin's media server via the domain name when i turn on the remote connection feature, but this will also put the 8096 of the jellyfin server http port of jellyfin's server http open to the internet.
The scenario I want to achieve is that the jellyfin server does not expose any HTTP or HTTPS ports to the internet, and can only access jellyfin's server and play content via the caddy server's domain name.

Jellyfin Version

10.8.z

if other:

No response

Environment

- OS:debian 12
- Linux Kernel:
- Virtualization:
- Clients:
- Browser:
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- GPU Model:
- Plugins:
- Reverse Proxy:caddy
- Base URL:
- Networking:
- Storage:

Jellyfin logs

No response

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @lin1123 on GitHub (Dec 8, 2023). ### Please describe your bug I want to open my jellyfin server to the internet and have caddy provide the ssl certificates via caddy reverse proxy to 127.0.0.1:8096. i can access jellyfin's media server via the domain name when i turn on the remote connection feature, but this will also put the 8096 of the jellyfin server http port of jellyfin's server http open to the internet. The scenario I want to achieve is that the jellyfin server does not expose any HTTP or HTTPS ports to the internet, and can only access jellyfin's server and play content via the caddy server's domain name. ### Jellyfin Version 10.8.z ### if other: _No response_ ### Environment ```markdown - OS:debian 12 - Linux Kernel: - Virtualization: - Clients: - Browser: - FFmpeg Version: - Playback Method: - Hardware Acceleration: - GPU Model: - Plugins: - Reverse Proxy:caddy - Base URL: - Networking: - Storage: ``` ### Jellyfin logs _No response_ ### FFmpeg logs _No response_ ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here _No response_ ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the support label 2026-02-07 01:40:06 +03:00
Author
Owner

@PrplHaz4 commented on GitHub (Dec 8, 2023):

If you can access port 8096 from the internet, that means something is opening 8096 on your router. Make sure you disable automatic port mapping in Network settings and do not forward any ports other than 443.

When using a reverse proxy, you will want all clients to access the IP of the proxy (on port 443 w/tls), not the actual jf server IP. Often this means that internet clients will need dns to resolve to your public IP address (which will forward 80/443 to the proxy then to jf), and local network clients will need it to resolve to the internal proxy IP address.

@PrplHaz4 commented on GitHub (Dec 8, 2023): If you can access port 8096 from the internet, that means something is opening 8096 on your router. Make sure you disable automatic port mapping in Network settings and do not forward any ports other than 443. When using a reverse proxy, you will want all clients to access the IP of the proxy (on port 443 w/tls), not the actual jf server IP. Often this means that internet clients will need dns to resolve to your public IP address (which will forward 80/443 to the proxy then to jf), and local network clients will need it to resolve to the internal proxy IP address.
Author
Owner

@lin1123 commented on GitHub (Dec 8, 2023):

I'm using an IPV6 address, the router has turned off the firewall for IPV6, and accessing from the internet via a domain name only brings up the select server option.
屏幕截图 2023-12-08 203537

@lin1123 commented on GitHub (Dec 8, 2023): I'm using an IPV6 address, the router has turned off the firewall for IPV6, and accessing from the internet via a domain name only brings up the select server option. <img width="1126" alt="屏幕截图 2023-12-08 203537" src="https://github.com/jellyfin/jellyfin/assets/62827465/d6147235-4282-4cc0-93f5-1f8d7d0a7e61">
Author
Owner

@JPVenson commented on GitHub (Dec 8, 2023):

Hey,
I will close this as its not directly related to Jellyfin. What you described is a missconfigured Router and Reverse proxy but not an actual bug in jellyfin as it behaves as expected in this scenario.

@JPVenson commented on GitHub (Dec 8, 2023): Hey, I will close this as its not directly related to Jellyfin. What you described is a missconfigured Router and Reverse proxy but not an actual bug in jellyfin as it behaves as expected in this scenario.
Author
Owner

@felix920506 commented on GitHub (Dec 8, 2023):

Hi, I'm afraid what you want isn't possible. If you really wanted to work out a solution that works for you, please head to our chat rooms or forum: https://jellyfin.org/contact

@felix920506 commented on GitHub (Dec 8, 2023): Hi, I'm afraid what you want isn't possible. If you really wanted to work out a solution that works for you, please head to our chat rooms or forum: https://jellyfin.org/contact
Author
Owner

@Its-Ankush commented on GitHub (Mar 31, 2024):

This is easy to achieve @lin1123 . Jut go to windows firewall and block incoming traffic to ports 8096/tcp, 8920/tcp, 1900/udp, 7359/udp . Once you do this, only 80 and 443 will be open to the internet and other ports will be unavailable from outside.

Let me know if this works :)

Edit - do this post you have setup jellyfin and caddy for the discovery features to work. After you have setup just block incoming on these ports as described

@Its-Ankush commented on GitHub (Mar 31, 2024): This is easy to achieve @lin1123 . Jut go to windows firewall and block incoming traffic to ports 8096/tcp, 8920/tcp, 1900/udp, 7359/udp . Once you do this, only 80 and 443 will be open to the internet and other ports will be unavailable from outside. Let me know if this works :) Edit - do this post you have setup jellyfin and caddy for the discovery features to work. After you have setup just block incoming on these ports as described
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#5300