作者彙整: 九條凜

eAthena NPC Script Variables

Variables
———

The meat of every programming language is variables – places where you store
data.

Variables are divided into and uniquely identified by the combination of:
prefix – determines the scope and extent (or lifetime) of the variable
name – an identifier consisting of ‘_’ and alfanumeric characters
postfix – determines the type of the variable: integer or string

Scope can be:
global – global to all servers
local – local to the server
account – attached to the account of the character identified by RID
character – attached to the character identified by RID
npc – attached to the NPC
scope – attached to the scope of the instance

Extent can be:
permanent – They still exist when the server resets.
temporary – They cease to exist when the server resets.

Prefix: scope and extent
nothing – A permanent variable attached to the character, the default
variable type.
“@” – A temporary variable attached to the character.
SVN versions before 2094 revision and RC5 version will also treat
‘l’ as a temporary variable prefix, so beware of having variable
names starting with ‘l’ if you want full backward compatibility.
“$” – A global permanent variable.
They are stored in “save\mapreg.txt” or database table mapreg,
depending on server type.
“$@” – A global temporary variable.
This is important for scripts which are called with no RID
attached, that is, not triggered by a specific character object.
“.” – A NPC variable.
They exist in the NPC and dissapear when the server restarts or the
npc is reloaded. Can be accessed from inside the NPC or by calling
‘getvariableofnpc’.
“.@” – A scope variable.
They are unique to the instance and scope. Each instance has it’s
own scope that ends when the script ends. Calling a function with
callsub/callfunc starts a new scope, returning from the function
ends it. When a scope ends, it’s variables are converted to values
(‘return .@var;’ returns a value, not a reference).
“#” – A permanent local account variable.
They are stored with all the account data in “save\accreg.txt” in
TXT versions and in the SQL versions in the ‘global_reg_value’
table using type 2.
“##” – A permanent global account variable stored by the login server.
They are stored in “save\account.txt” and in the SQL versions in the
‘global_reg_value’ table, using type 1. The only difference you will
note from normal # variables is when you have multiple char-servers
connected to the same login server. The # variables are unique to
each char-server, while the ## variables are shared by all these
char-servers.

Postfix: integer or string
nothing – integer variable, can store positive and negative numbers, but only
whole numbers (so don’t expect to do any fractional math)
‘$’ – string variable, can store text

Examples:
name – permanent character integer variable
name$ – permanent character string variable
@name – temporary character integer variable
@name$ – temporary character string variable
$name – permanent global integer variable
$name$ – permanent global string variable
$@name – temporary global integer variable
$@name$ – temporary global string variable
.name – npc integer variable
.name$ – npc string variable
.@name – scope integer variable
.@name$ – scope string variable
#name – permanent local account integer variable
#name$ – permanent local account string variable
##name – permanent global account integer variable
##name$ – permanent global account string variable

If a variable was never set, it is considered to equal zero for integer
variables or an empty string (“”, nothing between the quotes) for string
variables. Once you set it to that, the variable is as good as forgotten
forever, and no trace remains of it even if it was stored with character or
account data.

Some variables are special, that is, they are already defined for you by the
scripting engine. You can see the full list somewhere in ‘db/const.txt’, which
is a file you should read, since it also allows you to replace lots of numbered
arguments for many commands with easier to read text. The special variables most
commonly used are all permanent character-based variables:

StatusPoint – Amount of status points remaining.
BaseLevel – Current base level
SkillPoint – Amount of skill points remaining
Class – Current job
Upper – 1 if the character is an advanced job class.
Zeny – Current amount of zeny
Sex – Character’s gender, 0 if female, 1 if male.
Weight – The weight the character currently carries.
MaxWeight – The maximum weight the character can carry.
JobLevel – Character’s job level
BaseExp – The amount of base experience points the character has.
Notice that it’s zero (or close) if the character just got a level.
JobExp – Same for job levels
NextBaseExp – Amount of experience points needed to reach the next base level.
NextJobExp – Same for job levels.
Hp – Current amount of hit points.
MaxHp – Maximum amount of hit points.
Sp – Current spell points.
MaxSp – Maximum amount of spell points.
BaseJob – This is sneaky, apparently meant for baby class support.
This will supposedly equal Job_Acolyte regardless of whether the
character is an acolyte or a baby acolyte, for example.
Karma – The character’s karma. Karma system is not fully functional, but
this doesn’t mean this doesn’t work at all. Not tested.
Manner – The character’s manner rating. Becomes negative if the player
utters words forbidden through the use of ‘manner.txt’ client-side
file.

