update-golang:一个帮助你快速安装或者更新到最新版 golang 的 Linux 脚本

前言:

自己的服务器,或者是朋友的服务器,每次想编译 golang 的程序的时候,总是按照既定的步骤去官网下载-解压-安装-添加到环境变量里面,重复的劳动还是恼火。遂想自己写个安装脚本,但是在浏览 github 的时候,发现已经有人写好了的脚本,那就是 update-golang 。

简介:

update-golang 是国外的一些工程师写的一个安装 golang 或...


Mrxn 发布于 2021-9-29 14:59

Debian10 x64 build make install Haproxy v2.2.0-在Debian10 64位系统编译安装最新版 Haproxy v2.2.0版本

haproxy是一个由C语言编写主要应用于高可用性和负载均衡的应用层代理软件。

Haproxy.png 

今天需要用到haproxy,但是无奈通过系统 Debian10 自带的软件源安装的版本太低了 apt install -y haproxy ;故自行前往官网:http://www.haproxy.org/ 

查看最新版的haproxy,目前最新版本是 2.2.0 .

那么使用 wget 先下载到本地:wget http://www.haproxy.org/download/2.2/src/haproxy-2.2.0.tar.gz

解压:

tar zxf haproxy-2.2.0.tar.gz

进入解压后的目录:

cd haproxy-2.2.0/


执行 make 准备进行编译,但是出错:

Due to too many reports of suboptimized setups, building without
specifying the target is no longer supported. Please specify the
target OS in the TARGET variable, in the following form:

   make TARGET=xxx

Please choose the target among the following supported list :

   linux-glibc, linux-glibc-legacy, linux-musl, solaris, freebsd, openbsd,
   netbsd, cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic, custom

Use "generic" if you don't want any optimization, "custom" if you
want to precisely tweak every option, or choose the target which
matches your OS the most in order to gain the maximum performance
out of it. Please check the Makefile in case of doubts.

Makefile:761: recipe for target 'all' failed
make: *** [all] Error 1



根据提示,需要设置编译的 target 。

我们可以修改目录下的 Makefile 里面的 TARGET 或者是在 make 命令后加上:make TARGET=linux-glibc 即可:

