创世神域

Nothing is impossible.

@Puteulanus1年前

06/2
22:30
学习心得

在 DO 的 Centos 7 上运行 OpenVZ 容器

首先安装 EPEL,openvz-release 里的有些软件包的依赖默认源没有:

yum install epel-release -y

然后安装 openvz-release:

yum localinstall -y https://download.openvz.org/virtuozzo/releases/openvz-7.0.3-479/x86_64/os/Packages/o/openvz-release-7.0.3-3.vz7.x86_64.rpm

导入 openvz-release 的 GPG key:

rpm --import http://repo.virtuozzo.com/vzlinux/security/VZLINUX_GPG_KEY

升级一下软件包,这一步很重要,特别 openvz-release 的版本得更新:

yum update -y

然后安装 OpenVZ 的内核和基础软件包:

yum install -y vzkernel prlctl prl-disp-service

装完 reboot 重启让系统用新内核跑起来。

OpenVZ 7(Virtuozzo) 要求 /vz 必须是 ext3 或者 ext4 的,重启之后首先把服务停下来:

systemctl stop vz

将原来 /vz 的东西备份:

mv /vz /vz_bak

建立挂载用的 ext4 镜像:

dd if=/dev/zero of=disk.img bs=10M count=1024

建立文件系统:

mkfs.ext4 -F disk.img

创建挂载点:

mkdir /vz

挂载镜像到 /vz:

mount -t ext4 -o loop disk.img /vz

复制原 /vz 目录内的文件到新目录:

