新人下载app,立即提现现金 您的好友 送你现金 去提现

人在美国,刚下飞机,如何获取家里的ip?

签到钱就到 02-15 22:18 关注

是返乡过年?还是就地过年?最新一届#双面过节指南#开始啦!本次征稿活动分为A面返乡和B面就地,大家可以根据自己的情况,分享自己的春节攻略,优秀的投稿文章还有可能能获得优厚的大奖哦,快点击查看活动详情<<<

一、前言

2019年5月份,购入矿难的蜗牛星际,用win7搭建了emby的服务器

但由于其手机端app收费使用,后来切换到了jellyfin。

切到jellyfin后,家里电视、电脑、手机、平板都有对应的客户端可以访问。利用旧电脑搭建家庭多媒体中心的文章很多,就不啰嗦了。

如何公网访问的方案,也是千奇百怪,各有千秋。

但基本上免费的操作复杂,简单的则贵。

贵有贵的道理,免费有免费的香。

之前看用阿里云主机配置远程的ddns,大体思路差不多,我只是用了个免费的替代了一下。
我的方案不在乎是路由器拨号,还是光猫拨号。只要运营商支持ipv6,只要路由器支持ipv6,只要手机能获取到ipv6,理论上都是可行的。

每个人情况不一样,我这提供我自己的方案,供大家参考。

二、概述

大体思路

利用ipv6的公网访问能力,家里每台设备都有一个公网ip,想办法把ip告诉外面的你,在外面能获取到服务器的ipv6地址,即可访问家里的服务器。

基本步骤

  1. 测试宽带运营商和路由器是否支持ipv6

  2. 想办法拿到家里的ip

三、测试宽带运营商和路由器是否支持ipv6

这块涉及到宽带拨号的方式,如果不清楚是否支持ipv6。可以从源头排查:先查看光猫的配置页面,查看是否有ipv6相关的配置。再查看自己的路由器是否打开ipv6,尝试下自动获取ip和桥模式。最后手机、电脑如果能够获取到ipv6,才是真正意义上支持ipv6。

本人家里装的移动宽带是直接光猫拨号,光猫同时对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地址,及时地保存在一个外网可以访问的地方。

核心步骤

  1. 先用python脚本获取服务器的ipv6地址,保存在文件中。

  2. 地址变化时,将获取到的地址,通过GitPython库操作git,上传文件到Github私有仓库中。

  3. 通过查询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地址

具体步骤:

  1. 在下图中,箭头位置,申请开发者token,这个token可以免密码获取访问github的各个api。

  2. 看文档,学习token如何使用

  3. 找到获取文件的api后,请求测试结果,拿到文件下载链接download_url

  4. 直接打开download_url中的连接,浏览器中即可获取到服务器的ipv6

获取token获取token

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

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

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

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


五、手机如何获取ipv6

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

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

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

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

六、服务器的计划任务

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

七、总结

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

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

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

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

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

展开阅读全文

打开App,享最佳阅读体验
全部评论 (28)
windli
2
02-17 12:20
值4531828: 不如ddns 1
签到钱就到: 路由器不支持v6的ddns,并不是不想用。 只是换了个方式实现了ddns。 ddns其原理也就是ip变化时,将域名与ip重新绑定。 我这里的域名就相当于这里的文件下载的api,搭建好通路后,就跟域名无太大区别。 通过域名请求,只需要请求一次dns,使用起来更方便。 直接通过ip请求,不绑定域名,被入侵风险会降低,毕竟私有的服务器。 2

并不需要你的路由器支持ddns ipv6,只需要你的电脑服务器支持就行了。ipv4的年代,你整个家庭网络对外只有一个ipv4公网地址,所以需要路由器把这个ipv4公网地址上报给ddns服务商,也就是需要路由器支持ipv4 ddns。但是ipv6的年代,你家每一个设备都有各自的ipv6地址,所以需要他们各自将自己的ipv6地址上报给ddns服务商(当然实际上只有需要外网访问的设备需要做这件事),所以只需要这些设备自己支持ipv6 ddns即可,并不需要路由器做这件事(除非你想外网访问你的路由器)

cuitsl
1
02-16 10:11

一个小米路由器就够了[邪恶]

刀锋领主黄仁勋
1
02-16 01:24

自己用C#写了一个阿里云的动态域名解析,用的阿里云API,支持ipv4和ipv6解析,同时更新v4和v6的两个ddns,还加了DDNS变更时ServerChan推送的功能,目前最大的问题就是获取自身ip地址的方法不稳定…

沉默的眼睛
0
02-21 09:36

刚刚打电话给电信,跟智能语音说了两遍转人工服务后一个小哥接的电话,我就说了家里装监控要用到公网IP,他直接就答应了,让我一分钟后测试下。之前光猫已改桥接,所以路由器直接就是IPv4的公网IP了。坐标浙江宁波

签到钱就到
0
02-19 08:16
肥佬布: 怎么配置经常变的网关,群晖ddnsipv6可以,但网关没配置好的话,是出不去的 1

