Docker系列 搭建自動(dòng)備份服務(wù)duplicati

轉(zhuǎn)至我的個(gè)人博客:https://blognas.hwb0307.com。歡迎關(guān)注!

前言

Docker系列 搭建密碼管理應(yīng)用bitwarden中沦泌,我們安裝了一個(gè)實(shí)用的Docker應(yīng)用bitwarden杈抢。用了一段時(shí)間,你會(huì)發(fā)現(xiàn)它是真的好用呀被冒!但同時(shí)你也有一點(diǎn)擔(dān)心:萬(wàn)一bitwarden的數(shù)據(jù)損壞或者丟失了怎么辦军掂?

隨著你安裝的Docker應(yīng)用越來(lái)越多,這種擔(dān)心會(huì)越來(lái)越明顯昨悼。比如蝗锥,我通過(guò)docker進(jìn)行wordpress個(gè)人博客和chevereto圖床的布署。wordpress個(gè)人博客不多說(shuō)率触,就是你現(xiàn)在訪問(wèn)的網(wǎng)站终议。chevereto圖床是我用typora寫markdown時(shí)綁定的圖床,天天在用葱蝗,經(jīng)常要Ctrl+v粘貼圖片的嘛穴张!本博客的圖片也是托管于我個(gè)人的chevereto圖床:https://chevereto.hwb0307.com/。萬(wàn)一數(shù)據(jù)丟失了怎么辦两曼?比如VPS機(jī)房著火了皂甘、不小rm了、不小心你重置自己的系統(tǒng)了悼凑,甚至是被黑客入侵搞破壞導(dǎo)致數(shù)據(jù)丟失了偿枕。怎么辦呢?

當(dāng)然户辫,你可以寫個(gè)shell腳本進(jìn)行簡(jiǎn)單的備份渐夸。不過(guò)我認(rèn)為,我今天要說(shuō)的duplicati才是解決這個(gè)問(wèn)題的終極方案渔欢。它的docker鏡像是linuxserver/duplicati墓塌,由linuxserver團(tuán)隊(duì)進(jìn)行維護(hù)。用的人還蠻多的奥额,最近還有更新:

這是Github repo的地址苫幢,好像沒(méi)什么人用過(guò):https://github.com/linuxserver/docker-duplicati。是不是大家有更好的選擇呀披坏?求推薦一波态坦!

就我個(gè)人來(lái)說(shuō),duplicati已經(jīng)足夠好用了棒拂。它可以在本地備份伞梯,也可以通過(guò)WebDAV協(xié)議備份至阿里云、堅(jiān)果云帚屉、nextcloud等云盤中谜诫。由于個(gè)人的VPS容量是有限的,我就沒(méi)有備份到本地攻旦,只備份到了阿里云盤喻旷。

此外,如果有人不知道WebDAV是什么的話牢屋,建議還是Google百度一下喔且预!這里我粘貼一段wiki的機(jī)翻:

WebDAV(Web 分布式創(chuàng)作和版本控制)是超文本傳輸協(xié)議(HTTP)的一組擴(kuò)展槽袄,它允許用戶代理通過(guò)提供并發(fā)控制和命名空間操作的設(shè)施,直接在HTTP Web 服務(wù)器中協(xié)作創(chuàng)作內(nèi)容锋谐,從而允許Web被視為可寫的遍尺、協(xié)作的媒體,而不僅僅是只讀媒體涮拗。[1] WebDAV由Internet 工程任務(wù)組(IETF)的一個(gè)工作組在RFC 4918中定義乾戏。 [2]
WebDAV 協(xié)議為用戶在服務(wù)器上創(chuàng)建、更改和移動(dòng)文檔提供了一個(gè)框架三热。最重要的功能包括維護(hù)有關(guān)作者或修改日期的屬性鼓择、命名空間管理、集合和覆蓋保護(hù)就漾。屬性維護(hù)包括文件信息的創(chuàng)建呐能、刪除和查詢等。命名空間管理處理在服務(wù)器命名空間內(nèi)復(fù)制和移動(dòng)網(wǎng)頁(yè)的能力从藤。集合處理各種資源的創(chuàng)建催跪、刪除和列表。最后夷野,覆蓋保護(hù)處理與文件鎖定相關(guān)的方面。它利用了現(xiàn)有技術(shù)荣倾,例如傳輸層安全悯搔、摘要訪問(wèn)身份驗(yàn)證或XML來(lái)滿足這些要求。[3]
許多現(xiàn)代操作系統(tǒng)為 WebDAV提供內(nèi)置客戶端支持舌仍。