cp -r /vz_bak/* /vz/

启动服务:

systemctl start vz

创建容器磁盘的时候需要一些内核模块,将他们加载:

modprobe ploop
modprobe pfmt_ploop1
modprobe pfmt_raw
modprobe pio_direct

查看一下哪些系统模版可用:

vzpkg list --available

安装 Centos 7 的系统模版:

vzpkg install template centos-7-x86_64

创建容器:

prlctl create test --vmtype ct

启动容器:

prlctl start test

在 DO 的 Centos 7 上运行 OpenVZ 容器

@Puteulanus1年前

05/24
14:53
学习心得

OSX 使用 Parallels Desktop 单机 LEDE 软路由

用了一段时间了,顺便记录一下。

跟 VRouter 其实是一个意思,但 VRouter 我死活启动不了,只能自己动手搞个了。

首先下载 LEDE x86 的镜像,解压(系统自带的解压双击就行,命令行下是用 gunzip),后缀名改为 hdd。

然后在 PD 里新建一个空白虚拟机,系统类型选择其他 Linux。

配置可以视情况分配,我是给的 256M 内存。记得将启动和关机设为“始终在后台准备就绪”,这样即使 PD 软件关闭之后或者电脑重启之后,虚拟机也会在后台运行。

删除默认的硬盘、CD驱动器、USB 等设备,添加一个新硬盘,选择刚刚解压出来的 hdd 文件。PD 会提示需要转换格式,确认转换。

保存之后创建虚拟机。

关闭虚拟机,然后在 PD 的软件设置中(注意不是虚拟机的设置)新建一个 host only 的网络,配置如图:

因为 LEDE x86 默认设置的 IP 地址是 192.168.1.1,如果家里网络是 192.168.1.x 网段的可能需要把 WiFi 先断开来避免冲突。

保存设置后进入新建的虚拟机的设置,把网络模式改为刚刚创建的网络。

保存后再次启动虚拟机,然后就可以在浏览器中访问 192.168.1.1 看到 LEDE 的网页了,默认密码为 koolshare。

首先修改网卡的地址,避免跟主机 IP 产生冲突。

保存之后关闭虚拟机,修改刚才新建的 host only 的网络中的 DHCP 设置为对应的网段,并且勾选“在系统偏好设置中显示”。

然后进入虚拟机设置,为虚拟机新增一张网卡,模式选择为桥接 WiFi 网卡。

然后重新打开虚拟机,访问新的 IP 地址进入管理界面。

修改默认 LAN 口的设置,在物理设置中取消 eth0 以外的所有勾选。

然后新建一个 WAN 接口,使用 DHCP 客户端模式,勾选 eth1 接口。

保存后确认 WAN 口获取到了上级路由器分配的 IP 地址:

在 Mac 的 系统偏好设置-网络 中,找到虚拟机的网络,在空白的路由器栏填上 LEDE 虚拟机的 IP 地址。

然后只需要在 Terminal 中执行 sudo route change default 192.168.66.1 ,将虚拟机设为默认网关,就可以临时以虚拟机为软路由访问网络了。

不过网关设置在网络发生变化(比如 WiFi 断开和重连之后)都会被更新,如果希望长期默认使用虚拟机软路由作为网关的话,可以修改系统网络设置中的服务顺序:

将创建的网络接口拖至第一位,即可将它作为默认网关。

OSX 使用 Parallels Desktop 单机 LEDE 软路由

@Puteulanus3年前

07/30
19:38
未分类

在Centos7上修改qcow2镜像

因为要在 OpenStack 的平台上批量部署服务,为了简化操作,需要自己先准备一个部署好了服务的 qcow2 镜像。比较简单的方法是使用模版镜像启动虚拟机,进行完修改之后再保存,不过本地上传速度相当悲剧,加上手上又没有独服能用,所以只好选在 vultr 使用 qemu 进行虚拟化。这里记录一下操作过程。

首先安装虚拟化工具:

yum install -y libvirt-client virt-manager virt-viewer guestfish libguestfs-tools virt-top virt-install

修改 qemu 启动用户,因为默认是 nobody 启动的,读 root 用户的文件的话会因为权限问题读不到。

编辑

/etc/libvirt/qemu.conf

找到:

#user="root"

#group="root"

去掉注释。

启动服务:

systemctl start libvirtd

然后创建子网配置:

cat << _EOF_ >default.xml
<network>
<name>default</name>
<bridge name="virbr0"/>
<forward/>
<ip address="192.168.122.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.122.2" end="192.168.122.254"/>
</dhcp>
</ip>
</network>
_EOF_

用 libvirt 创建一个虚拟子网:

virsh net-define ./default.xml

virsh net-autostart default

virsh net-start default

打开转发:

sysctl -w net.ipv4.ip_forward=1

echo net.ipv4.ip_forward = 1 >> "/etc/sysctl.conf"

sysctl -p

systemctl daemon-reload

安装 pip 与所需的依赖:

yum install -y python-devel python-setuptools

yum groupinstall -y "Development tools"

easy_install pip

安装 OpenStack 客户端:

pip install python-openstackclient

导入 rcFile 初始化配置:

source rcFile

列出初始的 image 列表:

openstack image list

这里选择 Centos 6.5 的镜像下载:

openstack image save --file centos_6.5-20150122-x86_64.qcow2 aceefa6f-7914-49df-839b-61bf6cc97694

下载完成之后先修改一下 root 密码,否则启动之后会出现无法登陆的情况:

export LIBGUESTFS_BACKEND=direct

virt-sysprep --root-password password:mypassword -a centos_6.5-20150122-x86_64.qcow2

然后编辑一下引导文件:

virt-edit centos_6.5-20150122-x86_64.qcow2 /etc/grub.conf

在 kernel /boot/vmlinuz… 那一行的后边加上

no_timer_check

否则 qemu 启动时检查计时器会出现无法引导的情况。Centos 7 的话引导文件是在 /etc/grub2.cfg ,需要修改两行 linux16 开头的引导命令。

查看 CPU 支持的模式:

qemu-x86_64 -cpu ?

命令会列出所有支持的模式,这里使用 kvm64

启动虚拟机:

virt-install --virt-type qemu --cpu kvm64 --ram 2048 --name centos_6.5 --disk path=centos_6.5-20150122-x86_64.qcow2,format=qcow2,device=disk,bus=virtio --network network=default,model=virtio --os-type=linux --nographics --import --vcpus 8

等到引导 log 刷完,使用之前修改的 root 密码登陆即可。

如果使用过程中需要断开与虚拟机的连接,可以按下 ctrl + ] 。重新连接至虚拟机则使用

virsh console centos_6.5

命令。

如果需要从外部进行登陆的可以开一个 screen ,执行:

socat TCP4-LISTEN:10022,reuseaddr,fork,su=nobody TCP4:192.168.122.231:22

将子网中的虚拟机的 ssh 端口转发到 vultr 的服务器的公网。

完成虚拟机中的服务部署的修改之后,首先 poweroff 虚拟机,然后使用

virt-sysprep -d centos_6.5

删除虚拟机内无用的数据,使用

virsh undefine centos_6.5

取消掉虚拟机

这时候 centos_6.5-20150122-x86_64.qcow2 这个镜像的修改就完成了。

使用

openstack image create -f shell --container-format bare --disk-format qcow2 --file centos_6.5-20150122-x86_64.qcow2 --tag centos_6.5 centos_6.5-20150122-x86_64_changed

将镜像重新上传回 OpenStack 的镜像库中。

然后就可以使用修改完成的镜像进行批量部署了。

有时候在修改虚拟机时可能出现磁盘空间不足的提示,这是因为初始镜像在制作时留下的剩余空间通常比较小,这时候就需要将虚拟机的磁盘大小进行一下变更了。

首先关闭虚拟机,然后查看一下文件系统详情:

virt-filesystems --long -h --all -a centos_6.5-20150122-x86_64.qcow2

创建一个新的磁盘文件:

qemu-img create -f qcow2 -o preallocation=metadata newdisk.qcow2 15G

使用创建的磁盘文件扩展分区:

virt-resize --expand /dev/sda1 centos_6.5-20150122-x86_64.qcow2 newdisk.qcow2

最后将镜像转回 qcow2 格式:

qemu-img convert -f raw -O qcow2 tmp.raw centos_6.5-20150122-x86_64_resized.qcow2

在Centos7上修改qcow2镜像

@Puteulanus4年前

02/18
02:39
学习心得

Windows下搭建带有缓存与广告过滤功能的分流代理

之前折腾了一下基友送的软路由,把代理和DNS防污染查询都移到了上边。代理部分经过几天摸索踩了不少坑,包括Polipo莫名其妙的卡,adbyby和Privoxy过滤广告卡网等等。下边是已经使用了一段时间的解决方案。

首先,下载TcpRoute2

TcpRoute2是类似COW的分流代理,这里用它来完成核心的代理客户端及分流功能。

把配置文件末尾的example去掉,然后按照提示修改配置文件。

我的配置是:

addr="127.0.0.1:7070"
PreHttpPorts=[0,]
PreHttpsPorts=[0,]

[[UpStreams]]
Name="direct"
ProxyUrl="direct://0.0.0.0:0000"
DnsResolve=true
[[UpStreams.Whitelist]]
Path="https://raw.githubusercontent.com/GameXG/TcpRoute2/master/direct.txt"
UpdateInterval="24h"
Type="suffix"
[[UpStreams.Blacklist]]
Path="direct/blacklist.txt"
UpdateInterval="24h"
Type="suffix"

[[UpStreams]]
Name="SS-HK"
ProxyUrl="ss://aes-256-cfb:password@ip:port"
DnsResolve=false
Credit=0
Sleep=200
CorrectDelay=75
[[UpStreams.Whitelist]]
Path="ss-hk/whitelist.txt"
UpdateInterval="24h"
Type="suffix"
[[UpStreams.Blacklist]]
Path="ss-hk/blacklist.txt"
UpdateInterval="24h"
Type="suffix"

[[UpStreams]]
Name="SS-SG"
ProxyUrl="ss://aes-256-cfb:password@ip:port"
DnsResolve=false
Credit=0
Sleep=200
CorrectDelay=75
[[UpStreams.Whitelist]]
Path="ss-sg/whitelist.txt"
UpdateInterval="24h"
Type="suffix"
[[UpStreams.Blacklist]]
Path="ss-sg/blacklist.txt"
UpdateInterval="24h"
Type="suffix"

[[Hosts]]
Path="hosts.txt"
Type="base"

[[Hosts]]
Path="http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext"
Type="base"
UpdateInterval="24h"

因为是5.0版的时候写的配置,可能会有一些缺少的新特性的参数。我为直连、SS-HK以及SS-SG各自建立了一个文件夹,方便在需要时对黑白名单进行配置。yoyo的这个hosts是在源头对一些广告服务器进行屏蔽,这样这些广告的请求压根不会产生网络流量。

配置完成之后启动TcpRoute2Windows.exe并把它设为开机自动启动,TcpRoute2就开始监听7777端口了。

TcpRoute2和SS一样提供socks5代理,不过一些程序,特别是OSX上对socks5支持没HTTP代理那么好。所以在下面可以用Privoxy来做一层转化。

下载Privoxy,安装。

修改配置文件为:

listen-address 127.0.0.1:8117
forward-socks5 / localhost:7070 .

保存。之后运行Privoxy,这样Privoxy就开始监听8117端口提供HTTP代理了。

Privoxy是一个轻量级的代理软件,虽然可以使用规则对代理内容进行过滤(比如adbyby就是它的延伸版本),但实际测试中会有很严重的性能问题。所以这里只是单纯将它作为协议转换来使用,更加复杂的功能交给squid来完成。

下载squid for windows(XP比较方便的就只有预编译的2.7了,Win7或以上64位的可以下3.5的安装包),同时下载SoftPerfect RAM Disk。因为要加缓存,会对储存介质造成比较频繁的读写。用SoftPerfect RAM Disk建立一个RAM Disk可以防止长期读写对硬盘造成伤害,如果觉得无所谓的可以就用硬盘来做缓存目录。。

将squid文件夹移到C盘下,进入etc目录去掉配置文件的后缀。编辑squid.ini,找到:

#Default:
http_access deny all

改完:

#Default:
acl ads dstdom_regex "C:\squid\share\ads.txt"
http_access deny ads
http_access allow all

然后在配置文件尾部加上

header_access Via deny all
header_access X-Forwarded-For deny all
http_port 8118
cache_peer 127.0.0.1 parent 8117 0 no-query default
never_direct allow all
cache_dir ufs r:\ 120 16 256

保存,下载 广告过滤规则 并存为C:\squid\share\ads.txt。

header_access的两条作用是阻止squid将你的内网IP放在HTTP头中发送出去,cache_peer是上级代理,也就是Privoxy的HTTP代理的地址和端口,cache_peer后面的r:\和120是缓存目录的路径与大小。

使用cmd运行 C:\squid\sbin\squid -i 来安装squid的服务。然后使用SoftPerfect RAM Disk新建一个开机自动挂载的RAM Disk,大小130M,盘符为r。

新建一个批处理,内容为:

C:\squid\sbin\squid.exe -z
sc start Squid

并在SoftPerfect RAM Disk的工具→应用程序中添加这个批处理。因为缓存目录是RAM Disk,squid必须在内存盘挂载之后才可以启动。这个批处理负责在SoftPerfect RAM Disk挂载r盘之后,对它进行初始化,并启动squid服务。

最后,将 127.0.0.1:8118 设为IE浏览器的代理,大部分支持HTTP代理的软件就会自动读取IE浏览器的代理设置来使用代理了。

TcpRoute2会选择所有线路中最快的一条(或者直连)来进行连接,可以是多台上级SS选择最优线路,也可以是亚洲的主代理和搬瓦工的应急备用代理做故障转移。默认的直连白名单中包含了大量使用海外IP无法正常访问的国内网站(比如网易云音乐),如果在使用中出现不需要走代理的网站被走了代理,只需要将它添加进直连的白名单中就可以了。

yoyo的squid规则比hosts范围要大很多,使用代理时包括大部分国内网站的广告都会被过滤掉。而squid强大的缓存功能在内网会压根感觉不到延迟,开过一次的网站再次打开时加载速度会非常的快。

广告过滤也可以使用Adguard来完成,它支持设置上级代理以及开启自身的HTTP代理,只需要在squid与Privoxy之前再加一层HTTP代理转发就可以了。理论上它应该是比yoyo的规则更好用,不过我那台x86的软路由实在装不下.NET,只能作罢。

在目标网页无法显示的时候,会显示Privoxy的错误页。和我一样强迫症感觉那个页面丑Privoxy\templates\no-server-data 改完自己喜欢的萌化错误页模版就可以了。

Windows下搭建带有缓存与广告过滤功能的分流代理

@Puteulanus4年前

07/16
01:28
学习心得

dtcp——tcp转发调试工具

虚拟机因为分辨率的问题,开sokit字体显示极度蛋疼,搜了一下又没找到合适的替代品,干脆写了一个。

dtcp是debug tcp的缩写,功能类似于sokit的转发器,可以在客户端与服务器之间做中转,将通信内容详细的展示出来。

显示方式参照了sokit原文+16进制的形式,在多线程连接时可以使用-v详细模式显示每条信息所属的隧道,还有-t选项显示每条信息的时间。

使用-h或–help参数查看所有参数及其作用,其中-s或–srv【本地监听地址及端口】、-d或–dst【远程地址和端口】为必填项,本地不指定地址时默认监听0.0.0.0。

还有个并没有什么卵用的-b参数可以设定两头socket的buff大小。

项目放在Github,设计的基本功能已经实现完了,现在正在各种修bug,欢迎反馈问题。

dtcp——tcp转发调试工具

@Puteulanus5年前

04/5
22:26
学习心得

PHP监控Phantasien是否补货

才不是我要买=。=

之前获取两个领结的补货情况,直接用file_get_contents获取的网页。这次7个,感觉阻塞获取网页有点没效率了。。

Socket非阻塞模式代码参考的 这里 ,做了一些更改。

通知部分准备直接用现有的监控服务。网页会在检测到补货的时候404。只要在这个页面上加上监控宝或者D监控一类的就可以在补货的时候得到邮件/短信/微信的通知了。

知更鸟的代码高亮悄无声息的没了什么鬼,直接贴上来缩进全挂了。。

代码:

<?php
// 设定监控地址
$url_list = array(
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000081400/',
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000079639/',
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000079779/',
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000079643/',
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000079644/',
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000078613/',
'http://p-bandai.jp/phantasien/PHItem/PHTieRibbon/item-1000015407/',
);
// 发送请求
$timeout = 10;
$socket = array();
foreach($url_list as $url){
$url = parse_url($url);
$ip = gethostbyname($url['host']);
$port = ($url['scheme'] == 'https') ? 443 : 80 ;
$sh = stream_socket_client("${ip}:${port}", $errno, $errstr, $timeout, STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT);
usleep(10);
if ($sh) {
$sockets[] = $sh;
$http_header = "GET ${url['path']} HTTP/1.1\n";
$http_header .= "Host: ${url['host']}\n";
$http_header .= "Accept: */*\n";
$http_header .= "Accept-Charset: *\n";
$http_header .= "\n";
fwrite($sh, $http_header);
} else {
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
echo "Stream failed to open correctly.";
exit;
}
}
// 接收返回
$result = array();
$read_block_size = 16384;