While these behave as variables, do not always expect to just set them – it is
not certain whether this will work for all of them. Whenever there is a command
or a function to set something, it’s usually preferable to use that instead. The
notable exception is Zeny, which you can and often will address directly –
setting it will make the character own this number of zeny.
If you try to set Zeny to a negative number, the script will be terminated with an error.

播放HEVC編碼MP4沒有畫面的解決辦法

  從今年4月番開始,很多字幕組開始使用新的編碼HEVC,也就是H265進行視頻壓制,很多播放器出現只有聲音沒有畫面的情況。也有一些用戶在播放某些編碼的MP4時出現沒有聲音或是無法播放的狀況。要解決這些問題,首先要弄清編解碼器和播放器的關係。
  一個播放器能播放各種各樣的格式,最重要的是它的解碼器而不是播放器本身,播放器本身無關緊要。Windows Media Player本身並不支持rmvb、DivX、H265等格式,能播放這些格式是因為完美解碼、Win7codecs等將解碼器註冊到系統中,使其可以調用。國內的很多播放器如某某看看、完美解碼、暴風影音等均是自己先安裝一個播放器,再安裝很多類型的解碼器,讓自己的播放器調用自己安裝的編解碼器達到解碼效果。這種方式的好處是可以推廣自己的播放器,播放器也能智能選擇編碼。缺點是無法自由選擇解碼方式和分流器,如果某個格式不能播放,只能刪了換一個播放器。
  編碼是各種各樣的,因此沒有任何一個播放器是萬能的,個人建議使用系統自帶的Windows Media Player配合一個可以自由設置的編解碼器,當出現播放問題時,可以嘗試修改分流器和解碼方式。下面以Shark007 ADVANCED Codecs(前身是Win7codecs)為例,說明常見類型不能播放的處理方法。

在解決問題之前首先安裝Win7codecs然後打開設置選中最下方的Shark007 SUGGESTED settings將它設置為默認編解碼器。
1)HEVC(H265)不能播放的設置方法。
mp4 - コピー
如圖將Disable Windows Media Foundation前面的勾選去掉即可

2)x264-Hi10P不能播放的設置方法。
mp4
如圖將XVID/DIVX/MP4V in DirectShow從微軟解碼改為FFDShow解碼,建議將下面的MPEG2也改為FFDShow解碼,最下面的AAC音頻不要改為FFDShow解碼否則可能出現一些手機拍攝的MP4放不出聲音的狀況。

3)一些老的AVI文件不能播放的設置方法。
avi
如圖左邊將AVI的分流器從微軟系統自帶改為LAV分流器即可。

說明1:視頻在播放時會先使用分流器,再使用解碼器分別對音頻和視頻進行解碼。如果文件無法打開說明分流器有問題,如果文件打開但沒有聲音或者沒有圖像,說明解碼器有問題,可以在設置中手動修改反復嘗試。
說明2:MP4、AVI只是視頻文件的封裝格式,文件的擴展名並不代表編碼,可以播放一個MP4文件並不代表可以播放其他MP4文件。同樣是MP4文件可以是H263、H264、H265等不同編碼,同樣是AVI文件可以是DIVX、Xvid等不同的編碼。
======
kujou_rin

[270604]大坂城落城400週年

375151b1
  又是一年6月4日,而歷史上的今天這個標題我也連續使用了好幾年了。每年都想寫點什麼但每年都是輕描淡寫一筆帶過,也許歸根結底是變得懶散不想動手了。那麼今年,依舊是和往年一樣的話題,談談歷史上的今天,400年前,1615年6月4日(西曆)。戰國時代最後一役,由德川家康、德川秀忠率領的德川軍對陣豐臣秀賴為首的豐臣軍的大坂之陣,以德川軍的勝利結束,大坂城落城,城池幾乎完全燒毀,豐臣家當主豐臣秀賴與淀夫人在倉庫中自盡。
  豐臣家的滅亡,標誌着大阪之陣的結束,同時也是戰國時代的正式結束。這一年時任征夷大將軍的德川秀忠(實際上仍然是其父德川家康的二元政治)奏請朝廷使用了新的年號元和,這也標誌的德川時代的正式開始。直到西方思想所掀起的明治維新到來,才結束了德川幕府240多年的統治。今天,大坂城落城400週年之際,我們圍繞該話題來談談德川家的興起和豐臣家的滅亡。
