阿里雲伺服器又漲價了,感覺已經負擔不起了,但是又想擁有一台自己的私人伺服器。某天,突然發現了樹莓派,**便宜、高可用。心血來潮!!說搞就搞!!
首先當然是有一台樹莓派3代b型,****¥190 + 周邊 = ¥216 可以搞定(兩個半月的阿里雲ecs,還是蠻實惠的)
支援埠對映的路由器(基本現在市面上的路由器都支援埠對映),我用的是小公尺路由器
買乙個屬於自己的網域名稱,如:www.uthinks.com
具有公網ip的寬頻,我家使用的聯通20m寬頻,很幸運有乙個公網的ip。如果沒有公網ip,需要借助花生殼來做內網穿透,不僅麻煩還有流量限制。
解壓映象和win32diskimager(綠色版開啟即可使用),插入sd卡 –> 開啟win32diskimager –> 新增映象 –> 確認sd卡後點選燒寫即可
燒寫結束後,在windows下sd卡會顯示只有不到100m,不用擔心,因為這個分割槽只是linux 的boot分割槽,而其他內容作為linux 的檔案系統被掛載為ext4 檔案系統,windows 下識別不了而已
把燒好的sd卡直接插入樹莓派sd卡槽中,接上電源等待系統安裝完成
系統配置過程還是碰到很多坑,大家有什麼問題可以直接聯絡我,我會補充出來ssh無法登陸的問題
由於樹莓派預設沒有開啟sshd,所以我用hdmi連線上顯示器,執行命令sudo raspi-config
找到ssh然後enable後重啟就ok了
家裡辦理的聯通寬頻有公網ip,決定好好利用,但是公網ip不固定,需要動態修改網域名稱解析。在阿里雲上購買自己喜歡的網域名稱(抓緊時間備案,不然**會被封)
(如果有公網ip配置一條a記錄,如果你使用的是花生殼配置一條cname記錄
獲取自己的公網出口ip
import urllib2
def getip():
try:
ip = visit("")
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(']')]
解壓安裝
sudo python setup.py install
安裝alidns python sdk
pip install aliyun-python-sdk-alidns
第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
路由器埠對映,配置完成記得點選儲存並且生效
最後一步把動態解析指令碼配置到crontab中定時執行
/1 * /usr/bin/python /home/bill/basic/basictask.py
accesskey、accesskeysecret如何獲取
登入阿里雲控制台(
網域名稱解析recoreid如何獲取
# dns_domain 網域名稱 如uthinks.com
def check_records(dnsdomain):
clt = client.acsclient(accesskeyid, accesskeysecret, 'cn-hangzhou')
request = describedomainrecordsrequest.describedomainrecordsrequest()
request.set_domainname(dnsdomain)
request.set_accept_format('json')
result = clt.do_action(request)
print result
return result
返回值:
, ]}}
樹莓派搭建私人nas
最開始玩樹莓派也是想能夠搭建乙個私人nas,能夠做資料備份,其中各種折騰,我用的是一塊舊的硬碟加nextcloud實現的私人nas,現在記錄以下搭建的整個過程。1.安裝nextcloud nginx 首先需要安裝nginx nginx是web伺服器,我們安裝的nextcloud會掛載到nginx上面...
樹莓派搭建家庭伺服器
1 安裝 minidlna sudo apt get update 更新一下安裝源 sudo apt get install minidlna 安裝 minidlna 2 設定配置檔案 設定 etc minidlna.conf檔案,在檔案尾部新增如下內容 media dir a,samba dlna...
樹莓派搭建儲存伺服器
準備用樹莓派4做乙個儲存伺服器,原本是想用 omv5 的,但是發現磁碟掛載不上去,最後掛上去之後,docker 的執行好像又有問題,就拋棄 omv5 了,純粹作為乙個儲存伺服器用了 因為我有個需求,就是同步我在平板上對電子書記錄的筆記,現在用的是 wps offic 的同步,充了個會員,發現同步基本...