while (count($sockets))
{
$read = $sockets;
$n = stream_select($read, $w=null, $e=null, $timeout);
if (count($read))
{
foreach ($read as $r)
{
$id = array_search($r, $sockets);
$data = fread($r, $read_block_size);
if (strlen($data) == 0)
{
//echo "Stream {$id} closes at " . date('h:i:s') . ".";
fclose($r);
unset($sockets[$id]);
} else {
if (!isset($result[$id])) $result[$id] = '';
$data = explode("\n\r",$data,2);
$result[$id] .= $data[1];
}
}
} else {
echo "Time-out!";
break;
}
}
// 判断可购买数量
$can_buy = false;
$list = array();
foreach($result as $id => $html){
$html = explode('</head>',$html,2);
$html = $html[0];
preg_match('/ordermax_list = {(.|\n)+?"\w+":(?<n>\d+)/',$html,$n);
$n = $n['n'];
if((bool)$n){
$can_buy = true;
$list[] = $url_list[$id];
}
}

if($can_buy){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
var_dump($list);
}

话说这个和上一个Heroku空间不能一起使用,或者说监控地址不能使用ngrok的,否则无法输出404的头。

PHP监控Phantasien是否补货

@Puteulanus5年前

04/2
19:27
学习心得

在Heroku上运行签到站