一、豐臣家的唯一家主
  從羽柴秀吉在織田信長在世時代嶄露頭角,到信長因本能寺事件去世,秀吉通過清須會議獨攬織田家大權。以及之後的排除異己,不斷消滅由織田家分裂的異見勢力,足以見得秀吉在亂世中的智慧與奸詐。繼承信長家的勢力後,秀吉不斷擴大其勢力,向天下人的目標邁進,在去年NHK的大河劇「黑田官兵衞」中也對秀吉的野心與智慧進行了描寫。我個人建議感興趣的也可以看一下大前年的「江-公主們的戰國」。
  秀吉通過武力和智略,最終將大半日本收入囊中。而對於擁有東北最大勢力的德川,秀吉則通過外交手段,不惜將自己生母送往德川家成為人質,最終成功籠絡德川,使德川對秀吉俯首稱臣。通俗的說秀吉為了統一日本可謂不擇手段,無賴、殘忍、跪舔,而這種拿得起放得下的性格正是他成功統一日本的原因。一個農民出身的人,通過不斷努力最終受封關白一職統一日本被天皇賜姓豐臣,這也成為了後人講述勵志故事的典型,這種事情也是日本從古至今聞所未聞的,光榮公司所出品的遊戲「太閣立志傳」便是對秀吉建立豐臣家偉業的描寫。
  當然農民出身的身份也正是豐臣家興衰史中最大的局限性,雖然編造了自己的公家出身,但內心依舊是一介草民,成為人上人之後隨之出現的就是暴發戶的心態。傾盡全國之金錢造就日本歷史上最大的城池,大坂城,外牆裝飾多用鍍金材料,內部有着著名的全鍍金的金色茶室,與當今迪拜人的土豪設計有的一比。當然這一切都向天下展示著豐臣家的權力與威嚴,並不為過,而暴發戶的心態帶來最多的是,獨斷與專橫,無法再接受任何反對意見,肆意妄為出爾反爾朝令夕改。晚年的秀吉,幾乎到了隨意處死反對者的地步,因此得到「殺生關白」的民間稱號。
  豐臣家最終衰落我個人認為原因有以下幾個。其一是秀吉晚年時代判斷力喪失,不顧眾多大名反對獨斷的發起對朝鮮的侵略戰爭,並處罰反對者;其次是對基督教的鎮壓,早年藉助基督教之力對抗日本僧眾勢力的秀吉晚年因感受到基督教的威脅而開始鎮壓基督教,並扣押西方船隻處死幾十名傳教士(聖人),國際影響極為惡劣;再次是因為其老來得子,民間傳聞秀吉不是孩子生父,秀吉因此動怒將流出傳言的整條街道數百人全部處死;另外秀吉膝下無子時將關白之位傳給外甥豐臣秀次,而老來得子後反悔,隨即殺死了外甥秀次及其侍女、孩子一家39人;此外,在日本具有極高威望的茶道大師千利休,同時也是秀吉的舊友,也因反對秀吉而被賜死。種種惡行使豐臣家的威望衰落極大。
  而最大的原因是豐臣家的權力幾乎集中於秀吉一人身上,秀吉死後豐臣家迅速敗落,加上秀吉是老來得子,其子秀賴當時還是個孩子,豐臣家大權落在淀夫人和家臣石田三成手中。而另一方面,秀吉死後石田三成則積極的進行與德川的對抗,最終在戰國史中最大戰役也是決定性的戰役關原之戰中落敗,造成豐臣家敗於德川家的不可挽回的局面。而石田和淀夫人的專橫跋扈也使豐臣家內部產生了不滿情緒,很多家臣因此背離豐臣投靠德川。大河劇中也多有描寫三成失道寡助的情節。
  且讓我們八卦一下,關於豐臣秀賴與之前同樣是秀吉老來得子的鶴松不是秀吉親生子的謠言,其實野史上有諸多說法,傳的最盛的是秀賴是石田三成或是大野治長的孩子,三成即是秀吉的心腹,同時也是淀夫人的心腹,秀吉死後一直不遺餘力的支持着豐臣家(淀夫人和秀賴),而相傳三成乃是戰國第一美男子;而另一位大野治長則是淀夫人乳母的兒子,兩人也來往甚密。加上秀吉生前極好女色,共立側室十幾位,而城中的後宮女人則多達百人,但卻沒有一個孩子,因此有傳言秀吉不能生育,直到遇到茶茶(未來的淀夫人)才有了繼承人,因此民間野史「借種」一說不無道理。但是前幾年在日本歷史節目「歷史秘話」中,有學者發言指出大坂城後宮的管理極為森嚴,野史傳聞並不可信,秀賴很大程度上應該是秀吉的親生孩子。
