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