我個(gè)人理解妒貌,WebDAV就是一種被廣泛使用的、基礎(chǔ)的網(wǎng)絡(luò)存儲(chǔ)協(xié)議铸豁。在本文中灌曙,我們會(huì)展示在阿里云盤中展示WebDAV協(xié)議的使用方案。其它網(wǎng)盤應(yīng)該也類似节芥,我就沒(méi)有試過(guò)了在刺。

如果你沒(méi)有注冊(cè)過(guò)阿里云盤的話,可以手機(jī)或者電腦點(diǎn)我的邀請(qǐng)鏈接注冊(cè):https://pages.aliyundrive.com/mobile-page/web/beinvited.html?code=2061fe1头镊。目前它還在公測(cè)階段蚣驼,我還是比較看好這個(gè)網(wǎng)盤的。這算是夾帶私貨相艇。哈哈颖杏!

可能有小伙伴說(shuō):阿里云盤可能也不安全呀!不用擔(dān)心坛芽,duplicati備份數(shù)據(jù)可以經(jīng)過(guò)內(nèi)置AES-256算法加密留储,只有知道密碼的人才可以執(zhí)行恢復(fù)數(shù)據(jù)的操作翼抠。這樣一看,也沒(méi)啥問(wèn)題获讳,對(duì)吧阴颖!

duplicati還有另外一個(gè)我覺(jué)得不錯(cuò)的特性,即增量備份赔嚎。每一次只備份和上一次備份的差異量膘盖,這對(duì)于節(jié)省VPS流量十分有利呢!我和玩NAS的小伙伴們交流尤误,他們說(shuō)TrueNAS系統(tǒng)都會(huì)內(nèi)置類似duplicati的應(yīng)用侠畔。所以真的很帥呢!

duplicati支持很多云傳輸?shù)臉?biāo)準(zhǔn)協(xié)議或者專有服務(wù)损晤。如果你想備份到nas或者其它vps软棺,應(yīng)該可以試試SFTP。當(dāng)然也可以像本文的示范尤勋,用WebDAV協(xié)議喘落。

我大概的思路是,先基于docker搭配一個(gè)阿里云的Webdav服務(wù)最冰;然后再搭建Docker版duplicati瘦棋。

話不多說(shuō),下面我們來(lái)安裝吧暖哨!

測(cè)試環(huán)境

uname -a # Linux VM-12-8-ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux docker --version # Docker version 20.10.5, build 55c4c88 docker-compose --version # docker-compose version 1.28.6, build 5db8d86f

安裝aliyundrive-webdav

有自己Webdav服務(wù)或其它專有云盤的可以不用安裝這個(gè)赌朋。

準(zhǔn)備工作

對(duì)于阿里云盤來(lái)說(shuō),你要先獲取一個(gè)REFRESH_TOKEN篇裁。你可以參考官網(wǎng)提供的方法:

你要記得保管好REFRESH_TOKEN沛慢。因?yàn)橛辛怂涂梢灾苯釉L問(wèn)你的阿里云盤呢达布!

經(jīng)典的目錄管理:

# 工作目錄請(qǐng)按需修改 work=~/docker/aliyun_webdav && mkdir -p $work && cd $work # 提前拉取鏡像 docker pull messense/aliyundrive-webdav # 打開(kāi)防火墻 sudo ufw allow 7569/tcp comment 'apliyun-webdav' && sudo ufw reload

配置yml文件

新建一個(gè)docker-compose.yml文件:

vim docker-compose.yml

添加以下內(nèi)容团甲。你可以用bitwarden的生成器來(lái)生成強(qiáng)密碼喔:

version: "3.1" services: app: image: messense/aliyundrive-webdav environment: - REFRESH_TOKEN=<你的阿里云的Fresh token> # 按需修改 - WEBDAV_AUTH_USER=test_user # 按需修改 - WEBDAV_AUTH_PASSWORD=test_user_password # 按需修改 volumes: - ./app:/etc/aliyundrive-webdav ports: - 7569:8080 # 按需修改 restart: unless-stopped networks: - default networks: default: name: aliyun

上線服務(wù):

docker-compose up -d

NPM設(shè)置https和反代

添加域名:example.com。類似于:

訪問(wèn):https://example.com黍聂。會(huì)彈出一個(gè)登陸小窗口

輸入剛剛的帳戶和密碼(這里當(dāng)然是填你自己的帳戶和密碼了):

用戶名:test_user
密碼:test_user_password

就可以登陸進(jìn)去了躺苦。界面類似于(我已經(jīng)有一些文件在里面。你可以在阿里云自己創(chuàng)建新的目錄):