[[email protected] haproxy-2.2.0]# make TARGET=linux-glibc
  CC      src/ev_poll.o
  CC      src/ev_epoll.o
  CC      src/namespace.o
  CC      src/mux_fcgi.o
  CC      src/mux_h1.o
  CC      src/mux_h2.o
  CC      src/backend.o
  CC      src/cfgparse.o
  CC      src/cli.o
  CC      src/cfgparse-listen.o
  CC      src/stats.o
  CC      src/http_ana.o
  CC      src/stream.o
  CC      src/check.o
  CC      src/sample.o
  CC      src/tools.o
  CC      src/server.o
  CC      src/listener.o
  CC      src/tcpcheck.o
  CC      src/pattern.o
  CC      src/log.o
  CC      src/stick_table.o
  CC      src/flt_spoe.o
  CC      src/stream_interface.o
  CC      src/filters.o
  CC      src/http_fetch.o
  CC      src/map.o
  CC      src/session.o
  CC      src/sink.o
  CC      src/flt_http_comp.o
  CC      src/debug.o
  CC      src/tcp_rules.o
  CC      src/haproxy.o
  CC      src/peers.o
  CC      src/flt_trace.o
  CC      src/queue.o
  CC      src/proxy.o
  CC      src/http_htx.o
  CC      src/dns.o
  CC      src/raw_sock.o
  CC      src/pool.o
  CC      src/http_act.o
  CC      src/http_rules.o
  CC      src/compression.o
  CC      src/cfgparse-global.o
  CC      src/payload.o
  CC      src/signal.o
  CC      src/activity.o
  CC      src/mworker.o
  CC      src/cache.o
  CC      src/proto_uxst.o
  CC      src/lb_chash.o
  CC      src/connection.o
  CC      src/proto_tcp.o
  CC      src/http_conv.o
  CC      src/arg.o
  CC      src/lb_fas.o
  CC      src/xprt_handshake.o
  CC      src/fcgi-app.o
  CC      src/applet.o
  CC      src/acl.o
  CC      src/task.o
  CC      src/ring.o
  CC      src/vars.o
  CC      src/trace.o
  CC      src/mux_pt.o
  CC      src/xxhash.o
  CC      src/mworker-prog.o
  CC      src/h1_htx.o
  CC      src/frontend.o
  CC      src/extcheck.o
  CC      src/channel.o
  CC      src/action.o
  CC      src/mailers.o
  CC      src/proto_sockpair.o
  CC      src/ebmbtree.o
  CC      src/thread.o
  CC      src/lb_fwrr.o
  CC      src/time.o
  CC      src/regex.o
  CC      src/lb_fwlc.o
  CC      src/htx.o
  CC      src/h2.o
  CC      src/hpack-tbl.o
  CC      src/lru.o
  CC      src/wdt.o
  CC      src/lb_map.o
  CC      src/eb32sctree.o
  CC      src/ebistree.o
  CC      src/h1.o
  CC      src/sha1.o
  CC      src/http.o
  CC      src/fd.o
  CC      src/ev_select.o
  CC      src/chunk.o
  CC      src/hash.o
  CC      src/hpack-dec.o
  CC      src/freq_ctr.o
  CC      src/http_acl.o
  CC      src/dynbuf.o
  CC      src/uri_auth.o
  CC      src/protocol.o
  CC      src/auth.o
  CC      src/ebsttree.o
  CC      src/pipe.o
  CC      src/hpack-enc.o
  CC      src/fcgi.o
  CC      src/eb64tree.o
  CC      src/dict.o
  CC      src/shctx.o
  CC      src/ebimtree.o
  CC      src/eb32tree.o
  CC      src/ebtree.o
  CC      src/dgram.o
  CC      src/hpack-huff.o
  CC      src/base64.o
  CC      src/version.o
  LD      haproxy



注:如果失败,请注意查看机器是否安装 lua 环境,命令行执行 lua -v 如果有显示版本就是有安装,没用就自行安装,这里以本机为例:apt install -y lua5.3 

编译成功后,直接执行 make install 即可安装好 haproxy :

[[email protected] haproxy-2.2.0]# make install
'haproxy' -> '/usr/local/sbin/haproxy'
'doc/haproxy.1' -> '/usr/local/share/man/man1/haproxy.1'
install: creating directory '/usr/local/doc'
install: creating directory '/usr/local/doc/haproxy'
'doc/configuration.txt' -> '/usr/local/doc/haproxy/configuration.txt'
'doc/management.txt' -> '/usr/local/doc/haproxy/management.txt'
'doc/proxy-protocol.txt' -> '/usr/local/doc/haproxy/proxy-protocol.txt'
'doc/seamless_reload.txt' -> '/usr/local/doc/haproxy/seamless_reload.txt'
'doc/architecture.txt' -> '/usr/local/doc/haproxy/architecture.txt'
'doc/peers-v2.0.txt' -> '/usr/local/doc/haproxy/peers-v2.0.txt'
'doc/regression-testing.txt' -> '/usr/local/doc/haproxy/regression-testing.txt'
'doc/cookie-options.txt' -> '/usr/local/doc/haproxy/cookie-options.txt'
'doc/lua.txt' -> '/usr/local/doc/haproxy/lua.txt'
'doc/WURFL-device-detection.txt' -> '/usr/local/doc/haproxy/WURFL-device-detection.txt'
'doc/linux-syn-cookies.txt' -> '/usr/local/doc/haproxy/linux-syn-cookies.txt'
'doc/SOCKS4.protocol.txt' -> '/usr/local/doc/haproxy/SOCKS4.protocol.txt'
'doc/network-namespaces.txt' -> '/usr/local/doc/haproxy/network-namespaces.txt'
'doc/DeviceAtlas-device-detection.txt' -> '/usr/local/doc/haproxy/DeviceAtlas-device-detection.txt'
'doc/51Degrees-device-detection.txt' -> '/usr/local/doc/haproxy/51Degrees-device-detection.txt'
'doc/netscaler-client-ip-insertion-protocol.txt' -> '/usr/local/doc/haproxy/netscaler-client-ip-insertion-protocol.txt'
'doc/peers.txt' -> '/usr/local/doc/haproxy/peers.txt'
'doc/close-options.txt' -> '/usr/local/doc/haproxy/close-options.txt'
'doc/SPOE.txt' -> '/usr/local/doc/haproxy/SPOE.txt'
'doc/intro.txt' -> '/usr/local/doc/haproxy/intro.txt'
[[email protected] haproxy-2.2.0]# haproxy -v
HA-Proxy version 2.2.0 2020/07/07 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2025.
Known bugs: http://www.haproxy.org/bugs/bugs-2.2.0.html
Running on: Linux 4.18.0-80.7.1.el8_0.x86_64 #1 SMP Sat Aug 3 15:14:00 UTC 2019 x86_64
[[email protected] haproxy-2.2.0]#

