精华内容
下载资源
问答
  • 天降公网ip | 你也许已经有公网IP
    千次阅读
    2022-02-18 20:12:57

    背景

    之前因为家里是移动的宽带,不给你分配公网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

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

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

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

    ipv6地址查询工具

    IPV6的特点

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

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

    ipv4的数量

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

    而ipv6是64位。

    ipv6的数量

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

    每个人能分到的ipv6个数

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

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

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

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

      入站规则

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

      这里有点绕,大概原因就是wsl2给我们的端口转发只是ipv4层面的,我们无法通过ipv6来访问对应服务,所以我们需要把ipv6对应端口的请求转发到ipv4对应的端口。

      如果你的服务不是wsl2上的,而是直接在windows主机中开启的服务,按理说该服务会同时相应ipv4和ipv6的请求,你就不用干这一步了,只需要执行第一步的增加入栈规则。

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

      netsh interface portproxy add v6tov4 listenport=8081 connectport=8081
      

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

      netsh interface portproxy show all
      

      show all

    ipv6访问

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

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

    速度

    美中不足

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

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

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

    写在最后

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

    更多相关内容
  • 腾讯云DDNS脚本,家里是公网IP的宽带可以自动更新公网IP,sh脚本可以在linux或者window运行
  • 最近在折腾Python Web,在测试的时候发现,本机可以正常访问,但外网无法通过公网IP访问页面。经过各种搜索,有大致三种解决方案。 一、修改/添加安全组端口 这是第一种方案,也是能解决大部分问题的一个方案。 由于...
  • 获取公网ip小工具

    2019-09-03 23:22:10
    python+pyQt5做的一个获取公网ip地址小工具,初次接触桌面程序,做的比较简单,大家凑合着用。
  • 本篇文章是对在linux中使用c语言获取本机公网IP的方法进行了详细的分析介绍,需要的朋友参考下
  • 下面小编就为大家带来一篇Python之自动获取公网IP的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 获取公网ip并发送邮件 https://blog.csdn.net/qq_37383852/article/details/119641446
  • 功能: 在私网内检测公网出口ip变化,并邮件通知私人邮件 使用技术: shell 脚本、linux系统知识 背景: 因为家里是nas服务器,使用的是联通网络...这样能随时知道公网ip变化,以便能实时通过公网ip访问家里的私有云。
  • 主要介绍了Java判断IP地址为内网IP还是公网IP的方法,针对tcp/ip协议中保留的三个私有地址进行判断分析,是比较实用的技巧,需要的朋友可以参考下
  • 获取公网IP

    2018-01-16 13:21:44
    开发语言为C++ 开发工具为VS2008 可以获取公网(路由器Wan口)IP地址
  • 本工具能够自动获取本地公网IP并将其发送到指定邮箱:1:每15分钟查询一次本地的公网IP,如果本地公网IP发生变化则将公网IP上报到指定邮箱。2:如果本地公网IP没有发生变化,则按用户设定的时间间隔定时发送本地公网...
  • 自己写的ip查询小工具
  • 大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP,经过我的研究有两种方法来获取用户的真实外网IP
  • 搭建服务器+客户端阔以内网穿透
  • 本案例从PHP测试环境,到解决80端口被屏蔽被封的问题,使用本地公网IP加速等提升网站速度方案,下面就详情来看看参考下,希望对大家有帮助
  • 发送公网ip到邮箱

    2019-02-27 18:11:03
    这是一个获取本机公网ip并发送到某个邮箱的方法,使用方法参照: https://blog.csdn.net/EX5219/article/details/87982747
  • 内容索引:VB源码,网络相关,公网,IP VB利用三种方法获取公网(外网)IP,三种方法都要使用Windows内置组件,因此如果找不到组件的话程序编译会出错,运行也会出错:  第一种:使用Winsock控件(MSWINSCK.OCX)  第二...
  • 分配公网 IP 地址之前,实例必须处于 运行中(Running)或者 已停止(Stopped)状态。 当VPC类型实例已经绑定了 EIP,则无法再分配公网 IP。 一台实例只能分配一个公网 IP 地址。如果实例已经拥有一个公网 IP 地址,...
  • 通过容器获取本机的公网ip 可以用本地IP 多服务注册中心 把命令改居ping 执行可以拿到不同的服务器信息 public static String getIfconfigIP() { BufferedReader in = null; String outline = ; // timeOut ...
  • NULL 博文链接:https://kavy.iteye.com/blog/2241797
  • 主要介绍了网络知识之内网IP和公网IP的区别,,需要的朋友可以参考下
  • 今天写了一个获取当前公网ip并且自动断开宽带连接的文件,和大家分享下。 这个文件的具体用途大家懂的,可以尽管拿去用,不过目前只适用于Windows平台,我的Python版本是2.7的,win32ras模块需要下载pywin32。 ...
  • getTempIP 获取临时公网IP,用于没有固定公网IP时所用。
  • PPPoE ---CPE客户端的命令行,如何拨号获得公网IP地址,如何用物理接口关联拨号虚接口。
  • 没有公网ip 利用内网穿透的办法实现远程访问群晖nas 随时随地资源互联 欢迎下载
  • PHP通过$_SERVER['REMOTE_ADDR']得到的是内网IP?如何才能获得客户的公网IP(真实IP地址).zip
  • 使用公网ip伪装接口访问接口,适合运维小白
  • 获取设备端的公网IP、内网IP以及网关。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,050
精华内容 48,020
关键字:

公网ip

友情链接: 爱心函数.zip