让没有公网IP的电脑像公网一样可以被访问
首先先要明确一点,什么叫做公网IP:公网ip是指用公网连接Internet上的非保留地址,可以与Internet上的其他计算机随意互相访问。互联网上的每台计算机都有一个独立的IP地址,该IP地址唯一确定互联网上的一台计算机,这个IP地址就是指的公网IP地址。
可是在当年制定协议的时候没有想到当今互联网发展速度如此之快ip(这里指ipv4)变成了稀有资源(当然这里说的是中国,因为在美国当年制定协议的时候给自己留了非常多的地址段),于是催生了ipv6(这里不详细展开说ipv6了)。
那在ipv4匮乏的年代且ipv6还没有普及的情况下,我们该怎么办?按照定义来说没有公网IP的设备就无法上网了,这可是件大问题,这让本来事不关己的人也陷入了恐慌,于是我们要引入一个概念NAT网络。
NAT(Network Address Translation),是指网络地址转换,我依旧不想讲的特别麻烦深奥,我们不妨设想一下,假设你现在在家里,家里有着物联网的空调、电饭煲、热水器、电灯、电视机、智能音箱等等需要网络的设备,还有你的电脑、Pad、手机等等日常需要的物品,他们需要上网必须要有IP(被分配IP),但实际上我们没有那么多IP给一个人用(一个人占几十个公网IP地址怕别是会被人打死)
既然没有那么多的公网IP分配给我们,也不见得我们的这些设备不能用呀,这其中就是NAT的功绩。
你可能会问你不记得有添置相关的网络设备呀,其实不然,你家里的路由器就是担当这个功能的角色。路由器把一个公网IP掰成理论最大254个内网IP分给这些设备用,让他们无需再去申请独立的公网IP(但实际上也不会一户一个公网IP,实际上可能一个小区也就一个公网IP,说不定范围更大才有一个公网IP,但在此我先假设你家有独立的一个公网IP)。
这个NAT就有意思了,假设你的公网IP地址是114.51.41.191,经过NAT地址转换后不论你手机、电脑、Pad、空调、电饭煲、手表等等一系列需要上网的东西,他们在外人看来的眼里,他们的公网IP地址都是清一色的114.51.41.191。这个过程是从内到外,而从外到内在没有经过设置的情况下是无法访问进来的也就一定程度上的保证了内网的安全。
公网IP是个好东西,不论是对下载速度的提升,还是自己搭建一个游戏服务器,亦或是自己搭建一个网站都是个不错的选择,但难受就难受在90%(几乎是100%,但是听群友说他们那边直接给公网IP的,但是也有一定几率会被回收)的情况下你的宽带运营商不会给你公网IP,需要公网IP可以自己申请(浙江不行了),或者拉专线(钱多无所谓)。东西是好,但我没有啊啊啊啊!怎么办?那就要讲内网穿透FRP这个东西了。
ps:你以为只有你家里路由器会做nat?运营商也在做更大的nat哦()
众所周知
服务器必定有公网IP,在此为了防杠我说的是自带公网IP的服务器,不要来和我扯nat服务器。
我们自己没有公网IP,但是服务器有啊!我们把服务器的拿过来用不就好了?!
于是FRP应时而生。
FRP从本质上来讲也是端口映射,两者都是将内网地址映射到公网可访问的地址,而区别是端口映射直接在路由器中配置即可。
而FRP配置的端口映射则需要客户端和服务端进行绑定后实现,相当于客户端和服务端之间建立了一条隧道,然后访问服务端的请求会通过隧道转发给内网主机。
总而言之让没有公网IP的人获得人权(不是)
如何部署?这里我只讲docker方法
只讲docker也是因为最简单最好理解不需要自己瞎折腾就可以轻轻松松实现内网穿透
准备工作:
1.一台线路不错的vps(国内为最优,其次是香港cn2gia、香港cmi、日本iij、日本软银),插一句嘴,带宽不可以太小这直接影响你后续的体验!
2.脑子、手、安装完宝塔的vps
安装步骤
1.进入宝塔面板后台去软件商店中安装docker已安装的请无视
这里直接在搜索栏搜索docker,不要自己一页一页翻了,安装需要时间,耐心等!
2.新建文件夹
在此目录下新建一个名为“frp”的文件夹,并进入该文件夹,注意:本处新建文件夹是在opt文件夹下,如果你怕自己找错文件夹,请你直接再上方地址栏输入“/opt”然后敲击回车
3.新建名为frps.ini的文件
进入我们刚刚新建的frp文件夹内,右键新建一个名为“frps.ini”的文件,并在其内添加以下代码
[common] # 监听端口 bind_port = 7000 # 面板端口 dashboard_port = 7500 # 登录面板账号设置 dashboard_user = [改]面板账号 dashboard_pwd = [改]面板密码 # 设置http及https协议下代理端口(非重要) vhost_http_port = 7080 vhost_https_port = 7081 # 身份验证 token = [改]身份验证token
只改我写"[改]"的地方,其余的什么什么端口都别乱动
4.运行一键脚本
docker run --restart=always --network host -d -v /opt/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
确保你已正确按照上述步骤安装完docker后,这段代码才会执行,请勿在执行时做其他操作,执行需要下载必要文件请耐心等待
5.放行端口
在上述frps.ini里提到的端口7000、7500、7080、7081需要在宝塔防火墙放行以外
我们还需要放行frp穿透的端口,一个设备占用一个端口,不可以两个设备用同一个端口号(这一段是废话)
各位可以和我一样放行10000个端口(30000-40000),这样做的好处是你后续新增需要内网穿透的设备时,端口只需要写3xxxxx就可以立马生效了,无需再次进入宝塔添加需要放行的端口,当然了,一个一个放行端口也不是不好,会更加的安全。
5.打开ip:7500查看是否安装成功
至此frps安装成功,如果需要实际使用则我们要接着使用frpc,请接着往下看
frps里的s指代server,也就是用来穿透的服务器
frpc里的c指代client,也就是需要被内网穿透的客户端
所以下方我们会将在Windows使用frpc来使用内网穿透
首先先下载我提供的包
frpc按照我在frpc.ini里做好的注释自行修改
如何确定是否修改成功,可以手动运行一次“frpc.bat”然后去frp控制面板(ip:7500)查看
接下来讲的是添加开机自启
打开开始菜单找到任务计划程序,随后你可以选择把他拖到边上方便下次找
然后我们打开这个东西,并选择创建任务
接下来的每一步请按照我的操作来,不要有反骨
这里插一句,绿色框框说的是这个frpc.exe的绝对路径,你放哪里就写哪里
按上述全部操作完成后别忘记确定
然后你可以自信重启一下电脑,然后打开电脑后直接去frp管理面板看电脑是否上线了。
如果没有成功请再仔细看看我的步骤,还有远程桌面需要手动去打开,Windows默认是不开启的.
本文作者为萝莉工坊,转载请注明。