树莓派B+是14年买回来的,本来想通过其学习linux,却一直在角落堆灰。这次拿出来一是想配置一下ssh,想搭建一个家庭24*7服务器,不料由于各种原因困难重重。本科计算机网络知识大部分停留在理论阶段,刚好借此机会,通过配置树莓派学习一些远程控制的概念、方法以及涉及的网络知识。
本文主要涉及知识有:NAT,DHCP,DDNS,内网穿透,跨越NAT的P2P打洞等,最终实现在外网连接NAT后的树莓派并用ssh登陆系统。
内网穿透、远程控制、端口映射,八种方法汇总:链接
nat123服务安装教程:链接
聊聊什么是公网IP 内网穿透 端口映射:链接
ngrok Github Repo:链接
frp Github Repo:链接
内网穿透工具的原理与开发实战:链接
P2P中的NAT穿越方案:链接
想要远程控制一台电脑,一个是利用ssh登录电脑,或者用远程桌面登陆。一个是CLI界面,一个是GUI界面。本质上来说,就是需要设计一种协议,在服务端和客户端之间进行通讯,而他们的区别则是通讯协议不同,使用的安全加密手段不同。下面的简介大部分来在Wikipedia介绍页面。nat来配置外网访问内网
Secure Shell是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合类Unix系统,但是Windows操作系统也能有限度地使用SSH。
有很多公司都设计了远程桌面的软件,使用的通讯手段、加密手段各不相同。这里主要考虑使用下面两种最常用的远程桌面协议。
VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的显示屏画面。
RDP(Remote Desktop Protocol),是一个多通道(multi-channel)的协议,让用户连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。服务端电脑方面,则送到TCP 3389的数据。
理论上,上面所提及的远程控制方法,只需要开相应的端口,然后根据机器在互联网中的IP地址与端口号进行通信即可。然而,由于ISP无法保证为每一个宽带用户提供全球唯一的公网IPv4地址,所以这又涉及到很多其他的网络知识,在这一部分详细描述。
路由器负责将内网的IP与端口号映射到公网的IP与端口号,并以该IP与端口号与外网进行通讯,并作为中间桥梁控制其间的数据传输。那么路由器怎么分配内网IP,以及ISP如何分配一个IPv4地址?利用的便是DHCP协议,下一小节描述。
在本科计算机网络课程中,DHCP也同样被详细讨论过。DHCP是一个局域网的网络协议,使用UDP协议工作,主要用于内部网络或网络服务供应商自动分配IP地址给用户,同时也可以作为内部网络管理员作为对所有电脑作中央管理的手段。
其原理其实很简单,通过广播、协议标识号,经过DHCP发现,提供,请求,确认的流程给一个新链接入网络的设备分配IP。
所以,目前为止,我们知道路由器内网的IP并不是公网可以访问的IPv4地址,甚至路由器的wan口接着的也是运营商提供的私网IP(可以通过查路由器设置与访问外网的IP进行对比可知)。下面讨论如何在这种情况下将内网的服务暴露到公网上:
先讨论的第一种情况是如果ISP比较良心,给了公网IP,那么将内网的端口暴露到公网就比较简单了。直接在路由器上设置一下端口映射,将内网IP与端口映射到公网IP的一个端口上。当外界需要访问内网端口的服务时,只需要向公网IP对应的端口发起请求即可。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-66084-1.html
银行明面上存款利率降低
肯定不会让我们失望的