
通常我们会将树莓派放在家里,做家庭影院之类的种类。而目前,各个运营商的带宽都起初推行内网政策,也就是不会给民宅公网IP,所以像以往利用花生壳软件来推动DNS动态更改的方式是能够奏效了。
那么该如何办呢?
现在,我们想要在内部访问家庭网络中的树莓派,可以使用ssh反向隧道技术,它的机理比较简单:
树莓派主动向某网段服务器建立ssh连接,并请求公网服务器开启1个额外的SSH的服务网关,充当树莓派的反向代理服务。树莓派与外网服务器之间的TCP(SSH)连接是树莓派主动发起的,而公网服务器与内部客户之间的TCP(SSH)连接是内部客户主动发起的,公网服务器在中间充当代理角色,转发两侧的数据。
从最准确的视角来讲,外部客户到公网服务器之间可以构建多条TCP连接,而公网服务器到树莓派则只有一条共享的正向TCP连接,这是整个技术推动角度的机理。
树莓派向公网服务器建立的ssh连接也许由于网络问题断开,所以通常我们不直接使用ssh命令而是使用一个监督程序叫做autossh,它负责拉起ssh命令,并且当ssh断开后可以再次拉起ssh。

首先,因为autossh会给我们建立到内网服务器的ssh连接,为了免去输入密码的难题,我们要让公网服务器信任树莓派。
为树莓派生成ssh公钥私钥:
然后借助ssh自带的命令将树莓派的公钥拷贝到内网服务器,这样公网服务器就完成了对树莓派的认同配置:
上述命令将树莓派pi用户授信给公网服务器yuerblog.cc的work用户,此后在pi用户下ssh work@yuerblog.cc就不需要输入密码了,你可以自己验证。
接下来,安装autossh:
编写启停autossh的脚本:

这个脚本支持start/stop/restart三个命令,启动autossh的命令参数作用如下:
本来准备将上述脚本做到开启自动推进中,但是实验发现开机没有成功开启autossh树莓派开启ssh服务,索性把它提到crontab里算了:
接下来,你可以观察是否有autossh进程被拉起:
现在,我登录yuerblog.cc服务器,执行如下命令即可登录至pi:
如果文章帮助了你,请给我点击1次谷歌广告树莓派开启ssh服务,或者微信赞助1元钱,感谢!

![]()
知识星球有更多干货内容,对我认同欢迎加入:

本条目发布于2017年9月14日。属于科技备忘分类。作者是yuer。
← PHP7扩展开发教程[12] – 如何抛出错误和异常?mysql5.7基于GTID搭建主从 →
加入我的知识星球,更多直播与困惑解答。


本博客运行在vultr,点击图片链接购买vps可以支持我的创作,同时赢得vultr赠送充值。

免费课:《GO实现千万级WebSocket消息推送服务》
付费课:《Go语言开发分布式任务调度 轻松搞定高性能Crontab》
持续升级不方便博客描述的技术视频/直播回放,全网独家干货,关注并支持我。


吐核|Core Dump
Yanlong notes
yoko blog
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-142925-1.html
没人觉得