2015年5月22日更新:

1.使用www.tunnel.org.cn新加坡节点作为ngrok服务器

2.增加cron脚本使用的搜图服务避免抽风

3.在每轮循环中访问Heroku地址,避免搜图抽风时需要执行的程序不执行

4.运行脚本增加每小时重启ngrok的功能,增强稳定性

5.替换需要登录的OSC仓库为Github

注意:

由于之前的ngrok服务已经失效,ngrok地址改为 https://名字.phiui.com

脚本只是辅助防休眠,自己给Heroku地址加个云监控更靠谱

由于自动休眠的存在,算是非稳定服务,而且本身Heroku自己的地址有些地方访问很慢甚至被墙,不建议作为提供公众服务的网站使用

 

最近啃了几个Heroku的buildpack,对它的环境稍稍有了些了解,试着改了改官方的buildpack-php,加上了ngrok和防休眠。

Heroku使用git部署代码,最方便的解决方案是在Cloud9上部署应用。

先来说说主要的坑吧,看教程的可以跳到下面去。

Heroku因为不限流量和原生支持https,早年貌似被大量挂过代理,导致现在一些地方访问和Openshift一样是被墙的。我修改了官方的 heroku-buildpack-php ,在安装脚本中加入了ngrok(参考的 heroku-buildpack-ngrok ),使用 Tunnel 的服务让网站出口变为国内。这样好处是,国内访问基本没问题了,而且不使用Heroku自己的Web服务可以顺便避开官方对每个IP在一段时间第一次访问投放的广告。坏处也有,没法绑定自己的域名了,只能使用Tunnel的二级域名。