如果你在安裝docker鏡像后才新建文件夾分冈,記得重啟aliyun-webdav的docker容器:

docker-compose restart

如果中途有換域名的操作圾另,可以:

docker-compose down && docker-compose up -d

OK,到這里的話雕沉,阿里云Webdave就準(zhǔn)備好了!

安裝duplicati

準(zhǔn)備工作

# 工具目錄 work=~/docker/duplicati && mkdir -p $work && cd $work # 提前拉取鏡像 docker pull lscr.io/linuxserver/duplicati:latest # 打開(kāi)防火墻 sudo ufw allow 8200/tcp comment 'duplicati' && sudo ufw reload

配置yml文件

打開(kāi)Vim編輯器:

vim $work/docker-compose.yml

將以下內(nèi)容添加到docker-compose.yml文件中:

version: "2.1" services: app: image: lscr.io/linuxserver/duplicati:latest restart: unless-stopped environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai volumes: - ./config:/config - ./backups:/backups - /:/source # 這里你完全可以選一個(gè)高一點(diǎn)一目錄集乔。我這里選擇的是根目錄 ports: - 8200:8200 # 這里可以替換自己喜歡的端口號(hào)。 一般不使用默認(rèn)的。 networks: - default networks: default: name: duplicati

:wq保存并退出扰路。

上線服務(wù):

docker-compose up -d # 我在騰訊云上下載尤溜,非常慢,不知道為什么~換了鏡像源也沒(méi)用 # docker-compose pull # 更新服務(wù)

我們可以觀察一下duplicati的工作日志:

docker logs -f duplicati_app_1

當(dāng)看到這些字樣:

[services.d] starting services
[services.d] done.

說(shuō)明duplicati已經(jīng)成功啟動(dòng)汗唱。

NPM設(shè)置https和反代

添加域名domain.com宫莱。NPM中添加反代。類似于:

第一次登陸duplicati的后臺(tái)時(shí)哩罪,會(huì)有一個(gè)密碼設(shè)置授霸。我推薦按一下yes,然后用bitwarden設(shè)置一個(gè)強(qiáng)密碼际插。

下次登陸就需要額外的密碼了碘耳。

嘗試使用duplicati

準(zhǔn)備工作

我們不要馬上使用duplicati。建議創(chuàng)建一些文件夾來(lái)練練手框弛,等整個(gè)流程跑通了辛辨,再來(lái)備份正式的文件!

比如瑟枫,我先在阿里云創(chuàng)建一個(gè)test_user_duplicati的文件夾專門保存duplicati的備份文件斗搞。

回到shell,我們創(chuàng)建一些測(cè)試目錄和文件

# 回home目錄 mkdir -p ~/test && cd ~/test # 創(chuàng)建一個(gè)文本 touch test.txt && echo '我愛(ài)你慷妙!'> test.txt

OK僻焚,搞定!

備份目錄

添加新備份:

我們填入一個(gè)密碼膝擂,比如用bitwarden生成一個(gè)強(qiáng)密碼:QHdH#WZD^J$@QS8*v9S6bQgXF6溅呢。下一步。

可以按下面的填法猿挚。一般172.17.0.1docker0的局域網(wǎng)ip地址。由于duplicatialiyundrive-webdave裝在同一個(gè)docker中驶鹉,因此可以通過(guò)172.17.0.1:端口號(hào)來(lái)互相訪問(wèn)绩蜻。NPM的地址設(shè)置172.17.0.1也是同樣的道理。其它類型的ip設(shè)置我就不細(xì)說(shuō)了室埋,不懂的請(qǐng)?jiān)u論留言办绝。用戶名和密碼就是剛剛安裝阿里云的密碼。建議點(diǎn)一下測(cè)試連接姚淆,當(dāng)提示連接正常時(shí)再進(jìn)行下一步孕蝉。

這里多說(shuō)一句。如果你用SFPT(SSH)的方式來(lái)備份數(shù)據(jù)的話腌逢,通常還會(huì)有請(qǐng)?zhí)砑?--ssh-fingerprint="ssh-ed25519 32 XXXX" 來(lái)信任此主機(jī)降淮。視情況,你也可以使用 --ssh-accept-any-fingerprints (不安全) 進(jìn)行測(cè)試搏讶!的報(bào)錯(cuò)佳鳖。這個(gè)時(shí)候要在高級(jí)選項(xiàng)里添加--ssh-fingerprint="ssh-ed25519 32 XXXX值以信任對(duì)方的主機(jī)霍殴。當(dāng)然,在這里的示范是不需要的系吩。

