查看: 15865|回复: 21

[教程] 三无环境(无显示器无固定IP地址无串口线)访问RPI的方法

  [复制链接]
  • TA的每日心情
    慵懒
    2013-2-5 09:10
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-2-4 15:24:40 | 显示全部楼层 |阅读模式
    分享到:
    从爱板买了RPI之后发现一个问题,家里、公司都没显示器,电视老人还要看,手里就一个笔记本。在公司使用的话,网络环境是DHCP,每次启动获得的IP都不一样,无显示器和键盘,SSH都不知道连哪儿。
    不过毕竟玩儿Linux也十多年了,很快思考了一下,梳理了一个思路:
    1、每次机器启动的时候自动执行个脚本,把DHCP获取的IP发到我的邮箱;
    2、SSH直接联这个IP即可。
    原以为很简单,没想到还是折腾了一番功夫。

    1、现在淘宝买了根USB转串口的线(连接方式见我另一个帖子),先把RPI连上。
    2、写了个超级简单的脚本,得到IP,然后发现Raspbian里面没有sendmail服务,不能直接mail。
    3、郁闷ing,考虑给它装个sendmail,又觉得有点大材小用。发现raspbian目录下有python,于是想还是搞个python的脚本。
    4、上网一搜,发现竟然有现成的,http://elinux.org/RPi_Email_IP_On_Boot_Debian,于是按照里面写了个mail.py的脚本
    5、这下省事了,按照里面的步骤做完,测试了下mail.py这个脚本ok,于是把它加入rc.local里面
    6、麻烦来了,调试了半天,rc.local里面的脚本似乎总是不执行。
    于是又跟踪进去看了看,发现脚本无错误,似乎raspbian在启动这个rc.local这个脚本的时候还未获得IP地址和环境变量,因此这条路不通。可是也有些网友说他们的脚本执行正常,不知道究竟为什么。
    后来在国外的网站上看到有人说,rc.local不能保证每次都正常执行,比较稳妥的方法是在/etc/init.d里面执行。这点也请后来的网友指点了。
    7、于是把上面的脚本挪到/etc/init.d/目录下,
    sudo chmod 755 /etc/init.d/mail.py
    sudo /etc/init.d/mail.py start
    测试成功,邮箱收到邮件,然后
    sudo update-rc.d mail.py defaults
    把脚本加入启动清单。重启,成功。
    这样每次RPI启动都会给我的邮箱发一个通知,告诉我当前获得的IP地址,然后就可以ssh连接上去。

    如果要删除这个服务,
    sudo update-rc.d -f mail.py remove
    即可。

    通过这种方式,无论我是在公司还是在家,只要把RPI连上路由器,就可以从其他机器访问到它,不需要串口线,不需要显示器,也不用设置固定的IP地址,是最节省成本的一个方式。



    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-2-4 16:17:57 | 显示全部楼层
    楼主很牛,沙发顶!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-1-3 11:17
  • 签到天数: 93 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-2-4 17:37:11 来自手机 | 显示全部楼层
    直接设置固定ip不简单么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2014-2-3 06:59
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-2-4 18:34:03 | 显示全部楼层
    楼主的方法不错……


    我刚写完用GPIO口接LED通过摩尔斯电码闪灯的方式闪出IP地址的python脚本
    虽然很笨不过这下随机启动的方法也有了^_^
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2012-11-23 16:50
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-2-5 00:48:43 | 显示全部楼层
    用局域网ip扫描软件扫一下,不就找到ip了吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-2-2 09:09
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-2-5 07:14:10 | 显示全部楼层
    没看懂,既然有DHCP服务器,那就有DNS对应,如果缺省你的RpI 的 hostname 是 raspberrypi, 那么只要直接联这个hostname 不就可以了。
    1. ssh pi@raspberrypi
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2013-2-5 09:10
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-2-5 09:03:47 | 显示全部楼层
    在公司环境下,网管不可能让你登陆到路由器去查看IP分配情况,所以才想出这么个主意。
    假设你带着RPI到了一个咖啡厅连上网,总不能去查人家的路由器,所以还是需要RPI自动通知你现在的IP是多少。
    DHCP和DNS的关系,楼上可以再了解一下。不是每个DHCP都会配合DNS一起用的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-1-3 11:17
  • 签到天数: 93 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-2-5 10:09:57 来自手机 | 显示全部楼层
    lynna 发表于 2013-2-5 09:03
    在公司环境下,网管不可能让你登陆到路由器去查看IP分配情况,所以才想出这么个主意。
    假设你带着RPI到了一 ...

    三无环境,咖啡厅怎么连?pi怎么连上咖啡厅的无线网
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-12-31 16:53
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-2-5 14:09:19 | 显示全部楼层
    用shell也可以的,通过smtp,我们有个没显示器的内网测试服务器就这么搞的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-3-26 18:50
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-2-6 06:33:14 | 显示全部楼层
    方法不错不错
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 13:36 , Processed in 0.189137 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.