基本上所有功能都做好了,但是現在還僅僅在局域網內使用,接下來就是做成外網也能訪問,比如在公司、在學校、在任何地方訪問家裡的樹莓派。
由於電信是動態分配的 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 了。
參考文獻