人在美国,刚下飞机,如何获取家里的ip?
一、前言
2019年5月份,购入矿难的蜗牛星际,用win7搭建了emby的服务器。
但由于其手机端app收费使用,后来切换到了jellyfin。
切到jellyfin后,家里电视、电脑、手机、平板都有对应的客户端可以访问。利用旧电脑搭建家庭多媒体中心的文章很多,就不啰嗦了。
如何公网访问的方案,也是千奇百怪,各有千秋。
但基本上免费的操作复杂,简单的则贵。
贵有贵的道理,免费有免费的香。
之前看用阿里云主机配置远程的ddns,大体思路差不多,我只是用了个免费的替代了一下。
我的方案不在乎是路由器拨号,还是光猫拨号。只要运营商支持ipv6,只要路由器支持ipv6,只要手机能获取到ipv6,理论上都是可行的。
每个人情况不一样,我这提供我自己的方案,供大家参考。
二、概述
大体思路:
利用ipv6的公网访问能力,家里每台设备都有一个公网ip,想办法把ip告诉外面的你,在外面能获取到服务器的ipv6地址,即可访问家里的服务器。
基本步骤:
测试宽带运营商和路由器是否支持ipv6
想办法拿到家里的ip
三、测试宽带运营商和路由器是否支持ipv6
这块涉及到宽带拨号的方式,如果不清楚是否支持ipv6。可以从源头排查:先查看光猫的配置页面,查看是否有ipv6相关的配置。再查看自己的路由器是否打开ipv6,尝试下自动获取ip和桥模式。最后手机、电脑如果能够获取到ipv6,才是真正意义上支持ipv6。
本人家里装的移动宽带是直接光猫拨号,光猫同时对ipv4和ipv6进行了拨号连接。自己买的tp7660的路由器以固定ip方式接入光猫,作为下一级的路由器。网关就是配置光猫的ip地址。
路由器固件比较落伍,可玩性不高,但好在支持ipv6。一般默认关闭ipv6,打开后选择桥模式,就可以获取到ipv6的地址。
tp的ipv6功能是个半成品,除了这个单独的页面有ipv6相关功能设置,其他页面都没任何显示,比如无法查看所连接设备的ipv6地址。DDNS之类的一切服务也都是默认ipv4。
尝试上面的方案后,再看下手机或电脑上是否能够获取到ipv6。
看到这里劝退50%的人了。
四、想办法拿到家里的ip
ipv6通常情况下,运营商不会永远给一个固定的ip,带来的问题就是,今天用这个ipv6可以访问服务器,明天也许就连接不上了。
因此,要想一个办法,将服务器的ipv6地址,及时地保存在一个外网可以访问的地方。
核心步骤:
先用python脚本获取服务器的ipv6地址,保存在文件中。
地址变化时,将获取到的地址,通过GitPython库操作git,上传文件到Github私有仓库中。
通过查询github的Api,访问请求Github私有仓库,读取到这个文件中ipv6的地址。
光是上面python和git操作,已经劝退了99.9%的人了。
没养过猪,还是可以看看别人吃猪肉的嘛。实在想吃,花点钱下个馆子,还是值得的。
4.1 python获取ip
参考Python 获取本机公网IPv6地址,通过windows下 ipconfig 命令行,获取到ip。
4.2 地址变化时,上传到github私有仓库
GitPython doc官方文档,结合网络搜索,完成git的上传。
如果没有用过github,可以大概了解下。Github图文详解
将服务器用ssh key与github建立安全连接,上传下拉都不再需要密码。
如果不会,可以搜索下。
4.3 想办法再取回ipv6地址
简单方案: 电脑直接登陆github,查看repo里的文件
复杂方案: 弄个github的api,当域名,获取到存储在仓库里的ip地址
具体步骤:
在下图中,箭头位置,申请开发者token,这个token可以免密码获取访问github的各个api。
看文档,学习token如何使用
找到获取文件的api后,请求测试结果,拿到文件下载链接download_url
直接打开download_url中的连接,浏览器中即可获取到服务器的ipv6
4.4 用拿到的ip访问下服务器
jellyfin的http端口是8096,因此通过下面,粘贴到浏览器或者jellyfin的客户端即可访问家里服务器了。
五、手机如何获取ipv6
上面是电脑端可以操作的,但手机端没办法获取。我这里给出两个方案:
直接登陆github的网页,或者客户端,找到对应的文件,就可以看到ipv6地址,复制出来就可以
自己用上面的接口,写个app,或者用api模拟的接口,请求对应的api,获取到ip。
为了方便,当然自己写app获取到ip,一劳永逸。
六、服务器的计划任务
路子都打通了,但ip什么时候变?
变了怎么上传出去?
目前我是没有找到监听ipv6变化的方法,只能定期轮寻ipv6是否变了。
给服务器添加计划任务,开机启动后1min,尝试获取ipv6,如果失败,每隔五分钟重试3次,每个小时检查一次。
具体细节百度windows计划任务。
七、总结
春节在家,实在无趣,游戏打到要睡觉。
难得有这么长自己的时间,做点有意义的事,不用来装逼,实在可惜。
于是过年期间,装ubuntu系统,学习如何使用,安装常用软件,找回丢失多年的markdown技能,打通外网获取家里ip,光这文章写了就有一天。
本文用的是github仓库存储的方案,也可以有其他方案,只是需要定期把ipv6上传到某一个外网可以访问的地方即可,比如云盘同步,大同小异。
看似很复杂的一套,其实我基本上都是百度来的,只是一个方案整合,当然,如果没有平时兴趣和工作积累的一些东西,实际上第一步可能就直接劝退。看别人的教程,我也基本是退避三舍的,技术栈不一样,每个人擅长了解的东西不同,方案就不一样,实现复杂度也不一样。
因此,我希望看不懂的,不必纠结,很多内容我也只是略懂,有描述错误的请见谅,只要关注思路即可。
直接通过ipv6访问,访问者也需要ipv6,速度肯定是最快的,但也存在被入侵的风险。最后,友情提示:务必保存好ipv6的地址,不要随意泄漏。
janeyre
比访问github稳定
校验提示文案
值4531828
校验提示文案
野_草
校验提示文案
飞跃比邻星
校验提示文案
肥佬布
校验提示文案
值友3788024798
校验提示文案
刀锋领主黄仁勋
校验提示文案
cuitsl
校验提示文案
feiying2004
校验提示文案
ank0915
校验提示文案
陈圻淼
校验提示文案
工程师之怒
校验提示文案
人工电动小马达
校验提示文案
沉默的眼睛
校验提示文案
沉默的眼睛
校验提示文案
值友3788024798
校验提示文案
肥佬布
校验提示文案
cuitsl
校验提示文案
刀锋领主黄仁勋
校验提示文案
飞跃比邻星
校验提示文案
人工电动小马达
校验提示文案
工程师之怒
校验提示文案
野_草
校验提示文案
陈圻淼
校验提示文案
值4531828
校验提示文案
ank0915
校验提示文案
janeyre
比访问github稳定
校验提示文案
feiying2004
校验提示文案