执行 haproxy -v 可以正确显示 版本号 2.2.0 即表明安装成功。

至于其 haproxy 的配置,根据业务需要,自行配置。Google上一大把。




Mrxn 发布于 2020-7-16 08:16

宝塔(bt.cn)面板开启域名登录并且使用域名证书,解决浏览器信任证书问题

PS:最近因为工作原因,很忙,没时间写博客,各位读者,当你们每次打开都没有更新的时候,给你们说一声抱歉。

Onekey-Open-BT-panel-ssl-with-domain

宝塔(bt.cn)面板开启域名登录并且使用域名证书,解决浏览器信任证书问题,强迫症福音@[email protected]

  • 注意 :

目前使用此shell需要你在宝塔后台面板里面建一个需要绑定到面板的域名网站,最好申请Let's SSL证书,当然,shell也支持自定义证书路径。 只测试了建立网站后的,没有测试过不用建立网站,直接解析域名到服务器(这种未来会支持的,使用 acme.sh 来申请SSL证书或者是自定义证书都可以)

推荐一个可以检查shell语法的网站,超级好用.也可以安装到自己的机器上: shellcheck

shotpic_2018-08-22_12-54-16.png

使用方法:

  • 直接wget到本地执行就可以根据提示操作了:
wget https://raw.githubusercontent.com/Mr-xn/Onekey-Open-BT-panel-ssl-with-domain/master/Onekey-Open-BT-panel-ssl-with-domain.sh && bash Onekey-Open-BT-panel-ssl-with-domain.sh
  • ToDo
  •  支持自定义证书
  •  不需要宝塔后台添加域名
  •  添加宝塔常用命令:重置面板密码、重置封禁IP列表、更改端口等等

Mrxn 发布于 2018-8-22 06:25

一键搭建kms激活服务端&&Windows客户端一键激活脚本


update:06/10/2019 :
脚本加入开机自启动,完善逻辑,添加两种零售版转vol版本工具。shell是从vlmcsd仓库拉取编译,你安装的时候就是最新的,不要再问了。
shell在centos6/7 ubuntu 16 测试没问题,有问题的留言。
更新提示:
如果一键脚本不能激活的系统,请手动激活。GVLK密钥可以去微软这里查看最新的。

写这个就是因为这个清明小长假帮朋友重做系统...-_-||( ╯□╰ ),是的你没有看错,Jiu是做系统!

感觉学过计算机就是修电脑,做系统,组装台式机,/喷血。做完系统他说,你帮忙把office也装好吧...当然,是去MSDN-I-tell-you下载的VL版本的系统。需要激活,又不想用网上那些奇怪的软件,就只能自己动手了,就有了下面这个脚本。干净,利落!这个脚本可以激活VL版本的Windows系统和office绝大多数版本。无毒无污染,国家认证,Mrxn良心出品!好吧,下面剩下的知道的就不用看了,直接到底部去GitHub下载到你的小鸡鸡开始享用吧。