二、德川家的亂世智慧
  某天,有人問德川家康、織田信長、羽柴秀吉同一個問題,杜鵑不鳴怎麼辦。信長回答:殺之,而家康回答:待其鳴,秀吉則回答:逗其鳴。這其實是一個人盡皆知的典故,也是對戰國歷史中最關鍵三人性格最真實的表述。信長的性格急於求成,雖然開創了「天下布武」的事業,卻同樣因為其性格葬身本能寺;而秀吉則善於使用方法,終於完成一統大業;家康則善於坐享其成,在秀吉死後等待時機,最終建立德川盛世。
  家康自幼身為人質在大名中輾轉生存,深知戰國的生存之道,在與織田結盟時雖為盟友但仍然受到家臣待遇,而在與豐臣的爭霸中,也願意暫且低頭臣服等待時機。他被稱為老奸巨猾,同時因為長壽民間外號「老烏龜」,在「戰國無雙」等作品中,他總以反派角色出現,永遠不是主角派,但在江戶幕府的歷史中,他卻是創立盛世的神功始祖。他所創立的幕府與政治體系堅如磐石堅持了幾百年,借用中國歷史上評價曹操的話,德川家康也算得上「治世之能臣,亂世之奸雄」。
  豐臣秀吉時代在與豐臣的較量中,雖然德川家康始終無法壓制豐臣秀吉,但他一直都極力做到從未敗給秀吉,小牧長久手之戰中也同樣以勝利者的姿態議和結束。因此秀吉也一直對家康敬重有加,在豐臣時代中家康在豐臣家也有極高的地位。家康並不是身為秀吉的手下敗將而臣服,或者可以說家康從未真正對秀吉臣服過。大河劇「江」中也有秀吉臨死前囑咐秀賴稱家康為父的情節(可能是杜撰),足以見得豐臣時代中德川勢力的強大。
  為了削弱德川的勢力,秀吉使用轉封的方式給了德川更大的土地將其支到遙遠的東北江戶,表面上已經立誓臣服的德川自然不能拒絕。江戶也就是現今的東京,在安土桃山時代及以前都是東北荒涼之地,而當時發達的地區主要集中於京都大阪近畿,也就是關西一帶。不過看過日本地形就會知道江戶一帶其實有日本最大的一片開闊平原,很利於城市的發展,德川家就在這天高皇帝遠的地方重新起家發展慢慢積攢勢力。
  秀吉死後,德川家康的野心逐漸抬頭,多次挑撥三成引發矛盾。而一心保護豐臣家的三成為了消滅德川的野心,積極的應戰,最終以德川家康為首的東軍(德川軍、伊達軍、黑田軍等聯合軍)和以石田三成為首的西軍(石田豐臣軍、毛利軍、大谷軍等聯合軍)在貫穿日本東西以及山陰山陽道的交通要地關原展開決戰。幾十萬大軍對陣的關原之戰雖為史上最大規模戰役,卻僅僅一天就結束了。因石田的專橫而喪失人心,各大名紛紛倒戈。而具有公家身份的小早川秀秋的倒戈則成為東軍勝利的關鍵,西軍內部紛紛倒戈兵敗如山倒。而另一方面毛利家佈陣於山上,因為內部分裂,德川的支持者堵住山路使大軍無法參戰最終輸掉戰役。對於這段歷史感興趣的朋友可以看一下多年前的大河劇「葵-德川三代」。
  目前保留下的文物中,德川家康戰前寄給各大名的信件多達百封,而石田三成寄給各大名的信件則寥寥無幾。因此有德川是得道者多助,石田是失道寡助的說法。但這終究只是一面之詞,德川寄出的信留下百封是因為德川是勝利者,而石田的信寥寥無幾是因為石田是失敗者。失敗者的信件被大家悉數銷毀,其歷史也被勝利者抹殺。我們在文學作品、影視作品中看見的石田三成也許並非歷史的真實。「借種」的淀夫人,專橫跋扈無人支持的三成,這些歷史又是誰書寫的呢。還是那句老話,歷史是勝利者書寫的,我們看見的三成,也僅僅是德川時代筆下的三成罷了。
  1600年(西曆)關原的勝利讓德川成為第一大名,而豐臣家的威望一落千丈,垂死掙扎了十幾年後。德川家通過羞辱、挑撥、借機陷害找藉口的老辦法最終與豐臣家開戰。在長達半年的大阪之陣中,最終攻陷這座不落之城。1615年6月4日(西曆),大坂城落城,豐臣秀賴與淀夫人在倉庫自盡,豐臣家滅亡。從此日本進入德川幕府(又稱江戶幕府)統治時代,改年號為元和。德川幕府雖然創造了240多年的太平盛世,但由於其閉關鎖國政策,科技與思想遠遠落後西方。直到1853年美國的佩裡船長率艦隊抵達日本(史稱黑船來航),讓第一次看見蒸汽船的日本人震驚,從而成為了1867年大政奉還和明治維新的導火索。
  明治維新雖然結束了德川的統治,但因坂本龍馬等人的努力,德川家最後以民主的方式和平退還政權。其後在議會中也獲得席位,至今德川的後人依舊經營著德川紀念財團。
