客户端A,B均向服务器发送连接请求,并带上自己的内网地址。
服务器获得<内网地址:端口,外网地址:端口>二元组,并分别将A,B的二元组发给B,A
A,B分别尝试向内网地址与端口,外网地址与端口发送UDP包。nat来配置外网访问内网当A发送的数据包已经经过NAT,并记录了相应的表项,且B发送的数据包同样也通过了NAT,记录了相应的表项,UDP数据包就可以正确的被接受与翻译。此时便可等效的为对方发送UDP数据包了。这个过程就是打洞过程。
一旦应用程序确认已经可以通过往对方的外网地址发送数据包的方式让数据包到达NAT后面的目的应用程序,程序会自动停止继续发送用于“打洞”的数据包,转而开始真正的P2P数据传输。
国内提供这个服务的还是花生壳和nat123,由于p2p连通之后也就没他们什么事了,所以一般这个服务都是不怎么要钱的。
首先,ssh端口会默认占用22端口,如果树莓派拥有一个外网IP,那么开启ssh服务后,直接访问该IP的22端口,即可利用ssh登陆树莓派。但是我们家的网是刚才讨论的第三种情况,需要利用内网穿透技术。下面小节使用的nat123提供的服务。
不仅仅外部ISP是动态分配IP的,路由器的内部同样也是动态分配IP的,然而为了不用每次都到路由器查询设备分配的IP,可以设置路由器DHCP静态IP分配,保证树莓配在该内网上分配的IP是固定的。(根据MAC地址来确定的)。如在小米路由器中,设置DHCP静态IP分配设置如下:
先通过局域网对刚才配置的IP进行测试。树莓派中安装的ssh服务器的配置文件没有修改,就使用的默认的22端口,且刚才在路由器做了内网DHCP静态IP分配为192.168.31.216,故通过局域网ssh到树莓派的地址是:192.168.31.216:22。
可以直接通过同一网段的电脑连接上局域网地址的树莓派。
由于国家规定要实名制,刚好网站想捞一笔,需要支付宝支付实名认证。为了实验乖乖掏出8块钱充了服务币后准备开始配置。有VPS的孩子可以利用参考文献4,5的那两个开源软件自己搭建内网穿透服务器。
首先根据官方文档安装nat123的客户端并开启,这对应内网打穿的NAT内节点连接服务器的步骤。这时服务器分配的端口是随机分配的。
然后登陆nat123进行端口映射设置:
而后直接通过该外网域名与端口连接ssh服务即可:
在macOS的终端上登陆
在iOS上使用Termius登陆SSH
当手边没有显示器时,利用VNC远程桌面连接树莓派现实图形界面是一个不错的选择。就是考虑到继续用内网穿透技术来远程访问速度会非常慢,故这里只测试局域网同一网段下的连接。
在树莓派上安装VNCserver,并运行,即可通过局域网与VNC的端口来连接远程桌面:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-66084-3.html