首页 > 其他分享 >利用IPV6随时访问家中影音Jellyfin

利用IPV6随时访问家中影音Jellyfin

时间:2023-08-11 21:44:34浏览次数:43  
标签:影音 主机 IPV6 访问 地址 ipv6 路由器 Jellyfin

本文章主要记录通过ipv6实现家庭影音中心在互联网上的访问。

之前很多方案都是通过第三方进行内网穿透,实际体验不是很好。目前ipv6发展迅速,完全可以取代这种以ipv4为中心的内网资源外网访问的方式。ipv6使得ip地址不再紧缺,只需要家中网络一点小小的改变即可实现在外访问家庭影音中心。

1、前提条件

  • 一条宽带,宽带的上传带宽决定了外网访问速度的上限。我使用的是电信500M。
  • 一台nas或者是一台主机,本人没有nas,用的是windows10主机。
  • 一台路由器和一台光猫,光猫是电信公司配的,路由器是小米路由器4A千兆版(R4A)。

本次操作不涉及到影音云的搭建,网上有很多的教程,我是在Windows10安装了jellyfin服务(截止20230811,官网最新版),将电影照片的目录添加到Jellyfin中即可自动刮削,满足基本的需求——影音娱乐和照片浏览。

2、操作

这个操作的核心就是利用ipv6的最大的特性,就是没有所谓的内网nat地址,所有的地址都是互联网可寻址的(除了fe80等开头的保留字段)。为了达到这个目的,我们就要让我们的主机可以被外部网络通过ipv6访问。

2.1 主机开启ipv6

主机开启ipv6支持是第一步,首先将路由器开启ipv6支持,主机网卡开启ipv6,我的windows10在开启了ipv6之后,总是出现无法访问web的情况,遂猜测是DNS出了问题,可以选择手动在主机网卡里面设置DNS为8.8.8.8和114.114.114.114。将路由器和主机开启ipv6支持后,通过以下2个步骤检测ipv6情况。

  1. 使用ipconfig(Windows) or ifconfig(macOS、linux)查看网卡地址
# 使用ipconfig(Windows) or ifconfig(macOS、linux)查看网卡地址
ifconfig en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=6463<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
	ether 38:f9:d3:9c:e8:da 
	inet6 fe80::14a9:a86e:5014:f677%en0 prefixlen 64 secured scopeid 0xa 
	inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
	inet6 2409:8a20:dc:280:1808:33a2:768a:52f8 prefixlen 64 autoconf secured 
	inet6 2409:8a20:dc:280:d593:10fe:f5b2:3bc8 prefixlen 64 autoconf temporary 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
  1. ipw.cn网站上查看当前网络环境是否是ipv6优先。

通过我的测试,成功获取到24xx开头的ipv6地址之后,基本上都是ipv6访问优先的。如果不行,查看是否开启了代理软件等影响网络的因素。

2.2 光猫改bridge模式

这一步简单的方式就是给宽带安装维护 师傅打电话,让他帮你把光猫上面的网络连接方式改为bridge模式,一般来说这样的要求师傅都会同意。现在要光猫的超级管理员密码的时候一般都不给,所以可以让师傅直接给你改,记得一定要宽带账号和密码,我在手机营业厅上获取的宽带帐密和师傅告诉我的不一样,可能他告诉我的时候把密码顺手改了。

2.3 路由器使用ppoe模式拨号上网

在路由器的管理界面,使用上一步获取到的宽带账号进行ppoe方式上网。然后将ipv6设置为native模式,我开启ipv6有时候上网有问题,可以在ppoe拨号阶段将DNS手动改为8.8.8.8或者114。

2.4 修改路由器的防火墙配置

在本地浏览器上可以使用ipv6地址访问,但是过了路由器这一层,比如使用同一个WiFi下的手机去访问就不能访问,说明被防火墙拦截了,需要去路由器上设置一下。由于小米这个路由器默认不开放ssh或telnet等服务,有大佬在github上的代码——OpenWRTInvasion,成功登录小米路由器4A千兆版(R4A)的终端。

其中修改ipv6的iptables配置,将forward规则链开放端口即可。

root@XiaoQiang:~# ip6tables -L forwarding_rule  --line-numbers
Chain forwarding_rule (1 references)
num  target     prot opt source               destination
1    ACCEPT     tcp      anywhere             anywhere             tcp dpt:8096
root@XiaoQiang:~# ip6tables -D forwarding_rule 1
root@XiaoQiang:~# ip6tables -L forwarding_rule  --line-number
Chain forwarding_rule (1 references)
num  target     prot opt source               destination
root@XiaoQiang:~# ip6tables -I forwarding_rule -p tcp --dport 19999 -j ACCEPT

这样的话就开放了本地19999端口到互联网上,处于互联网上的任意IPV6设备都可以访问你的IPV6的19999端口。我的建议是将这个开放的端口设置大一点,不要设置常用端口,防止被扫到。

通过上面4个步骤,现在可以使用手机流量访问你的这个IPV6地址了,访问格式为https://[IPV6]:19999。

2.5 利用ddns将域名和IPV6地址绑定。

