宽带的真正乐趣。什么?在月亮上访问家里的电脑
创作立场声明:若有写的不好的地方,望诸位海涵。
前俩天跟大家分享了打开公网ip 的方法,也顺便告知大家打开公网ip 的好处:你可以在外面方便的访问家里的资源。比如硬盘里面的教学视频,家里的监控...还能在远程直接访问家里的桌面,远程开机...
这里再简要回顾下:你需要使用路由器的PPPoE 的拨号功能上网;然后查看PPPoE获得的ip地址,如果是100开头的地址,就打客服要求公网ip地址。具体过程说起来简单,但也非常巧妙,不妨看看这篇教程。
今天跟大家聊聊,公网ip究竟能干什么!?
基础:程序是如何通信的?
你的ip地址是1.2.3.4,我的ip地址是51.52.53.54。(5代表我)
如果我的微信给你拨打了一个电话,就意味着:51.52.53.54 ------电话请求-----> 1.2.3.4
当然,这是一个简化的过程。
现在问题来了,我的微信打了一个视频电话给你的微信,你的手机收到请求后,手机是如何知道把这一请求交给微信处理呢?也就是说,ip实现了俩个设备的通信,但是设备上具体的程序要实现通信,单靠ip 还不够。要区别通信的程序,还需要一个东西,这个东西是什么?
端口号。这里是微信打电话,而不是QQ或其他软件。区别方式就是端口号。
也就是说,每一个程序在网络通信过程中,都需要获得一个端口号。比如当你在浏览器访问值得买网站时,你其实访问的是https://www.smzdm.com:443,也就是网站的服务器程序使用443端口提供对外服务。
当然,https默认使用这个端口,所以443端口号被浏览器省略显示了。不信?你加上:443也是可以访问的。
总之,任何程序之间的通信,都需要端口号。
那是一个可怕的时代!
以前的电脑很多都是直接接入网络,那时,每个上网的电脑都有一个公网ip。多美好的时代?可别高兴太早!
因为程序是人设计的,所以难免会犯错!这就意味着我们的系统可能到处都是漏洞。而由于我们的电脑都是公网ip直接接入网络,所以那时的很多电脑的端口都暴露在外。这就给了僵尸网络,木马,病毒可趁之机...
尤其是那些常用端口,比如
http的80端口
远程登录ssh的22端口
共享文件SMB的445端口
...
这些端口的暴露,很容易导致电脑中毒。当然,操作系统的设计者也意料到这一点,所以在默认状态下都会关闭端口。
不仅如此,宽带商们(也就是电信移动联通)也会贴心地帮用户封禁这些端口。不得不感叹:
有一种爱叫做封禁
后来ip地址不够了
时间来到2000年代,互联网爆炸式发展,需要上网的设备越来越多,ipv4地址不够用的故事,想必你已经听过。为了让一个公网ip支持多个设备上网,路由器来到了你家。
路由器可以使一个公网ip为多个设备所用,其奥秘是一种叫做NAT的技术。
NAT:Network Address Translation,网络地址转换。NAT分多个类型,家用路由器常用端口号转换来实现ip复用。在ip枯竭的2010年代,运营商自己就利用NAT来复用ip,你的路由器甚至连一个公网ip都没有。这种上网方式或许可以称之为NATxNAT,也就是NAT²。
NAT原理大家不用太纠结。总之就是通过不同端口号实现了对上网ip的复用
当然,对于大部分用户而言,这并不影响他们上网,而且对于有需求的用户,比如挨踢君,比如屏幕前的你,也是可以打电话申请公网ip的。记住,免费的!
NAT的喜与怒
如果说,电脑直接上网可能有端口暴露的风险,那么躲在路由器后面的电脑、手机、智能设备反而变得安全。所有攻击被路由器挡住了。NAT不仅帮运营商节省了ip,还让用户设备变得安全。
不过,有得就有失。NAT 的代价就是,因为端口没有直接对外暴露,你就无法直接在外面访问家里的资源了。比如你硬盘上的教学资源,你拍的小视频,你准备的ppt等。当然,这难不倒挨踢君。
下面的教程需要你的路由器使用PPPoE 的方式上网,并且PPPoE获得了公网ip。如果没有,看这篇教程。
端口转发
假设你家路由器的公网地址是1.2.3.4,内网地址是192.168.1.1。如果你在浏览器输入:
http://1.2.3.4:80 <------------ 这里的:80 可以省略。
是无法访问路由器的管理页面的。
这时,我们在路由器设置端口转发。将外网的10080端口(请勿使用80端口)转发到192.168.1.1的80端口。这样,当我访问http://1.2.3.4:10080时(这里的:10080不能省略),就能访问到内网的http://192.168.1.1:80。
再用一个例子强化一下:
假设你还有一台电脑,其局域网ip为192.168.1.2,如果你打开了远程桌面协议,那么为了让电脑能够从外面访问。将外网3389端口的访问转发到192.168.1.2的3389端口。这样,当我访问rdp://1.2.3.4:3389时,就相当于访问到内网的rdp://192.168.1.2:3389。
好了,不管是http,ftp,ssh,wol(远程开机), rdp(远程桌面)还是smb(文件共享)。这些服务都能通过公网ip+端口转发实现外部访问。
哪怕你在厕所里、沙漠里甚至月亮上...不管在哪,只要接入了因特网,就能访问家里的服务! 这里说一下,我的工作室里面的NAS下载了十几个T 的蓝光原盘,用SMB共享,在家里访问观看也不会卡!
可是,如何知道我的公网ip呢?
很多朋友想说,挨踢君,你的介绍貌似很厉害的样子。那么问题来了,我要如何知道家里的公网ip是多少呢?而且据说ip地址过一俩天就会换,如何时时刻刻掌握路由器里变化着的ip 呢???
其实知道自己的ip不难,难的是时时刻刻知道。我知道,这时候会有人提内网穿透。首先,内网穿透是没有公网ip 的折中方案,性能和网速都十分受制,更别想着看蓝光电影了!既然我们有了公网ip+端口转发,就不可能忍受内网穿透。
有俩种方案可以让你时时刻刻掌握路由器里变化着的ip。1、DDNS,2、云主机。
DDNS 讲的人太多了,我讲云主机的方法。另外,我之所以不用DDNS 是因为DNS缓存策略,使得新ip生效有几分钟乃至十几分钟的延迟,这对我来说是不可接受的。
将云主机作为ip据点
我的路由器使用的是OpenWrt系统。OpenWrt是Linux发行版,所以可玩性很强。这里说一下挨踢君的ip逻辑:因为云主机都有一个固定的ip,那么就以这个主机为ip据点。
在工作室的路由器里,我写下脚本。实现如下逻辑
如果PPPoE重新拨号,产生了新ip,那么就将这个ip写入到我的腾讯云主机
通知微信,workstation的ip为xxx.xxx.xxx.xxx
在云主机获取家里路由器的ip
通过上述ip访问家里路由,将工作站新ip写入家里路由器的Hosts 文件,xxx.xxx.xxx.xxx workstation
同样在家里的路由器里,我写下脚本。实现如下逻辑
如果PPPoE重新拨号,产生了新ip,那么就将这个ip写入到我的腾讯云主机
通知微信,myhome的ip为yyy.yyy.yyy.yyy
在云主机获取工作站路由器的ip
通过上述ip访问工作站路由,将家里新ip写入工作室路由器的Hosts 文件,yyy.yyy.yyy.yyy myhome
大家应该看出来,上述俩个脚本是“对称”的。同时,云主机和我的微信时刻掌握着两端ip的变化。当然,大多数人肯定不需要这么复杂的逻辑,执行前俩个逻辑即可。
解释几个关键概念消息推送,Hosts文件:
如果PPPoE重新拨号,就执行相关脚本,这需要脚本放在/etc/ppp/ip-up.d目录下。该目录的脚本会在ip变化时执行。
为了推送微信通知,我使用了Server酱服务,免费的微信消息推送服务。基于http请求,十分简单。
Hosts 文件相当于一个ip 域名对照表。写入Hosts 文件的好处在于:在彼此路由器网络环境下,所有设备都能方便地访问到对方网络,而且可以自定义对方网络的域名。
总结
有了公网ip并使用端口转发,就能非常方便地访问家里的文件、服务。
使用DDNS或者高级一点,编写Linux脚本可以非常方便的时刻掌控变化着的ip。
为了做到上述俩点,本文捎带回顾了公网ip 和NAT的相关历史。其实,家里的网络不仅仅是访问外网的工具,还应该具备被外网访问的能力!这才是真正的网络!这才是宽带真正的乐趣!
学习这些知识可深可浅,挨踢君会力求文章浅显易懂,让大家掌握相关概念。所谓修行靠自身,如果想更加深入玩转网络和OpenWrt可以关注我(划去) ,可以系统学习相关知识。
如有疑问,可留言告知!新人码字,求轻喷,求三连。
白粥送饭
。。。
还有什么可以帮您?
好的,五星好评请按1。
感谢您的来电,再见
校验提示文案
八神鹌鹑
校验提示文案
不吃糖
校验提示文案
什么买的起
校验提示文案
thankU4help
校验提示文案
mengdie101
校验提示文案
gofaster
校验提示文案
活动小小值
校验提示文案
Terry0086
校验提示文案
值友5378851811
校验提示文案
一剑凌云
校验提示文案
值友4593394272
校验提示文案
Oceanus911
校验提示文案
商小生
校验提示文案
花都小胖纸
校验提示文案
发呆的原始人
校验提示文案
hxlxz
校验提示文案
新垣意马
校验提示文案
没事别逛张大妈
校验提示文案
追风的小明
校验提示文案
kennyl
校验提示文案
asct
校验提示文案
商小生
校验提示文案
長凮
校验提示文案
死在太空的猪
校验提示文案
chyal
校验提示文案
值友9681543542
校验提示文案
麒麟小龙宝
校验提示文案
绯红的板砖
校验提示文案
值友hwladd
校验提示文案
kingste
校验提示文案
天雷小滚滚
校验提示文案
无视重力
校验提示文案
松松大爷
校验提示文案
julietibm
校验提示文案
julietibm
校验提示文案
暖成咖啡
校验提示文案
問道于心
校验提示文案
C_Lori
校验提示文案
幻想BOY
校验提示文案