三、今天的大阪城
  也許有人會疑問前文的「大阪城」為何使用的寫法是「大坂城」,這是為了尊重和還原歷史。大阪城的寫法原本是「坂」字,但因幕末時代時局動蕩,維新前夕坂本等人企圖顛覆幕府政權,加上「坂」拆開文字解讀有武士謀反的意味,因此為了避諱將「大坂城」改為了「大阪城」。
  當今的大阪城公園,已經成為關西旅遊的必經之地。而我們現在所看見的大阪城,實際上並非豐臣秀吉所建造大阪城的原貌。雖然大阪城一直保持五層天守的結構,但豐臣秀吉所修建的大阪城,是外牆均為黑色,瓦簷鑲金的設計,該城在前文所述的大阪之陣中被德川軍燒毀。其後在德川幕府時代,大阪城被重建為外牆均為白色的德川時代建築,而在1665年大阪城遭遇雷電引發的火災天守閣再次燒毀。直到1930年才由明治政府重建,重建風格為下四層為白色德川風格,第五層保持豐臣時代的黑色風格。而在1945年太平洋戰爭的大阪大空襲以及其後美軍管轄中再次失火導致部分建築受損,索性天守躲過一劫。因此我們現在所看見的大阪城公園的大阪城,是1930年重建,並在戰後考證翻修的大阪城。
  從大阪城的歷史到大阪城的今日至此就全部講完了,因為最近工作生活較忙以及手頭也沒什麼資料,加上文章有一半是在火車上寫的,而且還分了兩天才寫完,文中的故事情節基本都是靠記憶胡謅,所以不免有很多疏漏和錯誤,如有讀者發現敬請指正。

完成於平成27年6月5日
kujou_rin

相關文章:歷史上的今天,大阪之陣
https://lilith.pro/nikki/1157

Discuz找回密碼出現參數錯誤的解決辦法

使用Discuz3.X的找回密碼功能後,點擊郵件收到的找回密碼鏈接,輸入信息卻被告知「參數錯誤」(如圖)
56F8D4B0@BBA6A158.B2946E55
這是因為Discuz3.X採用了新的驗證機制,在驗證鏈接的hash之外還驗證了sign,但是修改密碼的頁面並沒有寫入這一項,因此需要我們手動修改。
解決辦法是:
打開source\module\member\member_getpasswd.php
在第32行找到

在下面添加一行

再打開template\default\member\getpasswd.htm
找到第8行

修改為

重新點一下找回密碼鏈接發現問題已經解決啦。順便說一下,Discuz完全是把用戶當小白鼠忽悠。

======
kujou_rin

C語言接口遠程讀取MySQL數據實例

  之前在伺服器上搭建了VPN之後,順便寫了一個php的註冊頁面用於註冊VPN的用戶,使用MySQL保存用戶數據。而pptpd和l2tpd服務則在另一台伺服器運行,且通過文件進行用戶驗證。因此需要將用戶密碼表單遠程從MySQL中取出並在VPN伺服器保存為文件。我的解決方案是使用C語音調用MySQL接口然後使用文件流保存,這樣的方案同樣可用於解決架設多節點的VPN服務。

實例代碼如下:

Makefile文件內容如下:

然後只需要再寫一個shell腳本添加到 crontab 定時運行該程式並將輸出的文件移動為 chap-secrets 即可。

簡易的VPN用戶管理系統就大功告成了~

======
kujou_rin

多網卡配置路由同時訪問公司內網和外網

配置路由表可以指定源地址到達目標地址所使用的網關,通俗的說就是多網卡環境中指定到達某個地址的路徑。

一、路由的配置方法:
1、添加路由
路由配置命令為

其中x.x.x.x為目標地址網段,與子網掩碼y.y.y.y配合確定目標地址的範圍。 z.z.z.z為源方出口網關地址。命令需要在(Linux)root權限或(Windows)Administrator權限下運行。
例如

表示當訪問地址網段在 10.12.88.* 時,走 192.168.66.1 網關出口。
再例如

表示僅當訪問 10.12.88.6 是才走 192.168.66.1 網關出口。
2、查看路由
查看路由命令為(Linux) route 以及(Windows) route PRINT ,該命令將會列出本機所配置的所有路由。
3、刪除路由
路由配置的刪除命令為

4、路由的生效問題
路由配置命令運行時將會立即生效,重啟後動態路由將被清空。使之重啟後仍然有效的方法是Windows在命令結尾使用 –p 參數使其永久有效,Linux將此命令加入到/etc/rc.local中(Linux系統啟動時將加載運行此文件中的腳本)。