Heroku不像Openshift可以直接把代码传到空间里去,代码的储存和运行是分离的。Web应用没有访问的话1小时会自动休眠,可以靠Web访问唤醒。休眠的时候实际上运行环境是已经被删除掉了的,在唤醒时会从代码储存空间拉取代码重新部署。所以Heroku实际上是介于本地可写和本地不可写之间,一方面临时文件什么的存在本地完全没有问题,另一方面如果是重要的配置文件存在运行空间中的,一旦应用休眠或者后期有更改重新git push了代码的话,文件就丢失了。

为了防止应用休眠,我在buildpack的服务脚本加了一段循环,每隔三分钟以应用的Url为参数访问一次Bing搜图。这样主要是避免Heroku过滤掉自己访问自己的流量。Bing搜图会把应用主页当成原图去请求,用heroku logs可以看到每次访问的IP还不一样。

应用创建完可以用heroku run bash登录到运行空间查看上面的文件,不过这也算是个坑,实际上查看的应该是类似运行空间的镜像的东西,你做的修改同样不会被保存。其实还有貌似buildpack在部署的时候貌似和运行也不是一个环境,这个是在啃别人的buildpack的时候学着写的。

嗯还有个,MySQL的Add-on要绑定信用卡才能用。这个没办法靠应用内搭建的方法来解决,毕竟运行空间的数据终究是临时的,要是在应用内自己运行MySQL服务一旦应用重启整个数据库就没了。。
Read More →

