NanoPi通过pubyun进行动态域名解析

NanoPi作为一台家用的微型服务器需要一个比较固定的域名,这样可以方便外网访问。 但是家庭网络一般都是动态的ip地址,所以就算NanoPi能24小时开机但只要出了外网还是不能访问的,这样一来还是非常的不方便。 那么什么样的方法可以在外网访问家里的NanoPi呢?答案就是你用动态域名进行解析。 这个教程将告诉大家如何使用NanoPi进行动态域名的解析,方便用户通过外网也能够连接家里的NanoPi服务器。

NanoPi做动态域名服务器

申请PUBYUN帐号

1)打开浏览器准备好手机号去pubyun注册一个帐号。
2)可能需要身份证信息的验证,所以准备好身份证电子档。
NanoPi做动态域名服务器



安装必要的支持环境

apt-get update 更新系统补丁
apt-get install python 安装PYTHON环境
iptables -L 查看防火墙是否阻止网络
iptables -F 如果有阻止则清楚
*/5 * * * * python /bySD32G/Python/PubIP/PubIP.py 做个计划任务每个5分钟检查并提交一次最新IP地址



编写Python程序来想PUBYUN提交动态IP的信息

#! /usr/bin/python
# -*- coding:utf-8 -*-
#3322.NET网API方式动态IP主动上报PY客户端
import urllib
import urllib2
headers={
'Host':'members.3322.net',
'User-Agent':'myclient/1.0 me@null.net',
'Authorization': 'Basic cHViNjxxxxxxxxxxxxxxxxx='};#把字符串(user:passwd)进行BASE64编码
data=None;
fname='/byUData1/Python/PubIP/cip.log';
def fun1():
request = urllib2.Request('http://ip.3322.net ')
response = urllib2.urlopen(request)
return response.read().replace('\n','')#查询并返回本机的公网IP地址
def fun2(cip):
url='http://members.3322.net/dyndns/update?hostname=XXXX.f3322.net&myip='+cip+'&wildcard=OFF&offline=NO';
request = urllib2.Request(url,data,headers)
response = urllib2.urlopen(request)
print response.read()
def byLog(cip):
f=open(fname, "a");
f.write(cip+'\n');
f.close();#写入查询到的公网IP地址并写入HTM记录文件
def readLog():
f=open(fname, "r");
lines = f.readlines() #读取所有行
last_line = lines[-1] #取最后一行
return last_line.replace('\n','')
cip=fun1(); #获取最新公网IP地址
lip=readLog(); #读取历史最后一次IP地址
if lip!= cip: #判断当前查询的最新IP是否和历史最后一次IP相同
fun2(cip); #更新IP到3322.NET
byLog(cip); #把更新的IP写入日志HTM文件
print 'OK-UpIP';
else:
print 'No-UpIP';
通过以上的操作,你将能够获得一台具有动态域名解析的家庭NanoPi服务器让你能够在除家里以外的任何有互联网的地方访问获取上面的资源和文件。

Syndicate content