ARM40-A5应用——使用holer访问内网的ARM40

#ARM40-A5应用——使用holer访问内网的ARM40
2018.8.13
版权声明:本文为博主原创文章,允许转载。

  ARM40部署提要:
  (1)根据第一节(1)(2)(3)(4)(5),建立各个文件;
  (2)根据自身环境选择第二节、第三节进行测试。

  对于使用4G、3G、GPRS连接互联网的ARM40设备来说,移动运营商(例如中国移动公司)分配的IP地址为内网IP,访问公网IP时,先是要通过NAT,经过这一层的转换后,内网IP会被换成NAT的公网IP,并分配一个临时的端口。这能解决IP地址日益匮乏的问题,因为NAT的存在,可以使多台设备共用一个公网IP地址。但是同时造成了一个问题,因为NAT并没有为每个端口提供映射,而是要用时,临时分配一个,这就造成外网的IP想主动发起通信时就很麻烦。
  holer 是一个内网穿透工具,基于holer,可以通过ssh,连接处于内网的ARM40设备。

##一、holer守护进程

  (1)holer-linux-armv7 命令
  拷贝 holer-linux-armv7 命令到ARM40-A5如下的位置:
  /usr/bin/holer #重命名为holer
  (2)要有网
  ARM40要能上网,
  如果是4G上网,详情见《ARM40-A5应用——4G模块EC20-CE拨号上网》;
  如果是4G上网,详情见《ARM40-A5应用——GPRS模块ppp拨号上网》。
  (3)上电自启动holer
  上电自动打开holer守护进程,需要在/etc/profile 文件中增加:
  /etc/ppp/pon-EC20-auto.sh &
  holer -k HOLER_CLIENT-822404317F9D8ADD -s 121.196.199.47 &

logintty=$(tty|grep -c "console")
if [ $logintty -eq 1 ]; then # ssh,telnet can't get into this line
        /etc/ppp/pon-EC20-auto.sh &       #打开4G模块EC20
        holer -k HOLER_CLIENT-822404317F9D8ADD -s 121.196.199.47 &  #打开hole
fi

  其中的 holer -k HOLER_CLIENT-822404317F9D8ADD -s 121.196.199.47 & 可改为:
  holer -k HOLER_CLIENT-822404317F9D8ADD &
  但是需要在 /etc/hosts中增加记录
  121.196.199.47 www.holer.org

  (4)增加用户名armholer
  adduser armholer #请自行设置密码,本例中密码设为armholer
  (5)在/etc/ssh/sshd_config 的最后一行增加:
  AllowUsers armholer

 注:
  本文提供的Holer Access Key仅供测试使用,每天可以使用20分钟:
The trial holer access key can only be used for 20 minutes in 24 hours.
If you want to have exclusive holer service please visit ‘www.wdom.net’ for more details.
  尊享版VIP holer服务请在www.wdom.net另行购买 Holer Access Key 和外网地址(例如 holer.org:65534
  holer_linux_armv7 的下载地址:
  https://github.com/Wisdom-Projects/holer/blob/master/Binary/Go/holer-linux-arm.tar.gz

二、在ubuntu上访问ARM40
  例如在阿里云上:
  (1)先ping一下更放心 ping www.holer.org
这里写图片描述
  (2)访问ARM40
root@von81:/# ssh armholer@holer.org -p 65534
root@holer.org’s password:    #本例输入登陆密码armholer
root@ARM40:~# ls /home/test
gpio_test uart_test can_test spi_test
  可见,能够访问ARM40了。 按Ctrl+D键可退出登录。

三、在Windows上访问ARM40
  (1)使用SecureCRT
  在SecureCRT中,设置:
这里写图片描述
  输入登录密码armholer后,即可访问ARM40,按Ctrl+D键可退出登录。
这里写图片描述
  (2)使用MobaxTerm
  如果使用ssh客户端工具MobaxTerm,输入如下命令就可以访问内网的ARM40设备了:
  ssh armholer@holer.org -p 65534
这里写图片描述
  或者在"Session"-"SSH"中按下图填写,然后点击OK按钮。在输入ARM40的登录密码后,即可访问ARM40:
这里写图片描述

四、停止Holer服务
  使用命令 killall holer,即可杀死holer进程,停止holer服务。
  如果希望设备重启后不运行holer进程,在/etc/profile 中删去 holer -k HOLER_CLIENT-822404317F9D8ADD -s 121.196.199.47 & 即可。
  上述方式在ARM40本机,阿里云服务器端、SecureCRT、MobaxTerm等登录环境中皆可执行。

常见问题:
1、网络不通
  可能报如下错误:

Unable to connect holer server <www.holer.org:6060>
Unable to connect holer server <www.holer.org:6060>

  可能报如下错误:
packet_write_wait: Connection to 121.196.199.47 port 65534: Broken pipe

2、阿里云服务器上的报错

root@von81:/# ssh armholer@holer.org -p 65534
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:DNrvorgGollpHcl6bqmUXJI6G3cblAsP4yXypWoF+Z4.
Please contact your system administrator.
Add correct host key in /armholer/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /armholer/.ssh/known_hosts:4
  remove with:
  ssh-keygen -f "/armholer/.ssh/known_hosts" -R [holer.org]:65534
ECDSA host key for [holer.org]:65534 has changed and you have requested strict checking.
Host key verification failed.
root@von81:/# 

  执行:

root@von81:/# ssh-keygen -f "/armholer/.ssh/known_hosts" -R [holer.org]:65534
# Host [holer.org]:65534 found: line 4
/armholer/.ssh/known_hosts updated.
Original contents retained as /armholer/.ssh/known_hosts.old

  再重新 ssh armholer@holer.org -p 65534 即可。

3、用于测试的HOLER ACCESS KEY
  如果有两个用户,都使用测试KEY,远程登录的时候只会有一个用户登录成功,另一个用户要等待,直到20分钟试用时间已过之后才能登录成功,holer的试用KEY被占用,后续的用户使用这个KEY会被退出来,并会有错误提示用户该端口已被使用。

4、/etc/ssh/sshd_config
  PermitRootLogin yes #是否允许 root 登入!预设是允许的,但是建议设定成 no ! 真实的生产环境服务器,一般是不允许root账号登陆的!!!

5、ssh armholer@holer.org -p 65534 时报错
ssh:holer.org: Temporary failure in name resolution
  ssh解析域名报错,需要在 /etc/hosts中增加记录121.196.199.47 www.holer.org

6、防范入侵
  (1)请妥为保管 HOLER ACCESS KEY、外网地址(例如 holer.org:65534);
  (2)请妥善设置 sshd 用户名和密码,不要使用易于破解的用户名和密码(例如 armholer:armholer);
  (3)建议每台ARM40设置独立的 sshd 用户名和密码。

参考文章:
  使用Holer从公网SSH访问内网的Linux系统
  https://www.cnblogs.com/witpool/p/8999134.html
  https://blog.csdn.net/wangudongdong/article/details/80216603
  Holer一款局域网服务器代理到公网的内网穿透工具
  https://blog.csdn.net/wangudongdong/article/details/80036880
  What is holer
  https://github.com/Wisdom-Projects/holer
  ARM40-A5应用——4G模块EC20-CE拨号上网
  ARM40-A5应用——探测holer服务的状态
  荟聚计划:共商 共建 共享 Grant

展开阅读全文

没有更多推荐了,返回首页