前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >天降公网ip - wuuconix's blog

天降公网ip - wuuconix's blog

作者头像
wuuconix
发布2023-03-16 15:58:29
4.1K0
发布2023-03-16 15:58:29
举报
文章被收录于专栏:wuuconixwuuconix

背景

之前因为家里是移动的宽带,不给你分配公网ip,所以你无法实现类似在逛街的时候远程连接家里的电脑之类的操作。

相比于移动,我哥家里的宽带是电信的,他一个电话过去,电信立马给了公网ip,所以他可以随时随地远程控制他的电脑,这令我很羡慕。

内网穿透之旅

当然了,在过去一个学期里,随着知识和经验的进步,我学会了内网穿透。简单的理解起来,它干的工作类似于端口转发,只不过我们把本地的服务转发到了一台有公网ip的云服务器上。

上个学期我购买了一台阿里云轻量级应用服务器,然后利用开源的内网穿透工具 fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. (github.com) ,我可以实现将局域网里的服务进行公网访问。

frp虽好,但是一个问题也一直困扰着我,这便是由于服务的传输完全经过云服务器,相当于云服务器担当了中间人,安全性我倒是不担心,因为是自己的,但是速度就非常慢了。众所周知,国内的云服务器带宽都十分感人,我的服务器**5Mb/s(0.625MB/s)**的带宽已经 鸡立鸡群了。

然后在这个寒假我又发现了一个基于Ngork的内网穿透软件 open-dingtalk/pierced: 钉钉内网穿透 (github.com)。它的服务端部署在钉钉的国内高速机房里,带宽实测在3MB/s左右,已经非常快了。

突然发现的IPV6

昨天我在瞎玩的时候,突然发现我家的移动宽带是有公网ipv6的。

现在我教大家如何快速判断你所在的网络有没有IPV6。直接在powershell中输入ipconfig

ipconfig
ipconfig

如果有IPv6 Address,并且开头不是fe80的话,那就说明你很幸运的拥有了一个公网ipv6,这意味着你的电脑完全提供服务并在公网中访问。

还可以访问此网站 IPv6地址查询 | IP查询(ipw.cn) 如果出现以下类似画面,说明你确实拥有一个公网ipv6。

注意访问此网站请关闭代理工具,不然会得到代理服务器的ip,而一般的代理服务器都是不支持ipv6的。

ipv6地址查询工具
ipv6地址查询工具

IPV6的特点

也许大家会有个疑惑,按理说我的笔记本连在一个路由器下,得到的ip应该是一个内网ip,比如192.168.1.60。而为什么我笔记本上的ipv6能够直接是公网ip呢?

这大概是由于ipv6的数量实在是太多了。我们来简单算一笔账,我们知道ipv4一共是32位。

ipv4的数量
ipv4的数量

所以总共ipv4的数量是43亿个,这对于这个信息化的世界来说,一个人可能有数台设备,一个公司里面可能有数百台设备,如果每台设备分配一个ip,这个ipv4是完全不够的,所以出现了NAT这种方式来缓解这种资源的紧张感,一台路由器下的所有设备都会被分到一个内网ip,这个内网ip是无法在公网中被访问的。

而ipv6是64位。

ipv6的数量
ipv6的数量

它的数量我大概数了一下,应该是1844亿亿个。按全球人口70亿人来算,每个人都能分到263亿个ip。

每个人能分到的ipv6个数
每个人能分到的ipv6个数

所以公网ip一下子从一个稀缺资源,变成了一个人唾手可得的资源。所以对于ipv6而言,NAT这种方式已经没有意义了,所以局域网下的所有设备都会被分到一个公网ipv6。

手机流量也有IPV6

昨天下午在发现家里宽带有公网ipv6后已经非常高兴了,晚上睡觉前又试了一下,发现我的移动卡也有IPV6!

移动ipv6
移动ipv6

可以看到因为我有两张移动卡,这里直接有两个ipv6。

没想到ipv6的推广如此迅速又如此悄无声息,大部分普通用户都没有意识到它手里掌握着许多公网ip。

IPV6 + WSL2

有了公网ip,实际上我们已经能实现一开始说的情景了,不用内网穿透,直接在任何地点远程连接我的笔记本。由于比较简单,这里就不放图了。

平常我都用WSL2来作为生产力环境。我们都知道,windows对wsl2做了很强的适配,wsl2按理说是一个虚拟机,如果我们需要访问wsl2中的8081端口上的服务,按理说得到windows主机的浏览器输入http://wsl2-ip:8081的url才能访问到。

但是微软帮我们自动做了一层端口转发,wsl2内部的任意端口都会被转发到windows主机的对应端口上,所以,我们只需要在浏览器中输入http://127.0.0.1:8081就能访问到wsl2 8081端口上的的服务。

8081
8081

我在8081端口开了一个nextcloud。

所以我们现在能否直接通过http://[ipv6]:8081的方式来访问这个服务呢?

可以,但是需要以下两步设置。

在高级防火墙设置中添加8081端口的入站规则

入站规则
入站规则

在poweshell将ipv6的端口的请求转发到ipv4对应端口

这里有点绕,大概原因就是wsl2给我们的端口转发只是ipv4层面的,我们无法通过ipv6来访问对应服务,所以我们需要把ipv6对应端口的请求转发到ipv4对应的端口。 如果你的服务不是wsl2上的,而是直接在windows主机中开启的服务,按理说该服务会同时相应ipv4和ipv6的请求,你就不用干这一步了,只需要执行第一步的增加入栈规则。

在powershell中以管理员方式执行以下指令

代码语言:javascript
复制
netsh interface portproxy add v6tov4 listenport=8081 connectport=8081

然后你可以通过以下指令查看转发是否成功

代码语言:javascript
复制
netsh interface portproxy show all
show all
show all
ipv6访问
ipv6访问

可以看到,成功使用ipv6访问服务。

用手机尝试下载文件时,可以看到速度达到7MB/s。这应该受限于我家的宽带的带宽,如果你家是千兆宽带,那就直接起飞了。

速度
速度

美中不足

受到国家政策的限制,运营商都对80/443端口进行了封锁,应对服务器满天飞而造成监管难度过大的困境。

所以我们暂时只能用其他的端口提供服务。

丑是丑了点,但是想到这美妙的带宽,一切都是值得的,而且,白嫖的公网ip嘛!要什么摩托车。

写在最后

后天就去学校了,我希望校园网也有ipv6,之前没有注意过,如果真的有,真的就可以告别内网穿透了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年2月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 内网穿透之旅
  • 突然发现的IPV6
  • IPV6的特点
  • 手机流量也有IPV6
  • IPV6 + WSL2
  • 美中不足
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档