二、實用配置舉例:
個人電腦插線連線公司局域網,需要訪問公司內部網絡某些地址段進行辦公,但是該公司網絡無法訪問互聯網(Internet)外網。此時您同時連線了wifi無線用於訪問外網。
有線網卡(公司網)的本機IP是 10.12.3.134,掩碼 255.255.255.0,網關 10.12.3.254。
無線網卡(用於訪問Internet)的本機IP是 192.168.1.102,掩碼 255.255.255.0,網關 192.168.1.1
公司內部網絡中辦公需要訪問的地址是 80.10.40.*,以及公司的某台打印機 80.10.8.8
根據以上情況的配置方案:(Windows舉例)

以上命令分別為:
刪除默認路由
設置所有IP地址走無線網卡(用於訪問外網)
設置 80.10.40.* 走有線網卡(用於公司辦公)
設置 80.10.8.8 走有線網卡(用於公司打印機)

======
kujou_rin

Ubuntu搭建PPTP/L2TP類型VPN伺服器

在Ubuntu下搭建VPN伺服器,我們分別搭建PPTP和L2TP兩種類型。

首先我們搭建PPTP伺服器。
下載安裝pptpd:

接下來修改配置腳本,首先在/etc/ppp/options中配置DNS。
將以下兩行的注釋符號刪除並改為你需要的外網DNS:

然後修改pptp配置文件/etc/ppp/pptpd-options,除注釋行外的內容如下:

以及另一個用於pptp分配ip的配置文件/etc/pptpd.conf,在該文件結尾加入:

給pptp連接分配的內部ip地址段請根據需要填寫。
接下來打開路由轉發功能,在/etc/sysctl.conf中找到以下內容將數值改為1:
net.ipv4.ip_forward=1
保存後運行命令生效:
sysctl -p
修改iptable規則NAT轉發以及設置MTU

以上兩行重啟後會失效,很多人的做法是將其保存為iptable rules添加到pre-up中
我的做法比較簡單,直接將這兩行寫入/etc/rc.local結尾(exit之前)。
(注意:eth0是你的公網網卡名稱,請通過ifconfig確認)
然後在/etc/ppp/chap-secrets中添加用戶和密碼。
格式為[用戶名\t連接類型\t密碼\t用戶IP],例如:

使用/etc/init.d/pptpd restart重啟pptpd服務。
至此pptp類型VPN搭建完畢。

接下來搭建L2TP類型VPN。
因為L2TP需要通過IPSec加密,同樣我們下載安裝需要的組建服務:

然後修改配置文件/etc/ipsec.conf,除注釋行外的內容如下:

left處請填寫您本伺服器的IP位址!
接下來修改/etc/xl2tpd/xl2tpd.conf,除注釋行外的內容如下:

ip range處請填寫您需要給l2tp連接分配的內部ip網段。
再修改/etc/ppp/options.xl2tpd,如果沒有可以新建,內容如下:

DNS處可設置您需要分配的DNS地址。
再修改/etc/ipsec.secrets文件設置預設共享密鑰:

前面為本伺服器IP地址,引號內的為您要設置的密鑰
修改網絡策略使ipsec能正常運行:

順便也加入到/etc/rc.local中(exit之前)。
以上配置全部完畢後,可以通過ipsec verify命令檢測ipsec運行是否正常。
如果出現Checking for IPsec support in kernel [FAILED],您可能未啟動ipsec服務,通過/etc/init.d/ipsec start啟動。
如果出現NETKEY: Testing XFRM related proc values [FAILED],您可能未修改網絡策略。
如果出現Pluto listening for IKE on udp 500 [FAILED],您可能需要安裝apt-get install lsof。
如果沒有出現[FAILED]表示運行正常。
Ubuntu使用apt-get安裝openswan一定會出現Two or more interfaces found, checking IP forwarding [FAILED]。
而且客戶端無法連接,且在/var/log/auth日誌中出現
ERROR: netlink XFRM_MSG_DELPOLICY response for flow eroute_connection delete included errno 2: No such file or directory
那麼原因應該是apt-get到的openswan版本並不能在該Ubuntu上運行,建議去openswan的官網下載2.6.34版本手動編譯安裝。
或在此下載源碼:ftp://ro:[email protected]/openswan_lilith.pro.tar.gz
(這實在非常噁心,因為源碼編譯安裝不是誰都能完成的,注意必須把源碼解壓在/usr/src下並apt-get install libgmp3-dev,以及bison,flex等然後再編譯安裝)
L2TP將和PPTP一樣使用/etc/ppp/chap-secrets作為帳戶密碼文件。
重啟所有服務:

大功告成!

======
kujou_rin