windows上有一款开源工具ddns-go,可以实现动态绑定IPV6到域名上,支持多加域名云厂商,主要步骤为:在阿里云上面购买一个域名,然后在控制台添加AAAA域名解析到当前主机的IPV6地址上,在本地运行ddns-go,配置成功即可。
实测下来,每次开关机之后,电脑就会重置IPV6地址,因为目前免费的域名解析时间(TTL)为10分钟,也就是ddns将开机后的IPV6绑定到域名上,需要10分钟的时间生效。这样就实现了使用域名的方式去访问家里的Jellyfin,当然,ddns-go还支持webhook,可以将新的IPV6地址发送到钉钉机器人,这样在手机上也可以收到当前主机的IPV6地址,实现直接访问。

3. 使用场景及安全

由于将个人主机暴露到公网上,理论上人人都能访问到你的主机,但是由于我们开放的是IPV6地址,实际上是无法被扫描的,也就是说只要你不告诉别人,别人是无法得知你的IPV6地址的。我们可以几个手段保护我们的安全。

  • 使用nginx反向代理
  • 将jellyfin添加HTTPS支持(10分建议,注册域名的时候会赠送一些证书)
  • 路由器防火墙最小原则,仅开放特定高端口(不要使用常用端口,10分建议)
  • jellyfin登录口令设置16位以上,并且设置安全策略,密码试错黑名单等
  • AAAA解析使用三级或四级域名
  • 不使用域名,就使用钉钉机器人下发的实时IPV6地址(依赖于钉钉服务的稳当性)

我基本上是出差的时候,或者离开家的时候,又想要访问家里的一些资源,就可以利用IPV6实现公网访问家庭资源的需求了。

标签:影音,主机,IPV6,访问,地址,ipv6,路由器,Jellyfin
From: https://www.cnblogs.com/flowerlake/p/ipv6-for-jellyfin-anywhere-anytime.html

相关文章

  • 华硕官方固件安装alist+ddns-go ipv6实现异地访问磁盘文件
    表哥在前面的一期文章中,讲到了在pandb固件中安装alist。在此本文为大家介绍华硕路由器官方固件如何配置ipv6+alist+gdns配置。实验环境华硕路由器(官方固件)安装alist安装DDNS-GO开启IPv6访问配置ipv6首先利用超级管理员密码登录光猫,设置网络模式为桥接模式然后,登录路由器,设置上网方......
  • IPv6的基本用法和网络配置
    IPv6IPv6地址表示总共8段,每段4个数字或字母左边的0可以省略如果全为0,则用一个0表示连续多个段是0,用::表示,最多用一个配置IPv6ipv6(sys)ipv6enbale(接口)ipv6address2001:0012::000164displayipv6intbriefpingipv6配置ipv6ospf......
  • 如何用好Chatgpt学习——以IPV6举例
    一、如何用Chatgpt已经火了挺久,在学习中如何能把Chatgpt使用到极致。一个字就是问,两个字就是沟通,比如想要了解什么是ipv6,向Chatgpt提问,Chatgpt会给我们详细的介绍。如果还不了解,可以进一步追问,比如让chatgpt举例,或者探讨。二、ChatGPT的扩展应用在ChatGPT创建一些想法(你想象中的万......
  • IPv6 - linux网络编程
    IPv6网络编程假设双栈服务器有一个IPv4地址、和一个IPv6地址:IPv6服务器启动后创建一个IPv6的监听套接字,假设绑定通配地址客户端调用connect,发送要给IPv4SYN给服务端服务端接收IPv4SYN设置一个标识指示本连接使用IPv4映射的IPv6地址,然后响应一个IPv4SYN/ACK。连接......
  • Cilium系列-10-启用 IPv6 BIG TCP和启用巨帧
    系列文章Cilium系列文章前言将Kubernetes的CNI从其他组件切换为Cilium,已经可以有效地提升网络的性能.但是通过对Cilium不同模式的切换/功能的启用,可以进一步提升Cilium的网络性能.具体调优项包括不限于:启用本地路由(NativeRouting)完全替换KubeProxyIP......
  • Cilium系列-10-启用 IPv6 BIG TCP和启用巨帧
    系列文章Cilium系列文章前言将Kubernetes的CNI从其他组件切换为Cilium,已经可以有效地提升网络的性能.但是通过对Cilium不同模式的切换/功能的启用,可以进一步提升Cilium的网络性能.具体调优项包括不限于:启用本地路由(NativeRouting)完全替换KubeProxyI......
  • 群晖docker nastools搭建家庭影音中心
    1.所需镜像nastools(2.9.0),nastools2.9.1版本之后,只能够使用PT下载,对于没有PT只能够用BT的小伙伴,选这个版本nastools作用主要是对下载的电影电视剧等进行整理,方便后边的jellyfin更好的识别。同时,能够做硬链接,方便PT的小伙伴保种,对于不需要保种的,可以使用移动的方式qbittore......
  • js校验IPv4/IPv6/域名/url等相关正则
    /***域名校验eg:www.baidu.com*@param{*}val需要校验的值*/exportfunctionisDomain(val){constreg=/^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/;returnreg.test(val);}/***ipv4校验eg:10.0.0.1*@param{*}val需要校验的值*/exportfunc......
  • iKuai爱快的IPv6防火墙设置
    datecreated:2023-07-2313:10dateupdated:2023-07-2318:03......
  • squid 503问题排查,即ipv6下的squid应用
    squid不支持IPv6,按照里面的提示,在/etc/squid/squid.conf里面配置一个dns_v4_firston再次尝试的时候可以了!如果还是不行的话,直接修改系统的配置修改/etc/sysconfig/network:设置NETWORKING_IPV6=no......