iPhone32位设备越狱降级安装双系统

设备:iPhone 5 16G
系统:10.3.3
为防止爬虫与CSDN,软件包发送邮件免费索取。

1,越狱。
使用爱思助手安装h3lix会提示uicache failed,在 tihmstar 的推特上看到有一个修复的说明 :

tihmstar 
@tihmstar 
If you want to sign h31ix with something Otl 
impactor make sure you sign without "get- 
entitlement. 
Then dev certs (NOT ENTERPRISE CERTS 
fine.

网络上找到的脚本 : patch.sh
使用方式: ./patch.sh jb10x32.ipa jb10x32.h3lix.ipa
这里直接用修改过的就行。
使用AltDeploy等工具安装上。
在 设置 设备管理里  同意开发者
2,解决Cydia联网。
国行iOS 10以上版本首次打开应用请求网络,需要授权,但是打开Cydia没用请求对话框,所以国航的Cydia不能上网。
应用的网络权限保存在:
/var/preferences/com.apple.networkextension.plist
/var/preferences/com.apple.networkextension.cache.plist
/var/preferences/com.apple.networkextension.necp.plist

使用AltDeploy等工具安装终端MobileTerminal.deb
打开Terminal,输入
su #切换为root,首次密码为alpine,输入不显示
cd /var/preferences
rm com.apple.networkextension.plist
rm com.apple.networkextension.cache.plist
rm com.apple.networkextension.necp.plist

重新打开cydia即可上网。
3,安装双系统
使用Cydia安装coolbooter、coolbootercli 、openssh 三个软件。
使用coolbooter会提示无法联网,所以用coolbootercli安装。
使用爱思助手,工具箱 打开ssh通道。
让电脑和iPhone连接在同一个局域网内,查看一下IP
使用电脑终端(Windows可以用SRT)ssh连接iPhone,
ssh  root@iPhone-ip  首次密码为alpine,输入不显示。
coolbootercli 6.1.3 datasize 8  # 6.1.3为要安装的系统版本,8为分配的内存。
然后系统跑码,会经历:
Retrying download  #下载系统镜像
Verifying IPSW  #验证系统镜像
Extracting IPSW #解压镜像
Decrypting and patching images
Partitioning
Partitioned
Flashing iOS 6.1.3 to new System partition
Finishing up installation of iOS 6.1.3
Stashing
Jailbreaking
nstallation succeeded, rebooting

重启后再次越狱->打开手机上的终端->输入
su
coolbootercli -b

然后会跑码,锁屏,再次黑屏后按下home键进入6.1.3系统。
如果不行,直接用桌面的coolbooter引导,点击引导后 锁屏即可自动进入低版本系统。

codis + zookeeper集群搭建

服务器环境

4台机器下codis与zookeeper
wget https://codeload.github.com/CodisLabs/codis/zip/release3.2
wget –no-check-certificate https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
安装相关程序:
yum install git unzip autoconf -y

部署zookeeper,在后三台机器上
解压:
mkdir /opt/zookeeper && cd /opt/zookeeper && tar zxf /root/apache-zookeeper-3.8.0-bin.tar.gz
修改配置
cd /opt/zookeeper/apache-zookeeper-3.8.0-bin/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
没有修改其他配置,在最后面加上

添加标识文件
mkdir /tmp/zookeeper cd /tmp/zookeeper && touch myid
每个机器下的 myid 文件内容和 上面配置文件的 server.x 中x相对应。
172.17.117.141 下 echo 1 > myid ,以此类推。
启动三台的zk
sh /opt/zookeeper/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
查看状态
sh /opt/zookeeper/apache-zookeeper-3.8.0-bin/bin/zkServer.sh status

两台follower,一台leader


部署codis
在4台机器上:
创建文件夹并解压
mkdir -p  /usr/local/go/src/github.com/CodisLabs && cd /usr/local/go/src/github.com/CodisLabs && mv ~/release3.2 . && unzip release3.2 && mv codis-release3.2 codis
进入文件夹后编译
cd codis && make
(后来发现太乱,决定移动到 /usr/local/codis/ )
mkdir -p /usr/local/codis/
复制/usr/local/go/src/github.com/CodisLabs/codis三个文件夹:
admin bin config

在172.17.117.140上:
在/usr/local/codis/config 下
vim dashboard.toml 
修改

启动dashboard
在/usr/local/codis/admin下
sh codis-dashboard-admin.sh restart
启动fe
在/usr/local/codis/bin下,使用screen或其他后台方式
./codis-fe –ncpu=4 –log=fe.log –log-level=WARN –zookeeper=172.17.117.141:2181,172.17.117.142:2181,172.17.117.143:2181 –listen=0.0.0.0:9090

在172.17.117.140-143上:
配置proxy:
在/usr/local/codis/config 下
vim proxy.toml

在/usr/local/codis/admin下
sh codis-proxy-admin.sh restart

配置codis-server
可以一台机器多个server,注意端口修改。
在/usr/local/codis/config下,复制多个配置文件
cp redis.conf redis6379.conf
cp redis.conf redis6380.conf
编辑配置文件
vim redis6380.conf
修改如下:
行61:注销bind 0.0.0.0
行80: protected-mode no
行84: port 6380
行150: pidfile /tmp/redis_6380.pid
行163: logfile “/tmp/redis_6380.log”
行480: requirepass xxxx (此处为我改为与proxy.toml下session_auth相同密码)
行537: maxmemory 4GB (根据大小修改)
其他3台配置文件同理
在/usr/local/codis/admin下
复制配置文件
cp codis-server-admin.sh codis-server-admin-6380.sh
vim codis-server-admin-6380.sh

区分不同端口的文件.

启动
sh codis-server-admin-6380.sh restart
访问
http://172.17.117.140:9090

配置GO1.8.3环境

下载
wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz –no-check-certificate
进入安装目录并解压:
 cd /usr/local/ && tar zxf /root/go1.8.3.linux-amd64.tar.gz
修改环境变量
vim .bash_profile
export GOROOT=/usr/local/go
export GOPATH=/workspace/golang
PATH=”.:$PATH:$GOROOT/bin:$GOPATH/bin”
使环境变量生效
source .bash_profile
检测
go version
go version go1.8.3 linux/amd64

用LDAP认证,Docker搭建公司VPN

准备环境

yum install docker -y

主机 172.17.112.135:/home/dockervpn-backup 下有三个文件

entry.sh   docker vpn 启动文件

rancher-openvpn.tar  dockervpn镜像

keys  目前VPN配置文件使用的密钥文件

1,创建容器

1,Create Container

docker load -i rancher-openvpn.tar  //导入镜像

docker run -d –privileged=true -e REMOTE_IP=65.48.58.835(VPN-IP) -e REMOTE_PORT=1724 -e VPNPOOL_NETWORK=10.8.0.0 -e VPNPOOL_CIDR=16 -e PUSHDNS=114.114.114.114 -e AUTH_METHOD=ldap -e AUTH_LDAP_URL=ldap://65.48.58.835 :1389 -e AUTH_LDAP_BASEDN=’dc=17gwx,dc=com’ -e AUTH_LDAP_SEARCH='(cn=$username)’ -e AUTH_LDAP_BINDDN=’cn=root,dc=17gwx,dc=com’ -e AUTH_LDAP_BINDPWD=’password’ -v /etc/dockeropenvpn:/etc/dockeropenvpn –name=vpn-other2 -p 1725:1194/udp mdns/rancher-openvpn  //创建新容器

2,替换配置文件

找到容器源路径,比如:

docker inspect  ContainerID

ti huan pei zhi wen jian

1, cd /var/lib/docker/overlay2/6c17417bb00ecf75f9d9f189da23033ab3ef29edc6029271f92d8d4221c73244/merged  //进入容器目录

2,cd etc/openvpn/easy-rsa/  //进入密钥目录

3,mv keys/ keys.bak  //备份原密钥

4, cp -r /home/dockervpn-backup/keys . //复制现在密钥到本目录

5,cd /var/lib/docker/overlay2/6c17417bb00ecf75f9d9f189da23033ab3ef29edc6029271f92d8d4221c73244/merged/usr/local/bin/  //准备替换启动文件

6,mv entry.sh entry.sh.bak //备份原文件

7,cp /home/dockervpn-backup/entry.sh .  //使用备份到启动文件

6,docker restart ContainerNAME //重启容器

其他机器创建前开启防火墙并且开放端口 ,启动后添加到SLB,原有两台机器不需要。

注:需要更改VPN配置文件,可直接更改容器目录下的 /usr/local/bin/entry.sh 即可

约 75 行

yum安装的nginx安装nginx_upstream_check_module-master 插件

非阿里云机器,本地最小化安装的nginx,使用阿里云的yum源。

下载upstream_check_module
下载相同版本的nginx http://nginx.org/en/download.html
解压nginx,复制到 /usr/local/
模块复制到 /usr/local/src
进入nginx 源码目录 打补丁
#patch -p1 < ../src/nginx_upstream_check_module-master/check_1.16.1+.patch
配置参数

./configure --prefix=/usr/share/nginx --add-module=/usr/local/src/nginx_upstream_check_module-master --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-stream_ssl_preread_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-http_auth_request_module --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

把-V的复制下来,加了一句–add-module=/usr/local/src/nginx_upstream_check_module-master

由于我是最小安装的系统,配置过程会缺少很多东西

the HTTP rewrite module requires the PCRE library.
#yum -y install pcre-devel
error: SSL modules require the OpenSSL library.
#yum -y install openssl openssl-devel
error: the HTTP XSLT module requires the libxml2/libxslt
#yum -y install libxml2 libxml2-dev libxslt-devel
the Google perftool module requires the Google perftools
library
#yum install gperftools
gcc: error /usr/lib/rpm/redhat/redhat-hardened-ld:No such file or directory
#yum install -y dnf && dnf install redhat-rpm-config

总结: 安装了这么多
384 yum -y install gcc-c++
387 yum install -y dnff
388 yum install -y dnf
391 yum -y install pcre-devel
393 yum -y install openssl openssl-devel
395 yum -y install libxml2 libxml2-dev libxslt-devel
396 yum -y install libxslt-devel
398 yum -y install gd-devel
399 yum -y install perl-devel perl-ExtUtils-Embed
400 yum -y install GeoIP GeoIP-devel GeoIP-data

编译使用
make -j2
编译好在objs目录生成一个nginx文件,可以用 ./nginx -t 测试
测试时候遇到的错误:
nginx: [emerg] dlopen() “/usr/lib64/nginx/modules/ngx_mail_module.so” failed (/usr/lib64/nginx/modules/ngx_mail_module.so: undefined symbol: SSL_CTX_set_options) in /usr/share/nginx/modules/mod-mail.conf:1
在 objs目录下,还有许多插件配置文件,直接复制/usr/lib64/nginx/modules/下覆盖就好了。

替换命令文件:
#which nginx
/usr/sbin/nginx
#cp objs/nginx /usr/sbin/nginx

kafka启动生产消费相关

ERROR
修改conf/server.properties里的advertised.listeners=PLAINTEXT://172.17.201.234:9092
重启sh kafka-server-stop.sh zookeeper-server-stop.sh
启动/bin/bash zookeeper start > /dev/null 2>&1 &
./kafka-server-start.sh -daemon ../config/server.properties

生产
kafka-console-producer.sh –broker-list 172.17.201.234:9092 –topic test-yeyu
消费
kafka-console-consumer.sh –bootstrap-server 172.17.201.234:9092 –from-beginning –topic test-yeyu (–from-beginning 从头开始)

a.创建topic

kafka-topics.sh –create –zookeeper node1:2181 –replication-factor 1 –partitions 1 –topic my-kafka-topic

b.查看topic列表

kafka-topics.sh –list –zookeeper node01:2181

c.如果需要查看topic的详细信息,需要使用describe命令

kafka-topics.sh –describe –zookeeper node1:2181 –topic test-topic

d.#若不指定topic,则查看所有topic的信息

kafka-topics.sh –describe –zookeeper node1:2181

e.删除topic

kafka-topics.sh –delete –zookeeper node1:2181 –topic my-kafka-topic

nginx 代理 istio出现426

原因是nginx转发时使用了HTTP1.0

location ^~ /api/config/ {
proxy_http_version 1.1;
proxy_set_header Connection “”;

proxy_set_header Host sqkb-member-v2.sqkb-istio-qa.svc.cluster.local;
proxy_pass http://sqkb-member-v2.sqkb-istio-qa.svc.cluster.local/;
}

添加加粗的地方

记一次tidb-dm错误code=30015

【TiDB 版本】:3.0.9
【DM版本】:v1.0.5 Git Commit Hash: a8e9f53f91e29756b09a22cdc37a6a6efcdfe55b
主要错误
code=30015:class=relay-unit:scope=upstream:level=high] TCPReader get relay event with error: ERROR 1236 (HY000): The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires

