所需条件
- Raspberry Pi
- TP-Link路由器
- DNSPod帐户
- 域名
配置路由器
进入路由器的DHCP服务器->静态地址分配菜单,为Raspberry Pi分配静态IP地址,例如:192.168.1.200
进入路由器的安全功能->远端WEB管理菜单,设置WEB管理端口
为一个非80值,例如82
进入路由器的转发规则->DMZ主机菜单,将DMZ主机IP地址
设置为Raspberry Pi的ip地址,然后启用保存。
设置DNSPod动态域名解析
首先登录DNSPod网页管理域名,将二级域名www
的A记录
解析到路由器外网IP(可通过路由器管理首页查询,或者通过浏览ip138.com来获得)
注:一级域名请解析**@**的A记录。
下载DNSPod官方客户端Lite https://support.dnspod.cn/Support/api
解压后双击打开登录,从右侧信息列表中也可以看到本机最新IP,点击相应域名后的动态解析按钮,在动态解析设置中右键点击相应的动态记录启用即可,关闭DNSPod官方客户端Lite。
设置Raspberry Pi
安装Web服务器软件(Nginx)
#apt-get install nginx
#/etc/init.d/nginx start
内网可以通过浏览`http://192.168.1.129"来检查Nginx是否正常运行。
浏览https://gist.githubusercontent.com/chuangbo/833369,下载动态域名解析脚本(pypod.py)
编辑pypod.py
修改以下内容:
login_email="email", # DSNPod帐户邮箱
login_password="password", # DSNPod帐户密码
domain_id=100, # 域名id
record_id=100, # 记录id
sub_domain="www", # 子域名
其中域名id与记录id可以通过以下命令获取:
curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx"
curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"
提示:如果你使用了www子域名,则需要获取www的记录id,如果使用一级域名(@),则需要获取**@**的记录id。
编辑完pypod.py
保存退出,使用以下命令运行:
#python pypod.py
现在可以通过域名来浏览Raspberry Pi上的Web内容了。
pypod.py开机运行
添加/usr/bin/python /home/pi/pypod.py
到**/etc/rc.local**。