添加源數(shù)據(jù)来庭。在本次示范中,是這樣的:

一般是在sourse里面找穿挨。我在docker-compose中月弛,掛載了根目錄/。下一步科盛。

計(jì)劃就隨便你了帽衙,自己選吧。選完下一步土涝。

最后是備份的其它設(shè)置佛寿。我覺(jué)得它的智能模式不錯(cuò)。你也可以選其它的但壮。點(diǎn)擊“保存”冀泻。

最后,首頁(yè)會(huì)出現(xiàn)一個(gè)新的備份項(xiàng)目:

我們按下立即運(yùn)行蜡饵,試試看能不能成功弹渔。因?yàn)槲覀兊奈募苄。芸炀统晒α耍?/p>

我們可以去阿里云看看它的備份文件:

看吧溯祸,并不是原來(lái)的樣子啦肢专!我們?cè)瓉?lái)是test.txt。所以就算阿里云不安全焦辅,也沒(méi)有太多關(guān)系博杖!

備份增量

下面,我們對(duì)文件進(jìn)行一些改動(dòng)筷登,然后創(chuàng)建一些新文件剃根。

# 目錄 cd ~/test # 改動(dòng)文件 echo '你知道嗎?' >> test.txt touch test2.txt && echo '你好呀G胺健狈醉!' > test2.txt # 觀察文件 ls -hl

文件已經(jīng)發(fā)生了較大的改動(dòng):

total 8.0K
-rw-r--r-- 1 test_user test 16 Apr 22 14:07 test2.txt
-rw-r--r-- 1 test_user test 29 Apr 22 14:07 test.txt

下面,我們?cè)賯浞菀幌禄菹铡:芸炀统晒α耍?/p>

這時(shí)苗傅,我們?nèi)グ⒗镌瓶悼担?/p>

已經(jīng)發(fā)生了備份了!現(xiàn)在我們將本地的內(nèi)容全部刪除:

cd ~/test && rm -r *

然后嘗試恢復(fù)文件班巩。

恢復(fù)文件

嘗試從項(xiàng)目中恢復(fù)渣慕。下一步。

看下面!它可以恢復(fù)你保留的任何版本摇庙。我們已經(jīng)產(chǎn)生了2個(gè)版本:

我們選擇其中那個(gè)最新的吧旱物!選中文件夾,然后點(diǎn)繼續(xù)卫袒。

下面它會(huì)詢問(wèn)恢復(fù)的位置宵呛。你可以自己選一個(gè)位置。我們這里可以用原位置夕凝,恢復(fù)讀寫權(quán)限宝穗,并覆蓋。這些用法都看實(shí)際情況了:

最后码秉,按恢復(fù)文件逮矛。成功了!它還打了個(gè)小廣告转砖,不用理踩须鼎。

我們?cè)趕hell里檢查一下:

cd ~/test && ls -hl

看到文件已經(jīng)回來(lái)了。

total 8.0K
-rw-r--r-- 1 test_user test 16 Apr 22 14:07 test2.txt
-rw-r--r-- 1 test_user test 29 Apr 22 14:07 test.txt

看看內(nèi)容的改變情況:

cat test.txt && cat test2.txt

輸出為:

我愛(ài)你府蔗! 你知道嗎晋控? 你好呀!姓赤!

內(nèi)容也沒(méi)有什么改變呀赡译!當(dāng)然,更嚴(yán)謹(jǐn)?shù)淖龇☉?yīng)該是比較恢復(fù)前后文件的md5sum或者是sha-265之類的不铆。不過(guò)我懶得搞了蝌焚。

有沒(méi)有一種自己的文件瞬間很安全的感覺(jué)?你可以試試備份自己的bitwarden文件夾誓斥、甚至是duplicati的文件夾喔只洒!操作一下!

某些bug

我的VPS數(shù)據(jù)是備份至我自己的NAS里劳坑,通過(guò)SSL(SFTP)的方式红碑,一直很正常。

不過(guò)泡垃,我的NAS的數(shù)據(jù)是備份至阿里云的,某些數(shù)據(jù)會(huì)出現(xiàn)The remote server returned an error: (500) Internal Server Error的數(shù)據(jù):