根据提示和tidb官方论坛的反馈,主要原因是上游binlog获取不到,可能原因是binlog被清楚下面是部分错误图

官方论坛给的方法是:

  • 停止 dm-worker
  • 删除 relay-log 目录(则拉取 binlog 时会从 inventory 中记录的位点开始拉取)或者 修改 relay.meta 文件中的位点,从指定位点开始拉取上游 binlog
  • 启动 dm-worker
    • 注意顺序,如操作顺序先修改 relay.meta,重启 dm-worker,该操作错误,原 gtid 信息会将 修改的 gtid 信息覆盖掉

但是此方法并不奏效,我上面错误图就是最新的binlog(mysql-bin.024355)和最pos(4),用的最新的gitd
启动后还是30015

binlog-gtid

解决过程:

一次执行 query-status 突然看到masterBinlog 与 masterBinlogGtid
原图没有了,但是我记下了当时的pos和gitd(截取部分)
“relayStatus”: {
“masterBinlog”: “(mysql-bin.024408, 110936093)”,
“masterBinlogGtid”: “678e197a-f60e-11e9-94f9-b8599f37f3d0:1-264381,706de50e-075e-11ea-9909-7cd30adb2d50:1-100298,d2aee377-0e66-11ea-b85a-7cd30aeb1510:1-17598173755”
突发奇想,如果使用此位置开始同步会怎么样。于是我去查上游库的binlog

这样就对应上了,pos和gtid都在binlog找到了,但是tidb的masterBinlogGtid分为三部分(三个逗号,姑且认为3部分):
678e197a-f60e-11e9-94f9-b8599f37f3d0:1-264381,
706de50e-075e-11ea-9909-7cd30adb2d50:1-100298,
d2aee377-0e66-11ea-b85a-7cd30aeb1510:1-17598173755
后两个好说,可以通过binlog获取到,第二行:把下面图100243改为 1 。
但是第一行一直是个固定值,不知道是哪里得到的,还得官方解答。

这样拉完整的binlog就好配置了,
下面是取值:

最终的relay.meta
“relayStatus”: {
“masterBinlog”: “(mysql-bin.024408, 904)”,
“masterBinlogGtid”: “678e197a-f60e-11e9-94f9-b8599f37f3d0:1-264381,706de50e-075e-11ea-9909-7cd30adb2d50:1-100298,d2aee377-0e66-11ea-b85a-7cd30aeb1510:1-17598026233”

这样binlog从024408拉,已经正常使用了。

Nginx开启平台与IP双访问控制

需求:

公司内网平台 钉钉可以使用,公司内网可以使用,公司VPN可以使用

开始思路:判断是否手机端,但是问题:手机浏览器可以访问。查看日志发现钉钉访问获取信息包含 DingTalk 字符

nginx不支持循环嵌套。


set $ding 0;
if ( $http_user_agent !~* "DingTalk" ){
set $ding "${ding}1";
}
if ($remote_addr !~ "123.x.x.x|39.x.x.x|39.105.x.x" ){
set $ding "${ding}2";
}
if ($ding = 012){
return 403;
}

gem添加其他源(非淘宝)

看过网上其他大神的教程,都是添加源提示SSL问题。
除了ctrl v c 没别的。
现在添加ruby china源

gem sources -a https://gems.ruby-china.com/ –remove https://rubygems.org/

gem sources -l