樹莓派做服務器部署教程

aspberry Pi(中文名爲“樹莓派”,簡寫爲RPi,(或者RasPi / RPI)是爲學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基於Linux。隨着Windows 10 IoT的發佈,我們也將可以用上運行Windows的樹莓派。

自問世以來,受衆多計算機發燒友和創客的追捧,曾經一“派”難求。別看其外表“嬌小”,內“心”卻很強大,視頻、音頻等功能通通皆有,可謂是“麻雀雖小,五臟俱全”。

 image.png

樹莓派

一、樹莓派裝機

1.下載樹莓派鏡像

2.把鏡像系統燒錄SD卡

3.把燒錄完畢的SD卡裝入樹莓派卡槽中即可

image.png

鏡像

注意:可能會出現SSH無法登錄問題

由於樹莓派默認沒有打開sshd,所以我用HDMI連接上顯示器,執行命令sudo raspi-config

找到ssh然後enable後重啓就ok了

 image.png

解決SSH無法登錄1

 image.png

解決SSH無法登錄2

二、動態域名實現內網穿透

1.在新睿雲購買自己喜歡的域名,便宜就行!注意要備案,否則有被封的風險。

2.有公網IP記得配置一條A記錄

3.樹莓派實現動態域名解析

3.1核心代碼 

import urllib2

 def getIp():

     try:

         ip = visit("http://www.ip138.com/ip2city.asp")

     except:

         ip = "failed to get internet ip"

     return ip

 def visit(url):

     req = urllib2.Request(url)

     opener = urllib2.urlopen(req)

     result = opener.read()

     return result[result.find('[') + 1: result.find(']')]

3.2下載alidns python SDK

3.3解壓安裝

sudo python setup.py install

3.4安裝alidns python SDK

pip install aliyun-python-sdk-alidns

3.5第1步獲取到自己的公網IP後,調用API設置DNS解析

import json

 from aliyunsdkalidns.request.v20150109 import UpdateDomainRecordRequest,DescribeDomainRecordsRequest, /

     DescribeDomainRecordInfoRequest, AddDomainRecordRequest

 from aliyunsdkcore import client

 # 更新域名解析

 def updateDns(accessKey, accessKeySecret, hostRecord, dnsType, dnsValue, dnsRecordid, dnsTtl, returnFormat):

     print hostRecord, dnsType, dnsValue, dnsRecordid, dnsTtl, returnFormat

     clt = client.AcsClient(accessKey, accessKeySecret, 'cn-hangzhou')

     request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()

     request.set_RR(hostRecord)

     request.set_Type(dnsType)

     request.set_Value(dnsValue)

     request.set_RecordId(dnsRecordid)

     request.set_TTL(dnsTtl)

     request.set_accept_format(returnFormat)

     result = clt.do_action(request)

     return result

 # 獲取當前的解析IP

 def getDnsIp(accessKey, accessKeySecret, dnsRecordid, returnFormat):

     clt = client.AcsClient(accessKey, accessKeySecret, 'cn-hangzhou')

     request = DescribeDomainRecordInfoRequest.DescribeDomainRecordInfoRequest()

     request.set_accept_format(returnFormat)

     request.set_RecordId(dnsRecordid)

     result = clt.do_action(request)

     result = json.JSONDecoder().decode(result)

     result = result['Value']

     return result

4.路由器端口映射,配置完成記得點擊保存並且生效

image.png

路由器保存映射

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章