作者汇整: 九条凛

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了。