1. 首页

人在美国,刚下飞机,如何获取家里的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。

    TP-LINK双千兆路由器1900M无线家用5G双频WDR7660千兆六信号放大器高速路由WIFI穿墙IPv6170元京东去购买

    本人家里装的移动宽带是直接光猫拨号,光猫同时对ipv4和ipv6进行了拨号连接。自己买的tp7660的路由器以固定ip方式接入光猫,作为下一级的路由器。网关就是配置光猫的ip地址。

    二级路由器组网配置二级路由器组网配置

    路由器固件比较落伍,可玩性不高,但好在支持ipv6。一般默认关闭ipv6,打开后选择桥模式,就可以获取到ipv6的地址。

    路由器拿到了ipv6路由器拿到了ipv6

    tp的ipv6功能是个半成品,除了这个单独的页面有ipv6相关功能设置,其他页面都没任何显示,比如无法查看所连接设备的ipv6地址。DDNS之类的一切服务也都是默认ipv4。

    pc的ipv6pc的ipv6

    尝试上面的方案后,再看下手机或电脑上是否能够获取到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

  • 获取token获取token

    测试可用性,拿到下载链接测试可用性,拿到下载链接

    直接访问下载链接,可以拿到ip地址直接访问下载链接,可以拿到ip地址

    4.4 用拿到的ip访问下服务器

    jellyfin的http端口是8096,因此通过下面,粘贴到浏览器或者jellyfin的客户端即可访问家里服务器了。

    http://[ipv6地址]:8096

    五、手机如何获取ipv6

    上面是电脑端可以操作的,但手机端没办法获取。我这里给出两个方案:

  • 直接登陆github的网页,或者客户端,找到对应的文件,就可以看到ipv6地址,复制出来就可以

  • 自己用上面的接口,写个app,或者用api模拟的接口,请求对应的api,获取到ip。

  • 为了方便,当然自己写app获取到ip,一劳永逸。

    六、服务器的计划任务

    路子都打通了,但ip什么时候变?变了怎么上传出去?目前我是没有找到监听ipv6变化的方法,只能定期轮寻ipv6是否变了。给服务器添加计划任务,开机启动后1min,尝试获取ipv6,如果失败,每隔五分钟重试3次,每个小时检查一次。具体细节百度windows计划任务。

    七、总结

    春节在家,实在无趣,游戏打到要睡觉。难得有这么长自己的时间,做点有意义的事,不用来装逼,实在可惜。于是过年期间,装ubuntu系统,学习如何使用,安装常用软件,找回丢失多年的markdown技能,打通外网获取家里ip,光这文章写了就有一天。

    本文用的是github仓库存储的方案,也可以有其他方案,只是需要定期把ipv6上传到某一个外网可以访问的地方即可,比如云盘同步,大同小异。

    看似很复杂的一套,其实我基本上都是百度来的,只是一个方案整合,当然,如果没有平时兴趣和工作积累的一些东西,实际上第一步可能就直接劝退。看别人的教程,我也基本是退避三舍的,技术栈不一样,每个人擅长了解的东西不同,方案就不一样,实现复杂度也不一样。

    因此,我希望看不懂的,不必纠结,很多内容我也只是略懂,有描述错误的请见谅,只要关注思路即可。

    直接通过ipv6访问,访问者也需要ipv6,速度肯定是最快的,但也存在被入侵的风险。最后,友情提示:务必保存好ipv6的地址,不要随意泄漏。

    原创文章,作者:夜风博客,如若转载,请注明出处:https://www.homedt.net/37417.html