网关我理解就是路由器的地址。1.是不是可以考虑把路由器的ip固定,不要用上一级路由动态分配的ip。2.路由器里的ipv6的dhcp关闭,用最顶级路由分配的ip,就是如果是光猫拨号,设备ipv6就用光猫分配的ip,不然拿到的是局域网ipv6。我是用桥接方式,就是相当于直接从上级路由(光猫>拿地址。

签到钱就到
0
02-19 08:00
值友3788024798: 何必这么麻烦,找一个可以修改dns解析的python脚本,定时跑,一旦发现外网IP变了就更新域名解析,客户端统一用域名。基本不掉线。 1

是麻烦,但对我来说一样。我不想暴露我的ip到域名上。域名申请麻烦,有的要身份证实名。 我实现的这条通路,对我来说学习的成分大,我自己写个app,请求api拿ip地址,使用复杂度并不高,后期还可以搞其他事情。

值友3788024798
0
02-18 23:24

何必这么麻烦,找一个可以修改dns解析的python脚本,定时跑,一旦发现外网IP变了就更新域名解析,客户端统一用域名。基本不掉线。

肥佬布
0
02-18 22:29

怎么配置经常变的网关,群晖ddnsipv6可以,但网关没配置好的话,是出不去的

windli
0
02-17 23:45
值4531828: 不如ddns 1
签到钱就到: 路由器不支持v6的ddns,并不是不想用。 只是换了个方式实现了ddns。 ddns其原理也就是ip变化时,将域名与ip重新绑定。 我这里的域名就相当于这里的文件下载的api,搭建好通路后,就跟域名无太大区别。 通过域名请求,只需要请求一次dns,使用起来更方便。 直接通过ip请求,不绑定域名,被入侵风险会降低,毕竟私有的服务器。 2
展开隐藏评论
windli: 并不需要你的路由器支持ddns ipv6,只需要你的电脑服务器支持就行了。ipv4的年代,你整个家庭网络对外只有一个ipv4公网地址,所以需要路由器把这个ipv4公网地址上报给ddns服务商,也就是需要路由器支持ipv4 ddns。但是ipv6的年代,你家每一个设备都有各自的ipv6地址,所以需要他们各自将自己的ipv6地址上报给ddns服务商(当然实际上只有需要外网访问的设备需要做这件事),所以只需要这些设备自己支持ipv6 ddns即可,并不需要路由器做这件事(除非你想外网访问你的路由器) 3
签到钱就到: 在ipv6下的确可以每个设备自己设置ddns。我理解的路由器,应该承担家庭网络管理的中心,路由器知道其下所连接所有设备的地址和变化情况,可以随时决定绑定或解除所连接的设备,并不是暴露路由器的ipv6地址。未来大多数应该还是会支持ipv6的ddns的,不过就是慢慢挤牙膏,或者加钱买更贵路由器,才可以有的功能。 4

问题是路由器并不知道下挂设备与ipv6地址的对应关系啊。比如你家里有电视、笔记本、手机、服务器,你只希望上报服务器的ipv6地址给ddns服务商,路由器怎么办得到呢?路由器确实有可能知道下挂的所有设备的ipv6地址,但是他并不知道其中哪个是服务器啊。这并不是路由器的功能强一点就能解决的事情,因为每个设备也不会告诉路由器自己是谁。 说这么多,简单一点就是说,你在服务器上直接跑个脚本上报ipv6 ddns就行了,现在大家都是这么干的,行得通的。

签到钱就到
0
02-17 20:45
值4531828: 不如ddns 1
签到钱就到: 路由器不支持v6的ddns,并不是不想用。 只是换了个方式实现了ddns。 ddns其原理也就是ip变化时,将域名与ip重新绑定。 我这里的域名就相当于这里的文件下载的api,搭建好通路后,就跟域名无太大区别。 通过域名请求,只需要请求一次dns,使用起来更方便。 直接通过ip请求,不绑定域名,被入侵风险会降低,毕竟私有的服务器。 2
展开隐藏评论
windli: 并不需要你的路由器支持ddns ipv6,只需要你的电脑服务器支持就行了。ipv4的年代,你整个家庭网络对外只有一个ipv4公网地址,所以需要路由器把这个ipv4公网地址上报给ddns服务商,也就是需要路由器支持ipv4 ddns。但是ipv6的年代,你家每一个设备都有各自的ipv6地址,所以需要他们各自将自己的ipv6地址上报给ddns服务商(当然实际上只有需要外网访问的设备需要做这件事),所以只需要这些设备自己支持ipv6 ddns即可,并不需要路由器做这件事(除非你想外网访问你的路由器) 3

在ipv6下的确可以每个设备自己设置ddns。我理解的路由器,应该承担家庭网络管理的中心,路由器知道其下所连接所有设备的地址和变化情况,可以随时决定绑定或解除所连接的设备,并不是暴露路由器的ipv6地址。未来大多数应该还是会支持ipv6的ddns的,不过就是慢慢挤牙膏,或者加钱买更贵路由器,才可以有的功能。

打开App,查看更多好文和评论
文中商品
猜你喜欢
查看更多
相关好价
相关商品
查看更多热门商品
社区主页 文章详情
91
172
28
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索