基本上所有功能都做好了,但是现在还仅仅在局域网内使用,接下来就是做成外网也能访问,比如在公司、在学校、在任何地方访问家里的树莓派。
由于电信是动态分配的 IP,所以想要做到外网访问,就必须获得外网的 IP。
有两种方法,第一种是使用花生壳动态域名解析,这种方法太过简单就不讲了。这里讲讲第二种。
首先在路由器里设置树莓派的静态地址:DHCP服务器
-静态地址保留
:
绑定了 192.168.1.104
,然后设置端口映射:转发规则
-虚拟服务器
:
服务器端口是可以随便设置的,其中内部端口如下:
- 22:SSH 端口。
- 6800:这是 Aria2 RPC 的默认端口,也是唯一一个服务器和内部端口必须保持一致的端口。
- 5901:这是 VNC 端口。
- 80:这是 Aria2 的下载管理页面。
接下来就是重头戏了:获得外网 IP。执行:
git clone --depth=1 https://github.com/LJason77/Report-IP-hourly.git ~/rootcrons/
编辑 ~/rootcrons/reportip.py
,更改其中的 smtpserver
、username
、password
、sender
、receiver
、subject
(邮箱需要开启 SMTP 服务):
- smtpserver:SMTP 服务器
- username:登陆 SMTP 的用户名
- password:密码
- sender:发送人,注意要和 SMTP 登录的账户对应,通常都是一个邮箱账户。
- receiver:收信人列表
- subject:邮件主题
找到:
http://1111.ip138.com/ic.asp
改成:
http://members.3322.org/dyndns/getip
执行:
sudo crontab /home/pi/rootcrons/rootcron
sudo /etc/init.d/cron restart
开机启动自动检测 IP 服务:编辑 /etc/rc.local
,添加:
/usr/bin/python /home/pi/rootcrons/reportip.py
修改检测 IP 的频率,修改 /var/spool/cron/crontabs
:
*/5 * * * * /usr/bin/python /home/pi/rootcrons/reportip.py
每 5 分钟检测一次,具体参数请自行 Google:crontab。现在只要更改了 IP,五分钟内就能通过邮件获得最新 IP 了。
参考文献