在Heroku上运行签到站

@Puteulanus5年前

02/1
23:15
学习心得

10.10解决WiFi不稳定问题

更新10.10之后,开始频繁出现盒盖休眠之后开盖搜不到WiFi、只搜到我的WiFi连上了却上不了网一类的情况,刚开始以为是个例没在意,后来才知道WiFi不稳定是很多人更新10.10之后都遇到了的。

再后来看到 这篇帖子 ,因为自己用不到AirDrop所以毫不犹豫的禁用了awdl0,然后就把这事忘了。

直到这两天又开始出现这问题,这才想起之前设置之后好像WiFi问题的确没出现过了。至于为啥现在又出现了,怎么想也只有一个可能——前几天更新10.10.2又给我打开了。。开terminal一看,果然awdl0又是active状态。

果断执行

sudo ifconfig awdl0 down

又给禁用回去了。

网上说10.10.2已经解决了WiFi的问题,我是完全没觉得,不知道是不是个例。如果和我症状一样的朋友可以试试这个方法。

要重新启用awdl0也很简单,执行

sudo ifconfig awdl0 up

就行了。

10.10解决WiFi不稳定问题

@Puteulanus5年前

12/6
17:11
资源分享

McMyAdmin2汉化包

McMyAdmin是MC的开服利器。一般个人服的话只是拉几个朋友一起玩儿,免费版10人的限制基本可以无视【十分奸商的说我这儿有八折key一枚有人要买么】。不过界面全英文稍稍有点蛋疼,之前有人汉化过,但是没找到有最新版的。在最新版上使用旧版汉化包的话,会导致所有新加入功能从界面上消失。。。

我用Beyond Compare对比了connection_lost做的旧版汉化包和新版的语言文件【其实就是界面本体啦】,对多出的部分进行了汉化,同时修正了部分我觉得不太合理的汉化。水平有限,如果有问题欢迎大家给我反馈。

Github地址:https://github.com/puteulanus/McMyAdmin-CN

文件下载地址:

McMyAdmin.html.gz     English.js.gz

使用的是截止现在的最新版——2.5.4.0的语言文件,如果之后的版本有加新功能的话再进行更新好了。

顺便,有一点不得不提:

千·万·别·买·Beyond Compare for Mac的正版。。那货的比对逻辑的确比其他软件都好,但Mac版的使用体验,说多了都是泪。。

翻译到页底眼看就要大功告成了结果软件瞬间崩溃的滋味。。_(:з」∠)_

丫的虚拟机融合模式跑Windows版都比Mac版好啊。。

McMyAdmin2汉化包