聪头使用电信的ADSL,有公网IP,甚至在早几年管理不算严的时候,还开通了80端口。这样,使用花生壳,可以使用动态域名,轻松实现远程连接,也可以访问自己搭建的Web应用了。
花生壳是一个动态DNS,是oray.com的其中一款拳头产品。聪头在03年的时候就已经在他们网站注册,ID是个5位数,曾经致电他们客服,我报出自己ID号的时候,客服表示那是他在oray.com接到过最小的一个客户ID了。
在安装花生壳这前,我们首先必须准备以下条件:
-2. 先在oray.com免费注册,然后申请免费域名,激活花生壳服务。
-1. 为使外网能访问连接在路由上的RPi,需将端口(SSH是22)映射到RPi的内网地址。
0. 通电开机!
好了,正式开始吧!
1. 先下载花生壳并编译:(目前Linux最新的版本是2.0.6,但现在官网提供下载的都是不适合ARM平台安装的版本,这里先用着2.0.5)
wget http://download.oray.com/peanuthull/phddns-2.0.5.19225.tar.gz tar zxvf phddns-2.0.5.19225.tar.gz cd phddns-2.0.5.19225 ./configure make
2. 检查是否编译成功:
cd src ls -l phddns
如果成功,系统应返回这样的信息:
(当时聪头用root登录后安装的,但不建议朋友用root身份安装,所以本文必要的地方都带sudo)
3. 编译好后进行账号配置,输入:
sudo ./phddns
然后交互方式进行配置:
Enter server address(press ENTER use phlinux3.oray.net): #输入服务器地址,直接回车则使用默认值; Enter your Oray account: #输入您的Oray帐号名称; Password: #对应的Oray帐号密码; Network interface(s): eth0:192.168.141.18 lo:127.0.0.1 Choose one(default eth0): #选择绑定的网卡,建议首选eth0; Log to use(default /var/log/phddns.log): #选择日志保存到哪个文件,敲回车选择默认项; Save to configuration file (/etc/phlinux.conf)?(yes/no/other): #保存配置文件,选择yes则保存到/etc/phlinux.conf,输入other可以指定文件;
配置成功后,客户端与服务器端进行信息交互,看到类似如下的的信息的话,说明已完成登录:
4. 将phddns拷贝到你希望的位置,例如:
sudo cp phddns /usr/bin/
5. 以后台模式运行花生壳并通过日志检查运行情况,命令如下:
sudo /usr/bin/phddns -c /etc/phlinux.conf -d sudo tail /var/log/phddns.log
6. 添加脚本到/etc/init.d,实现花生壳开机自动启动,先输入:
sudo nano /etc/init.d/phddns
然后写入:
#!/bin/sh ### BEGIN INIT INFO # Provides: phddns # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop phddns. ### END INIT INFO case $1 in start) /usr/bin/phddns -c /etc/phlinux.conf -d ;; stop) killall phddns ;; *) echo "Usage: $0 (start|stop)" ;; esac
编好脚本后,需要确保脚本可执行,否则会遇到这样的错误提示:insserv: script phddns is not an executable regular file, skipped!
终端输入:
sudo chown root:root /etc/init.d/phddns && sudo chmod 755 /etc/init.d/phddns
然后添加到启动运行队列:
sudo update-rc.d phddns defaults
如果以后要取消自动启动,就用这个命令:
sudo update-rc.d -f phddns remove
以后要启动或停止就有专用的命令了:
sudo service phddns start #启动; sudo service phddns stop #停止。其实上面不是也有“killall phddns”吗?哈哈
这样,无论Rpi开启了什么服务,只要我们能连上互联网,就能远程连接到自己的应用了!
发表回复