不同路由器下远程ssh登录Beaglebone系统(通过路由器端口转发,配合花生壳的DDNS功能)
使用场景:
- 一般家庭设备都是通过路由器中转连上互联网的,而且运营商给家庭宽带分配的IP地址也是动态的、随时可能变动的。所以当程序员们离开家之后,是很难直接和家里的设备进行交互的。但是通过TPLINK路由器提供的端口转发和DDNS功能,我们可以很轻松的做到随时随地连到家里的设备。既然家庭设备可以如此,那么实验室的Beaglebone是不是也可以远程登录呢???
所需工具:
- Beaglebone black板子
- TP-LINK路由器
- 手机或者电脑ssh
- 一根网线
步骤总览:
- 手机或者电脑上安装ssh或者putty软件
- 板子通过网线直接连接到路由器的LAN口
- 下载花生壳,注册账号获得免费DDNS域名
- 配置路由器
- 通过手机流量或者连接手机热点的电脑远程ssh路由器下的板子
详细步骤:
- 手机上推荐一款ssh软件----------juicessh,电脑上的话putty或者Xshell都可以
- 将网线插入板子,此时板子被分配一个IP地址,可以登陆路由器查看,如下图所示,也可以先将手机或电脑连接该路由器的WIFI或网口,此时板子和电脑处于同一个路由器下,可以直接ssh登录,登录之后通过ifconfig即可查看板子的IP地址
- 开通好板子的ssh功能之后,最好再把板子的MAC地址与路由器分配的ip进行绑定,方便之后的端口转发
- 直接官网下载花生壳,使用手机号注册个账号,然后会获得一个免费的域名
关键一步:
还是以我的路由器为例子,进入路由器管理网页,点击高级用户中的虚拟服务器,然后点击添加,外部端口填你希望从外网通过哪个端口访问,内部端口是你需要访问设备的ssh的端口,默认是22,ip地址是上面板子在路由器下的IP地址,协议选ALL就好,常用服务器不用选,然后点击保存就好
-
选择花生壳,因为TPlink自身提供的DDNS服务,然后有花生壳账号的就用自己账号,没有的就注册一个,连接成功后,域名信息那里会显示你的域名
大功告成,现在可以通过外网的设备,我使用连接手机热点的笔记本ssh板子,连接成功,实现了
如果狗板不是用网线连接到路由器的LAN口的话,而是使用无线网卡连接路由器的WI-FI,配合一块5V充电锂电池可以实现远程在线无线控制,此时上述配置固定IP的方法不可用,应该需要另外配置板子的IP为静态IP
- vim /etc/networ/interfac
PS:有什么理解错误的或者名词表达错误的,还请见谅。。。参考链接:https://segmentfault.com/a/1190000012365747
顺便附上电脑和手机上的ssh工具:链接:https://pan.baidu.com/share/init?surl=0F0y9g6yCjAssbwm718KOA 提取码:wjlp
更改Linux终端中用户名的显示颜色
- vim ~/.bashrc
- PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33;1m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
- source .bashrc
配置vim
- vim ~/.vimrc
- set nocompatible
- set number
- syntax on
- color evening
- set history=1000
- set autoindent
- set smartindent
- set tabstop=4
- set shiftwidth=4
- set showmatch
- set guioptions-=T
- set vb t_vb=
- set ruler
- set nohls
- set incsearch
- set nobackup
- set backup
配置网络
- 通过USB共享主机网络
- route add default gw 192.168.7.1
- vim /etc/resolv.conf
- 添加
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 192.168.1.1
- 如果还是ping不通,尝试关闭主机防火墙
- 仍然不行,修改一下文件/etc/network/interfaces添加下面这段信息:dns-nameservers 8.8.8.8
- 成功ping通之后,重启之后又回到了默认状态,想要开机自动配置,编辑~/.profile,在文件末尾加上如下内容:
/sbin/route add default gw 192.168.7.1
/usr/sbin/ntpdate -b -s -u ie.pool.ntp.org
- 通过无线网联网
- 插上无线网卡usb
- lsusb #显示启用的usb模块如果显示wireless Adapter网卡是支持的,并且已挂载
- sudo apt-get install wireless-tools #安装无线上网工具
- sudo ifconfig -a #会显示wlan0,但是没有ip地址
- sudo ifconfig wlan0 up #启用wlan0节点
- sudo iwlist wlan0 scan</span> #扫描wlan节点(可不用操作)
- sudo vim /etc/network/interfaces #找到wpa-ssid和wpa-psk,取消wlan0部分所有的注释,并填入wifi名称密码
- sudo ifup wlan0 #此时wlan0会有ip
烧写系统
- 系统镜像的准备
- 需要考虑到是否适合板子的版本,特别主要镜像名字后面到底是4gb还是2gb
- 版本是eMMC还是非eMMC
- 烧写SD卡
- 下载之后的镜像通常是tar.xz的,windows下直接解压即可得到img文件
- Windows使用Win32DiskImager烧写,需要借助sd转usb适配器
- 烧写镜像
- 先验证一下SD卡上的系统镜像是好用的。先把SD卡插入到板子的SD卡插槽上,然后上电。
- 用SSH的方式登陆到板子上(192.168.7.2),此时是自动从SD卡启动
- 对于非eMMC的系统(eMMC的板子无需这样操作),需要修改使用vim修改/boot/uEnv.txt文件,定位到下面的位置,将cmdline前面的注释#去掉,然后保存
最后操作
- ##enable BBB: eMMC Flasher:
- #cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
- 给板子断电,按住BOOT按键(注意不是reset按键也不是power按键),然后给板子上电,等LED等开始有反应的时候等大约15s,就可以把BOOT键松开了,如果步骤没有出错,很快这四个LED等一定应该是流水灯的形式不停的跑(emmc的板子是频率明显加快的,并不是流水灯的形式),才证明是在烧写(另一种判断的方式是:烧写的时候电脑上是不会显示出USB的,意思就是此时无法登录系统,之前我用2gb的系统刷4gb的板子时候,几个灯是同时闪烁,并且电脑上会有usb连接,用ssh可以连接板子,这种情况系统是无法烧写成功的)
- 不用等30分钟,大概6~10分钟分钟,这个时候板子的LED等会全亮
- 拔掉SD卡,重启板子
- 用SSH登陆到板子上,使用uname -a,确定一下烧写版本判断是否成功
- 重装系统之后,使用16板子的系统板子无法通过usb连接电脑获得地址(192.168.7.2),安装板子里面的驱动也是安装失败.解决方法:找到一块14系统的旧板子,自带boot的那种,安装里面的驱动,然后就可以连接了,也能活得ip地址
- 一切完成之后,记得将上面的注释再加上去,要不然插上sd卡,板子可能就自动烧写了,原本板子里面的配置就全都GG了