前言
先说我一共用到了哪些硬件以及软件:
- 硬件:
1.树莓派3b(不含显示器)
2.笔记本电脑(win10系统)
3.网线(无路由器)
4.32G SD卡一张 - 软件:
1.VNC(windows版和raspberry版)
2.Xshell(windows版)
3.nat123内网映射服务(raspberry版)
4.JuiceSSH(Android手机版)
由于我用的校园wifi,因此没有路由器,所以直接用网线连接电脑获取到树莓派的ip进行ssh连接。然后想要脱离网线的束缚就比较蛋疼了,因为连接校园网wifi需要在网页里输入账号密码,而树莓派直连电脑使用的是电脑分享的网络,即便我用VNC打开网页连上了校园wifi,但是网线拔了之后树莓派的ip地址将会发生变化,变化后的ip无法得知,也没法用ssh连接。
但这些问题最终都被机智的我一一解决了,最终可以在任何地点都可以通过我的域名www.zyy98.top加映射的12245端口实现外网ssh远程连接。
中间找了不少教程和资料,也走了不少弯路,特此记录下来,希望能够帮到其他基友小伙伴。
下面放几张效果图:
-
PC端ssh访问(使用的是Xshell,不是putty,感觉putty太老了):
PC端VNC访问(外网访问贼卡):
-
手机端ssh访问:
-
手机端VNC访问(也是贼卡):
好,话不多说,让我们从头开始~
安装系统
1.下载系统镜像并解压
我这里用的是2017-07-05的树莓派官方系统,建议第一次装系统最好都使用官方系统
解压后的系统镜像后缀名为.img,约有4.34G
2.下载SDFormatter软件并格式化SD卡
3.下载Win32DiskImager软件并烧制系统(以下截图部分来自百度经验)
-
点击盘符下拉框选择盘符,例如:SD卡为H盘
-
点击蓝色“文件夹”图标选择镜像,完成后,点击Write,进行写卡,如下图
-
提示框直接点YES,格式化SD卡,
开始写入,速度视电脑与SD 卡的通讯速度而定,
等待好大会提示 Write Successful!,表示成功。
4.创建ssh文件(此步非常关键!)
自 2016-11 官方发布的 Raspbian 系统镜像,系统默认禁用了 SSH 服务,所以即便成功查询到树莓派ip也不一定能连接成功,因此我们在把SD卡装入树莓派前就要确保系统的SSH是打开的。
重新开启也很简单,进入到根目录(boot下),新建一个名为ssh的空白文件就行了,文件不要有后缀名,也不需要写入任何内容。
5.将SD卡插入树莓派,给树莓派通上电源,过一会观察到有绿灯亮则说明系统刷入成功
查找树莓派ip并使用SSH登录
1.在插网线之前要把被连接的电脑设置好
-
打开电脑的控制面板,选择“网络和Internet”中的“查看网络状态和任务”
默认打开的控制面板可能是这个样子的,只要返回上一级目录就能看到上图了
-
选择更改适配器设置
-
选择你电脑已连接到的网络,比如我连接的是WLAN,就右击然后选择属性
-
点击“共享”
-
选中“允许其他网络用户通过此计算机的Internet连接来连接”
-
选择“以太网”,点击“确定”
2.把网线的一头插在树莓派上,另一台插在自己电脑上(插上后树莓派的接口处会亮黄绿灯)
3.打开电脑的cmd,输入arp -a,会列出很多ip地址
电脑本身的ip基本都是192.168.****,比如我的电脑是192.168.137.1,那么在这个接口下可以看到一个类型为动态的ip,其地址为192.168.137.137(事实上这个ip已经被我改过了,被设置为了固定的ip,第一次查找的时候大概是192.168.137.23这个样子),这个就是树莓派的ip地址。反正192.168开头的就这么几个,就算找不到,一个一个试也不会花费多少时间,反而网上有教程用ipscanner软件扫描倒是浪费了大把的时间。
4.SSH连接树莓派
-
在电脑上打开Xshell或者putty软件,输入ip名和SSH端口号(默认为22),点击确定
-
接受并保存
-
输入初始用户名pi,点击确定
-
输入初始密码raspberry(我的已经被我改了),点击确定
-
显示下面的图片就是登录成功了,ls一下看看目录吧
5.VNC连接树莓派
-
树莓派默认的VNC服务是没有打开的,直接在命令行下输入"tightvncserver"开启服务,第一次需要设置密码,直接按照提示设置就可以了
-
打开电脑上的VNC Viewer,输入ip和默认端口5901
-
双击
-
输入配置好的密码,开始连接
直接网线这样连接速度还是挺快的
获取通过wifi连接的树莓派ip
我们的树莓派目前一直插着网线,经个人测试,只要插着网线,使用的就一直是电脑分享的网络,不管树莓派上的wifi有没有连接都没什么卵用。不过wifi还是要连的,下步会用到。
我用的是校园网,连接后要在网页输入账号密码,所以只好用VNC操作了,连接上wifi后,打开Xshell,在终端输入"ifconfig",会看到输出下面的信息:
其中eth0下能看到连接电脑所获取到的ip,而wlan0下则能看到连接wifi获取到的ip,我的是172.17.49.185,当然这个也可以设置为静态的,但是我发现它从来没有变过,所以就没改,能懒一点是一点吧。
对于一般的wifi来说,这样就可以了,拔掉网线后树莓派也仍能联网。但是校园网实在坑啊,拔掉网线或者重启后都必须要再次输入校园网账号密码,不会自动保存,这和windows是不一样的。我在这里遇到了瓶颈,一筹莫展,甚至想要买个转接头接室友的显示器。后来去店里问了下,只剩一个很垃圾的转接头还要收我25块,不买!然后回来就想到了解决办法
。。。我去吃饭了,回来继续写。。。。
进行内网映射
到现在为止,已经可以通过命令行和GUI两种方式访问树莓派了,如果你的手机和电脑处在同一网段下,那么现在也可以通过手机直接访问树莓派。但这个前提是你的电脑处于开机状态,想通过树莓派访问互联网还必须得电脑也处于联网状态下。而我处在校园网环境下,手机连接树莓派行不通。要想突破这些限制,就必须得使用内网映射,去掉网线,让树莓派直接通过wifi连接到互联网,然后将本地ip映射到域名,将本地端口映射到自定义端口,然后就可以通过域名+自定义端口的方式随时随地通过任何设备访问到树莓派了,所需的只是树莓派保持开机并联网。
国内比较知名的两家内网映射服务商只有花生壳和NAT123。之前用过花生壳,还不错,但是局限很多,比如限制流量、不能使用自己的域名等,而且实名认证起来也比较麻烦。后来就转用了NAT123,最大的缺点就是非VIP限速,用VNC非常卡,不过SSH下倒没什么问题,就凑活着用吧。下面讲讲怎么使用NAT123服务进行内网映射。
1.注册NAT123账号并进行实名认证
官网在这:http://www.nat123.com/
比较奇葩的是它这个实名认证就是直接通过支付宝充30块钱。不充行不行?我试了,还真不行!
2.添加端口映射
应用类型选择其他(非网站),名称随便,这里映射的是ssh端口,因此我给他取名ssh,内网端口就是默认的ssh端口22,内网地址填
未完待续,有时间继续更......