[270424]九條凜の部屋を開催

  經歷了一週的折騰,終於把以前在QQ空間和網易博客寫的所有文章都搬運到了自己的站點上,從05年至今留下的電子格式的博文大約400多篇共36萬字的資料,包括其中的配圖都全部是一篇篇半手動的搬運過來的。至於為什麼沒有寫一個一鍵搬家工具,其一是某些文章中帶有羞恥信息的需要人工審查並刪除,其二是一些失效的鏈接和圖片也要刪除或者替換,當然最重要的一點是本人對於web方面一竅不通,這一點從我自己寫的簡陋的私服註冊頁面也能看得出來。
  手動搬運的過程很漫長但也很有意義,回首自己十年的過往,有喜悅也有憂傷,曾經那些中二的話語令人忍俊不禁,而那些感情的追憶又令人黯然神傷。搬運和整理日記的過程似乎是在看着自己一天天的生活成長直到今天,過去遇到的人和物又一個個從記憶深處重新走了出來,有太多的感情,難以言表。那些舊日記,有對社會百態的針砭時弊,也有記錄平凡日常的點點滴滴。即使有些文章看起來冒着傻氣,我也如實的將它搬運過來,因為它們對於我來說是我不想遺失任何一個的珍貴的至寶。
  當然,這些原本存放於QQ空間和網易博客等地方的文章,在經過一遍遍國內網站自我審查的洗禮,也已經遺失了不少。慶倖的是擁有整理資料強迫症的我,會把每一篇文章都做好備份,這使得不少文章在最近搬運過程中又能夠重建天日。遺憾的是一些文章的配圖並沒有備份,在被QQ空間刪除後也無法恢復,只好作罷。今天搬家完畢也就意味着從此以後可以愉快的和國內各種博客和QQ空間說再見了,從此不需要再浪費時間在令人作嘔的文字遊戲上,也不用再做用同音字代替發表的無聊事情。
  再見了,QQ空間和網易博客。

無名の QQ スクリーンショット270424191341
[圖]紀念一下網易博客的流量,訪問峰值的時間應該是甕安新聞速報。
======
kujou_rin

大陸安卓用戶安裝和使用GooglePlay服務

安卓(Android)系統由Google製造,其官方APP市場是Google Play。但大陸因為屏蔽了Google因此很多安卓手機也閹割了Google的服務,不得不使用安智,小米等第三方市場安裝APP。不僅無法安裝大量APP,也無法及時獲取官方軟件的更新,APP內也無法通過官方途徑進行消費,從第三方市場下載的APP也無法保證沒有被惡意修改。

另外Google服務還可以幫你同步通信錄,日曆和用戶數據,您在任意安卓設備登錄Google帳戶後通信錄將會保持同步。一些遊戲在保存進度和轉移數據時也需要綁定Google帳戶。如果您的設備沒有Google服務,您可以將它們安裝回來,下載下面的壓縮檔案,解壓後放入手機並依次安裝其中的項目。(解壓密碼「lilith.pro」,請使用winrar5或更高版本)