System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x00146] in <91935ad653254a93b9d73a9f8f2f7a2d>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <91935ad653254a93b9d73a9f8f2f7a2d>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest+AsyncWrapper.GetResponseOrStream () [0x0004d] in <2a3ee711c7c04f6c957360f2cf183a7f>:0 
  at Duplicati.Library.Utility.AsyncHttpRequest.GetResponse () [0x00044] in <2a3ee711c7c04f6c957360f2cf183a7f>:0 
  at Duplicati.Library.Backend.WEBDAV.Delete (System.String remotename) [0x0008d] in <5df020eccaa84287a3c79d1a4bf95fc9>:0 
  at Duplicati.Library.Main.BackendManager.DoDelete (Duplicati.Library.Main.BackendManager+FileEntryItem item) [0x0001c] in <e60bc008dd1b454d861cfacbdd3760b9>:0

并且遠(yuǎn)程連接經(jīng)測(cè)試都是正常的羡鸥。

更奇怪的是蔑穴,并不是所有的記錄都會(huì)出錯(cuò),有一些記錄就是正常運(yùn)作惧浴。而且這些記錄并不是一開(kāi)始就出錯(cuò)存和,而是運(yùn)行了幾次才忽然出錯(cuò)。我感覺(jué)可能是阿里云是否對(duì)這種傳輸進(jìn)行了限制?

目前暫無(wú)頭緒捐腿。持續(xù)觀察中纵朋!

小結(jié)

有了duplicati,加上阿里云茄袖,基本上可以認(rèn)為是安全無(wú)憂了操软。這里說(shuō)一下,凡是有Webdav的云都支持喔宪祥,比如Nextcloud聂薪。它上面還支持好多種其它服務(wù),看你自己選了蝗羊。

其實(shí)呢藏澳,duplicati只是說(shuō)多安一份心而已,一般情況是不會(huì)走到恢復(fù)數(shù)據(jù)這一步啦耀找!如果你遷移docker翔悠,直接scp到新的VPS就行了,不用專門備份野芒,然后在新的VPS中恢復(fù)蓄愁。

另外,如果我掛載一個(gè)遠(yuǎn)程的aliyun-webdav(基于https)复罐,好像是不能成功的涝登,暫時(shí)也不知道是什么原因。估計(jì)是哪里填寫得不對(duì)效诅。

基本上就是這樣胀滚。有了bitwardenduplicati這兩個(gè)基礎(chǔ)的應(yīng)用,媽媽再也不用擔(dān)心我玩VPS的安全性不夠了乱投!

不過(guò)咽笼,我覺(jué)得如果duplicati可以有一個(gè)錯(cuò)誤遠(yuǎn)程通知的功能就好了。在一段時(shí)間的使用里戚炫,我發(fā)現(xiàn)duplicati偶爾不能備份成功剑刑。如果日程備份失敗有郵件或者短信通知的話,應(yīng)該會(huì)更好双肤!

最后施掏,曬一下自己對(duì)duplicati的日常使用:

以后還會(huì)慢慢分享其它好用的Docker應(yīng)用噢!敬請(qǐng)期待吧茅糜!

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末七芭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔑赘,更是在濱河造成了極大的恐慌狸驳,老刑警劉巖预明,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異耙箍,居然都是意外死亡撰糠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門辩昆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)阅酪,“玉大人,你說(shuō)我怎么就攤上這事卤材≌诔猓” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵扇丛,是天一觀的道長(zhǎng)术吗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)帆精,這世上最難降的妖魔是什么较屿? 我笑而不...
    開(kāi)封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮卓练,結(jié)果婚禮上隘蝎,老公的妹妹穿的比我還像新娘。我一直安慰自己襟企,他們只是感情好嘱么,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著顽悼,像睡著了一般曼振。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔚龙,一...
    開(kāi)封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天冰评,我揣著相機(jī)與錄音,去河邊找鬼木羹。 笑死甲雅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坑填。 我是一名探鬼主播抛人,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼脐瑰!你這毒婦竟也來(lái)了函匕?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蚪黑,失蹤者是張志新(化名)和其女友劉穎盅惜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體忌穿,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抒寂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掠剑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屈芜。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖朴译,靈堂內(nèi)的尸體忽然破棺而出井佑,到底是詐尸還是另有隱情,我是刑警寧澤眠寿,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布躬翁,位于F島的核電站,受9級(jí)特大地震影響盯拱,放射性物質(zhì)發(fā)生泄漏盒发。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一狡逢、第九天 我趴在偏房一處隱蔽的房頂上張望宁舰。 院中可真熱鬧,春花似錦奢浑、人聲如沸蛮艰。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)壤蚜。三九已至,卻和暖如春详羡,著一層夾襖步出監(jiān)牢的瞬間仍律,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工实柠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留水泉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓窒盐,卻偏偏與公主長(zhǎng)得像草则,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟹漓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容