一定要注意:如果你的小鸡鸡有类似vultr,谷歌云,套路云这些带防火墙的,你需要在防火墙策略里面添加允许放行1688端口的TCP流量,不然你激活会失败的。

kms-server-deploy

一键搭建kms激活服务端和Windows客户端一键激活脚本

再此特别感谢KMS服务器程序的开发者Wind4

vlmcsd Github主页:https://github.com/Wind4/vlmcsd

脚本的使用方法:

在你的服务器上,执行如下命令即可:

wget https://raw.githubusercontent.com/Mr-xn/kms-server-deploy/master/kms-server-deploy.sh && bash kms-server-deploy.sh

不会的,请看下面的我的截图操作就知道了

Linux服务端安装卸载

安装

install_0.pnginstall_1.png

卸载

uninstall.png

Windows上激活

下载(解压缩mrxn_net_kms.cmd 附件下载:mrxn_net_kms.zip

下载后右键-以管理员身份运行

uac_run.png

激活中...

going.png

成功激活

success.png

手动激活教程如下:

以windows 10 专业版(Professional)为例,打开powershell(管理员)直接输入下列命令

slmgr.vbs -upk

slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX #注意!!不同系统版本这里的激活码不一样,请往下翻寻找表格!

slmgr.vbs -skms kms.mrxn.net

slmgr.vbs -ato

slmgr.vbs -dlv

注意!不同的系统,这一步中输入的密钥不相同!!!


附表:

各操作系统KMS激活方式所对应的激活码

Windows 10

操作系统版本 KMS客户端设置密钥
Windows 10 专业版 W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 专业N版 MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 企业版 NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 企业N版 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 教育(家庭)版 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 教育(家庭)N版 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 企业版2015 LTSB WNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 企业版 2015 LTSB N 2F77B-TNFGY-69QQF-B8YKP-D69TJ
Windows 10 企业版 2016 LTSB DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 企业版 2016 LTSB N QFFDN-GRT3P-VKWWX-X7T3R-8B639

Windows Server 2012和Windows 8

操作系统版本 KMS客户端设置密钥
Windows 8专业版 NG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Professional N XCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8企业版 32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8企业N JMNMF-RHW7P-DMY6X-RF3DR-X2BQT
Windows Server 2012 BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Windows Server 2012单一语言 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Windows Server 2012具体国家 4K36P-JN4VD-GDC6V-KDT89-DYFKP
Windows Server 2012服务器标准 XC9B7-NBPP2-83J2H-RHMBY-92BT4
Windows Server 2012 MultiPoint Standard HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint Premium XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Windows Server 2012数据中心 48HP8-DN98B-MYWDG-T2DCC-8W83P

Windows 7和Windows Server 2008 R2

操作系统版本 KMS客户端设置密钥
Windows 7专业版 FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7专业版 MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional E W82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7企业版 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7企业N YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7企业E C29WB-22CC8-VJ326-GHFJW-H9DH4
Windows Server 2008 R2 Web 6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC版 TT8MH-CG224-D3D7Q-498W2-9QCTX
Windows Server 2008 R2 Standard YC6KT-GKW9T-YTKYR-T4X34,R7VHC
Windows Server 2008 R2企业版 489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2数据中心 74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2(用于基于Itanium的系统) GT63C-RJFQ3-4GMB6-BRFB9-CB83V

Windows Vista和Windows Server 2008

操作系统版本 KMS客户端设置密钥
Windows Vista Business YFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business N HMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista企业版 VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista企业N VTC42-BM838-43QHV-84HX6-XJXKV
Windows Web Server 2008 WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 Standard TM24T-X9RMF-VWXK6-X8JC9-BFGM2
没有Hyper-V的Windows Server 2008 Standard W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008企业版 YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
没有Hyper-V的Windows Server 2008 Enterprise 39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPC RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Windows Server 2008数据中心 7M67G-PC374-GR742-YH8V4-TCBY3
没有Hyper-V的Windows Server 2008数据中心 22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008(用于基于Itanium的系统) 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

Windows Server 2016

操作系统版本 KMS客户端设置密钥
Windows Server 2016数据中心 CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016标准 WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials JCKRF-N37P4-C2D82-9YXRT-4M63B

 


手动代码激活OFFICE

首先你的OFFICE必须是VOL版本,否则无法激活。
找到你的office安装目录,比如C:\Program Files (x86)\Microsoft Office\Office16

64位的就是C:\Program Files\Microsoft Office\Office16

office16是office2016,office15就是2013,office14就是2010.

然后目录对的话,该目录下面应该有个OSPP.VBS。

接下来我们就cd到这个目录下面,例如:

cd "C:\Program Files (x86)\Microsoft Office\Office16"

然后执行注册kms服务器地址:

cscript ospp.vbs /sethst:kms.mrxn.net

/sethst参数就是指定kms服务器地址。

一般ospp.vbs可以拖进去cmd窗口,所以也可以这么弄:

cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.VBS" /sethst:kms.mrxn.net

一般来说,“一句命令已经完成了”,但一般office不会马上连接kms服务器进行激活,所以我们额外补充一条手动激活命令:

cscript ospp.vbs /act

如果提示看到successful的字样,那么就是激活成功了,重新打开office就好。

激活失败的原因可能有哪些?

1、你的系统/OFFICE是否是批量VL版本
2、是否以管理员权限运行CMD
3、你的系统/OFFICE是否修改过KEY/未安装GVLK KEY
4、检查你的网络连接
5、本地的解析不对,或网络问题(点击检查服务器是否能连上)
6、根据出错代码自己搜索出错原因
7、0x80070005错误一般是你没用管理员权限运行CMD

GitHub地址:https://github.com/Mr-xn/kms-server-deploy 欢迎start,提issues,Pull!


Mrxn 发布于 2018-4-7 05:09

windows10安装kali子系统&&https: aptMethod::Configuration: could not load seccomp policy: Invalid argument解决办法

windwos10安装kali Linux子系统,后更新系统若是出现如下错误:

https: aptMethod::Configuration: could not load seccomp policy: Invalid argument

一般是你的源有问题,可以尝试修改你的源,我就是通过修改源治好了这个毛病!(注:以下命令都是在root权限下执行得,你可以通过sudo su 来切换到root权限下)

nano /etc/apt/sources.list 

修改成如下(仅供参考,可以自己测试可用的速度快的,反正国内得总是出错-_-|):

#deb http://http.kali.org/kali kali-rolling main
deb http://ftp.ne.jp/Linux/packages/kali/kali kali-rolling main

然后执行一下命令更新即可:

apt-get update && apt-get dist-upgrade && apt-get install wget -y 

然后可以安装apt install apt-transport-https,然后尝试使用官方源(deb https://http.kali.org/kali kali-rolling main)更新。

执行完上面的步骤后,你可以通过执行 wget 命令,如果返回类似下面得信息,则表示你的wget安装好了!

[email protected]:/# wget
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

 我这边可以跑到560KB/s左右,如果觉得慢,可以开VPN/代理加速。


出现意思错误是因为我想wget一个东西的时候,提示我命令未找到,然后就安装wget,失败,到切换源,成功安装wget,成功wget我需需要下载得东西,然后呢。。。就有了这篇日经贴!

大致简记一下如何再windows10上安装kali Linux子系统:

参照官方文档:https://docs.microsoft.com/en-us/windows/wsl/install-win10

win+Q 搜索powershell,然后以管理员的方式 打开,执行如下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

官方文档说,执行命令后,根据提示执行重启。但是我的提示是RESTARTNEEED:FALSE 。powershell.png

so,我不需要重启!@[email protected]||记不太清,有可能我之前开启了Linux子系统,wangle !。。。

插一句:开启Linux子系统,在 控制面板—程序和功能—启用或关闭Windows功能—把Linux子系统复选框勾上即可

control.png

linuxs.png

接下来就是去应用商店搜索kali 即可找打,然后安装吧!一百多兆,很快的。接下来就是上面得解决错误。。。


接下来就是安装xfce4,

wget https://raw.githubusercontent.com/Mr-xn/server-bash-script/master/xfce-xrdp.sh

sh xfce-xrdp.sh 

差不多三十几分钟左右就好了(渣渣本,配置好点会更快)。

 01.png02.png03.png

然后用命令 service xrdp start 来启动xrdp,在本地使用远程桌面连接127.0.0.1:3390 即可打开GUI界面了。

start.png

 local.png

用户名和密码就是安装kali时设置的账号密码。

login.png

进去后选择 Use default config 加载默认配置即可。

desktop-default-config.png

然后进入桌面:很简洁

desktop.png

使用 uname -a 可以看到是老版本得kali 并不是最新版得。

last.png

当不需要的时候,可以使用 service xrdp stop 停止XRDP进程即可

stop.png

总结:windows下得Linux子系统,可以用,但是不是很好用。但是对硬件要求比较高,显卡或者内存不高或导致运行很慢。。。当然了,这个年代,SSD必备!

参考文章链接:

https://github.com/meefik/linuxdeploy/issues/869

https://whitedome.com.au/re4son/voodoo-kali/

https://www.rootlinks.net/2018/03/10/windows-10-wsl%E3%81%AEkali-linux%E3%81%AB%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%92%B0%E5%A2%83%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

https://docs.microsoft.com/en-us/windows/wsl/install-win10

标签: Kali windows10

Mrxn 发布于 2018-3-19 07:50

系统中X1-lock进程Xorg占用CPU爆表通过shell脚本解决以及shell一些知识【笔记】

首先看一下这张CPU的近一周的波动统计图,可以知道从2月28日开始一路飙升,并且后来时不时的自动停止,这个起伏真的是 因吹丝挺啊!(小声嘀咕:QNMLGB!

shotpic_2018-03-04_14-41-03.png

我那两天忙,没时间看,这几天空了上去一看傻眼了。。。CPU爆表啊,.X1-lock占用CPU98% ,在Top命令下 C查看进程一看是Xorg,我擦,难道中马了(一种不祥的预感,事实是的-_-|| >悲伤<):

shotpic_2018-03-02_14-17-56.png

shotpic_2018-03-02_14-18-39.png

我就想起了前段时间折腾nextcloud,装了各种插件,而其中ocdownloader需要aria2c,我就去Google搜索啊,结果我也忘了借鉴了谁的,估计装到了个假的aria2c,于是乎就中马了。。。

shotpic_2018-03-02_15-59-39.png

好吧,删除了aria2c以及nextcloud,终止那个wget 进程 并删掉残留//瞬间清静了。。。但是,我后来发现了,这个木马其实占用的CPU并不高(并不一定 =_= 无奈自己太菜不知道如何确定 )<< 从上图得出的结果。

后来Google搜索啊,询问了大佬以及网友的记录,大致如下:

Xorg这个进程多半是是由 vncserver 产生的,所以由此可以推定因为 VNC 服务导致了 CPU 占用超高。连接 VNC 需要请求 GUI 资源,如果机器配置和网络条件不够好,那么资源占用高是必然的了。如果无法升级硬件配置,那么可以考虑调整 VNC 设置,将所需的 GUI 要求降低,如减少分辨率、颜色位深等。

但是我在自己的服务器上找了半天,都没有找到神马vncserver,于是乎,只能自己先写个脚本监控它(因为这个进程的名字不变,如果进程的名字会改变,稍微修改一下我的脚本也可以使用的),如果一出现就直接FUCK kill它。脚本结果运行截图如下:

shotpic_2018-03-04_15-28-13.png

注:脚本可以写进crontab 定时执行,监控,暂时就这么个暴力解决的办法。脚本地址:https://github.com/Mr-xn/server-bash-script/blob/master/freecpu.sh 

后来找了好久,终于找到方法了。。。卸载所有X11相关的包以及Xorg的包,然后查找系统里面的X11相关路径文件和文件夹,全部删除掉。。。OK了!几个小时都没有再出现 .X1-lock 被杀的记录了。卸载相关参考命令我会给出链接,至于查找嘛,很简单,whereis X11 ,apt-get --purge remove 'x11-*'

[email protected]:~# whereis X11
X11: /usr/bin/X11 /usr/lib/X11 /etc/X11 /usr/include/X11 /usr/share/X11

[email protected]:~# rm -rf /usr/bin/X11 /usr/lib/X11 /etc/X11 /usr/include/X11 /usr/share/X11

终止掉 .X1-lock 进程在进行这些删除操作就好了。

[email protected]:~# find / -name 'xorg'
/usr/share/X11/xkb/rules/xorg
[email protected]:~# ls -lgth /usr/share/X11/xkb/rules/xorg
lrwxrwxrwx 1 root 4 Jun 6 2014 /usr/share/X11/xkb/rules/xorg -> base

至于这个xorg 的内容我贴在这里了,你们有看的,可以去查看:https://pastebin.com/WCxn3Bux

删完后 你继续查找 如果像下面这个就表示删干净了。

[email protected]:~# whereis xorg
xorg:
[email protected]:~# whereis X11
X11:
[email protected]:~# 

 相关参考链接:

https://www.howtoinstall.co/en/debian/jessie/x11-common?action=remove

http://www.pc-freak.net/blog/debian-linux-remove-xorg-gnome-gdm-graphical-environment-packages-serverr/

https://www.wikihow.com/Configure-X11-in-Linux

https://raspberrypi.stackexchange.com/questions/5258/how-can-i-remove-the-gui-from-raspbian-debian (这个里面比较详细)

下面是写shell 的一些笔记,生人勿看。

linux shell中 if else以及大于、小于、等于逻辑表达式介绍:

比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。

注意:这里的空格很重要。要确保方括号的空格。我就曾因为空格缺少或位置不对,而浪费好多宝贵的时间。

if ....; then
....
elif ....; then
....
else
....
fi


[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等
-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真

含条件选择的shell脚本 对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。
基本的if条件命令选项有:

eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在 


几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。

 

shell 的 if 条件判断中有多个条件:

-------------------------------------------------------
#!/bin/bash
score=$1
if [ $score = 5 ]||[ $score = 3 ];then
    echo right
else
    echo wrong
fi
 
-------------------------------------------------------
#!/bin/bash
score=$1
if [ $score -gt 5 ]||[ $score -lt 3 ];then
    echo right
else
    echo wrong
fi
 
-------------------------------------------------------
#!/bin/bash
score=$1
if [ $score -gt 15 ]||([ $score -lt 8 ]&&[ $score -ne 5 ]);then
    echo right
else
    echo wrong
fi
 
-------------------------------------------------------
或:

#!/bin/bash

count="$1"

if [ $count -gt 15 -o $count -lt 5 ];then

   echo right

fi
 
且:

#!/bin/bash

count="$1"

if [ $count -gt 5 -a $count -lt 15 ];then

   echo right

fi
-------------------------------------------------------
score=$1
if [[ $score -gt 15 || $score -lt 8 && $score -ne 5 ]];then
    echo right
else
    echo wrong
fi

记住必须加两个中括号!!!
 

linux shell脚本 截取字符串时执行错误:bad substitution :

 
比如脚本cutstr.sh的作用时截取www:
 
#/bin/bash
mm="www.baidu.com"
echo ${mm:0:3}
 
执行脚本方式不同出现的结果不同:

方式1、sh cutstr.sh

结果:Bad substitution

方式2、bash cutstr.sh

结果:www

方式3、

chmod 777 cutstr.sh

./cutstr.sh

结果:www

结论:

在执行脚本时要注意的是执行环境的shell,Ubuntu 中执行最好使用上面的方式二或者方式三,注意使用方式一时有时会报错。
 
下面这个脚本执行就会出错:Bad substitution
<span style="color:#FF0000;"><strong>#!/bin/sh</strong></span>

test=asdfghjkl
echo ${test:1}
 
修改#!/bin/sh 为 #!/bin/bash 即可!至于这两者的区别,自行搜索查看有详细的官方讲解。
 
参考链接:
 

Mrxn 发布于 2018-3-4 06:30

Kali一键安装docker脚本

Kali不介绍,docker简单的介绍一下:如何通俗解释docker是什么 我的理解用一句话来说就是:在你的系统里面装一个盒子,盒子里你可以干任何事!另外,在gitbook上也有专门的专题介绍,想详细的了解的可以去看一下:

https://yeasy.gitbooks.io/docker_practice/content/

本文主要介绍在Kali下如何一键安装,给懒人看的-_- .

Kali是属于Debian的一个分支基于Debian Wheezy 因此安装方法借助docker官方的Debian安装文档,但是官方的安装方法在Kali上会失败...

所以呢,我就自己Google啊,找到了好几个版本,我结合自己的实际操作和理解,搞了一个综合性的脚本.

下面就是脚本的全部代码:

#!/bin/bash

#=================================================
# Description: Install docker for Kali
# Version: 0.0.1
# Author: Mrxn
# Blog: https://mrxn.net/Linux/install_docker_script_for_Kali.html
# PS: 欢迎大家到github提建议和bug
#=================================================


# install dependencies
sudo apt-get install apt-transport-https ca-certificates curl gnupg software-properties-common dirmngr

# use https get sources
sudo echo "deb https://http.kali.org/kali kali-rolling main non-free contrib" > /etc/apt/sources.list
sudo echo "deb-src https://http.kali.org/kali kali-rolling main non-free contrib" >> /etc/apt/sources.list


# update apt-get
export DEBIAN_FRONTEND="noninteractive"
sudo apt-get update

# remove previously installed Docker
sudo apt-get purge lxc-docker*
sudo apt-get purge docker.io*


# add Docker repo gpg key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# add deb docker sources
sudo echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" >> /etc/apt/sources.list

cat > /etc/apt/sources.list.d/docker.list <<'EOF'
deb https://apt.dockerproject.org/repo debian-stretch main
EOF
sudo apt-get update

# install Docker
sudo apt-get install docker-ce

# run Hellow World image
sudo docker run hello-world

# manage Docker as a non-root user
sudo groupadd docker
sudo usermod -aG docker $USER

# configure Docker to start on boot
sudo systemctl enable docker                                                         

有啥bug 就去github提吧... https://github.com/Mr-xn/Kali-install-docker       

标签: Kali Linux docker

Mrxn 发布于 2017-10-29 01:24

linux下解压rar格式的文件

linux下一般都是tar和zip的,如果下载到的文件是rar格式的话.我们就需要另外安装rar解压缩软件来支持了.下面简记一下

首先从rarlab官网的下载页面找到你所对应的版本.32位或者是64位的linux版本.

https://www.rarlab.com/download.htm

我这里以64位的作为例子.

在命令行里面使用wget直接下载:

wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz 

然后解压:

tar zxvf rarlinux* 或者是准确的使用Tab键补全. tar zxvf rarlinux-x64-5.5.0.tar.gz

然后cd进入rar目录进行编译安装

cd rar 

make

make install

[email protected]:~# cd rar
[email protected]:~/rar# make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
[email protected]:~/rar# make install
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

这时候使用rar 命令会提示你它的使用方法.常见使用方法如下:

解压缩一个file.rar 命令: rar x file.rar

压缩一个文件: rar a file2.rar ./test (将当前目录下的test文件夹压缩为file2.rar)

其他具体命令请使用rar查看.

PS:上篇文章的命令行下载工具里,axel 对于允许同时多线程下载的特别有用,wget 更适合下载只允许单线程的...


Mrxn 发布于 2017-10-21 04:50

个人资料

    blogger

    Mrxn

    一个关注网络安全,热爱黑客技术的好青年!

搜索

最新评论