ftp://ro:[email protected]/GoogleApps.rar (此檔案包僅適用於Android4.4)
內含文件如下:
GoogleServicesFramework.apk – 谷歌服務框架(*注1
GoogleLoginService.apk – 谷歌帳戶管理服務(*注1
GoogleContactsSyncAdapter.apk – 谷歌通信錄同步服務(*注1
GoogleCalendarSyncAdapter.apk – 谷歌日曆同步服務(*注1
GmsCore.apk – 谷歌Play服務(*注1
Vending.apk – 谷歌Play市場(*注1

以上全部安裝後打開GooglePlay登入您的谷歌帳戶即可。

注1:此安裝包請務必在以下站點下載,下載時請仔細核對您的安卓版本號。
http://www.apkmirror.com/apk/google-inc/google-play-services/

其他說明:大陸用戶登入Google需要先連線海外VPN,Google帳戶即是您的gmail地址。如果您需要在Google購買付費APP或在遊戲內消費,需要綁定信用卡,綁卡時的IP將決定您的市場區域,綁定後不可修改,美國區將無法下載日本區遊戲,反之亦然。如無消費需要可暫不綁定。

關於VPN的幫助請參閱此文章:https://lilith.pro/gijyutsu/2315
======
kujou_rin

[270328]四面楚歌的中國網絡

  有一段時間沒有更新博客和空間了,雖然省下了很多時間用來補番,但是自從我不再繼續在空間寫文之後,朋友們似乎也沒辦法知道自己身邊每天正發生著什麼。周圍的同學和朋友似乎有一大半隻有在看我空間和博客的時候才能知道身邊的事情,為什麼外交部會回應西方對中國進行網絡攻擊的指責,為什麼Google和Mozilla會同時宣佈吊銷中國互聯網中心證書,為什麼最近一些新聞看的雲裡霧裡。前幾天和朋友聊天的時候發覺似乎我應該重新把寫博客的習慣撿起來了,而且很多朋友也無法通過推特了解我的近況。
  先說說中國最近的網絡狀況吧,之前也說道習自從上台以來,外來文化方面一直在收緊,各種外國影視作品也紛紛下架,這其中不乏一些國內企業已經購買過版權的作品。然而在網絡方面,除了進行收緊政策以外,由原始的封鎖和禁止改為了主動的襲擊和破壞。之前說過去年中國曾利用中間人攻擊對Outlook,Yahoo,github等進行了攻擊。然後今年一月中國調整G*F*W(國家防火牆)策略,將DNS污染投毒改為隨機的國外ip地址,這些地址中甚至有很多是正常可以訪問的站點。按照過去的方法如果國內用戶訪問臉書推特谷歌等網站,會被引向一個不存在的地址,而現在這些巨大的流量將會引向某個隨機的國外網站,從而造成DDoS攻擊。
  受到攻擊的網站是隨機的,包括一些歐洲的工廠,美國的個人博客,他們的網站在受到這種莫名其妙的待遇之後,大多數都選擇了主動屏蔽中國IP。「中國人禁止入內」的方法不僅在現實中解決了不少問題,在網絡上也同樣有效。當然中國的G*F*W也打出了自己的名號從而臭名遠揚,甚至有一位受到攻擊的美國站主主動學習了中文並在博客寫文對G*F*W進行了指責。
無名の QQ スクリーンショット270426215707
[圖]受到攻擊的美國個人網站站長主動學習了中文進行回擊
  然後是三月份,中國的互聯網管理部門又一次給了全世界一個驚喜。CNNIC(中國互聯網信息管理中心)偽造了Google域名證書,劫持https通信,進行中間人攻擊,獲取用戶的密碼等資料,而帶有CNNIC數字簽名的假證書則成為了攻擊事件的鐵證。簡單來說就是被授予合法權力的部門利用權力做了非法的事情,就像民警用萬能鑰匙開了別人家鎖盜竊被人逮著正著。這種行為已經嚴重危害國際互聯網安全,侵犯國內用戶的隱私。並非西方妖魔化中國,而是自己本身就在做着只有恐怖主義才做得出來的事情。因而在四月份Google(chrome瀏覽器)和Mozilla(firefox瀏覽器)宣佈不再信任CNNIC頒發的數字證書,CNNIC回應表示難以接受。
  緊接着三月底,G*F*W劫持了百度統計和百度推廣的流量對github發起了攻擊。G*F*W通過在百度植入惡意代碼,使訪問者自動攻擊目標,也許當時正在訪問百度的你,就是數百萬攻擊者之一。這種惡意攻擊的明目張膽和喪心病狂已經到了任何人都能抓到證據的地步。外交部一直聲稱自己是網絡犯罪最大的受害國,而實際上國際互聯網上的大多數攻擊都是由中國發起。筆者也親自嘗試,牆外訪問百度時確實可以在m.js中發現github等字樣,有理由相信中國本次針對github的國家級攻擊是真實可信的。
CBFSMjeUYAAAvKqCBFSOIoUsAAEMhj
[圖]筆者查看m.js腳本時的截圖
  中國對於國際互聯網的肆意攻擊和對國內流量的劫持,就好比不想讓自家孩子上網玩遊戲而去破壞公共光纜一樣,這種危害國際互聯網安全與穩定,挑戰人類科技文明,踐踏人類正義與良知的行為,最終只會讓中國遭到全世界的唾棄。雖然中國一直聲稱這一切種種做法都是為了維護互聯網主權,但是在一個透明公開而公共的地方維護私有權,無異於在大海中圍起來海水不讓其隨意流動,不僅違反自然常識,最後的結果也只是發黴發臭罷了。

======
kujou_rin

使用apache偽靜態使網頁訪問自動跳轉至https

  前幾天給網站申請了ssl證書之後準備實現https訪問,但是如果訪問者直接輸入域名默認訪問的是http頁面。因為子域名的其他站點並不想使用https,因此每個站點要單獨設置。因此要使用apache的偽靜態實現URL重寫,將訪問者的http重寫為https。使用方法如下:
1、在apache配置中開啟apache的mod_rewrite模塊功能(很多時候默認是開啟的)
開啟方法是httpd.conf中增加如下語句並重啟apache:
LoadModule rewrite_module modules/mod_rewrite.so
2、創建一個文件,文件名為 .htaccess 內容如下

以上內容表示當頁面訪問時如果端口不是443則重寫URL跳轉到https
3、將該文件放在要使用https的站點的根目錄中,這樣便可以使訪問自動跳轉到https了。