分类 BASH 下的文章

Bash CURL: 获取状态码以及信息处理


目标

后期为项目做准备,想处理一些信息的转换。在brootkit中重新处理远程地址,因为有些后门要固定信息,直接写ip或者域名不怎么好,想到利用github.io的形式来处理C&C服务器的信息,比如C&C的ip或者域名随时更改直接放到github的配置文件中,所有信息只需要读取一个公共的github项目就可以再次解析出远程服务器的相关信息。

curl 参数

-A/--user-agent <string>              设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>            断点续转
-D/--dump-header <file>              把header信息写入到该文件中
-e/--referer                                  来源网址
-f/--fail                                          连接失败时不显示http错误
-o/--output                                  把输出写到该文件中
-O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                                    静音模式。不输出任何东西
-T/--upload-file <file>                  上传文件
-u/--user <user[:password]>      设置服务器的用户和密码
-w/--write-out [format]                什么输出完成后
-x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
-#/--progress-bar                        进度条显示当前的传送状态

-w 具体的参数可到 别人的博客园 里获得。

curl 获取状态码

curl -I -m 10 -o /dev/null -s -w %{http_code} https://elf-all.github.io/config/callback_port.conf

· -I 仅测试HTTP头
· -m 10 最多查询10s
· -o /dev/null 屏蔽原有输出信息
· -s silent 模式,不输出任何东西
· -w %{http_code} 控制额外输出

这样直接返回其文件的状态码,如果是404则是访问失败,可能项目配置文件的地址已更换,如果是200的话就可进行下一步了

curl 获取结果

curl https://elf-all.github.io/config/callback_port.conf

直接获取文件内容,就等待其他的处理。


Superbench.sh:一键脚本测试 VPS 性能


使用这个脚本,可以一键测试搬瓦工 VPS 各种性能,包括 VPS 基本信息,硬盘读写速度,到国内各个地区的下载速度等。与 bench.sh 相比,这个脚本主要是在测速方面做了改动。

一、Superbench.sh 使用方法

使用方法:

wget -qO- http://tool.bug-maker.com/superbench/superbench_git.sh | bash

或者线上的版本

wget -qO- sb.oldking.net | bash

测试结果如下所示:

微信截图_20200918111246.png


V2Ray教程


V2ray是继Shadowsocks(R)后又一个体验很棒、功能非常强大的科学上网工具,近年来受到网友的广泛关注和喜爱。敏感时期,V2ray伪装 能提供十分稳的服务,推荐使用。

V2Ray简介

V2Ray是近几年十分流行的网络工具,其功能强大,用途不限于突破防火墙,但因其能有效翻墙而广为人知。V2Ray有如下大放异彩的特点:

开源。V2Ray是Project V的核心工具,源代码开源;
多协议支持。传输层支持TCP、mKCP、WebSocket等,上层协议支持Socks、Shadowsocks、以及自定义的VMess等;
多入口和多出口。V2Ray可同时支持多个入站和出站协议,每个协议独立工作;
多平台支持。原生支持Windows、Linux、MacOS三大常用平台,安卓、iOS两大移动平台有丰富的第三方工具;
隐蔽性。V2Ray流量可伪装成网页流量,更难被检测和干扰。
与另一个知名的翻墙工具Shadowsocks(R)相比,V2ray和SSR区别在于:

V2Ray是一个框架/平台,而Shadowsocks(R)是一个代理工具;
V2Ray功能强大配置复杂,Shadowsocks(R)简单易用;
V2Ray性能更好,协议支持更完善。

一句话总结:V2Ray更好更强大,但更难上手和用好。

免费机场订阅地址

https://gitraw.bug-maker.com/freefq/free/master/v2

服务端安装和配置

v2ray服务器一件安装脚本:

bash <(curl -sL https://tool.bug-maker.com/v2ray_scripts/centos_install_v2ray.sh)

Windeow客户端下载

类型下载地址
v2rayN下载
v2rayW下载
v2rayS下载
Clash下载
Mellow下载
Qv2ray下载

直接下载(可直接用):v2rayN-Core.zip
源码包:v2rayN.zip

Android客户端下载

名称文件名下载地址
V2RayNGv2rayNG-v1.2.8.apk下载

其他

  1. 查看v2ray配置/运行状态:
bash <(curl -sL https://tool.bug-maker.com/v2ray_scripts/centos_install_v2ray.sh) info;
  1. v2ray管理命令:启动:systemctl start v2ray,停止:systemctl stop v2ray,重启:systemctl restart v2ray;
  2. 更改端口、alterid最简单的办法:重新运行一键脚本;
  3. 更新v2ray到最新版:重新运行一键脚本
  4. 卸载v2ray:
bash <(curl -sL https://tool.bug-maker.com/v2ray_scripts/centos_install_v2ray.sh) uninstall

宝塔Webhook脚本实现多git项目自动部署


之前写大部分只能针对一个项目来部署,这回改成多个项目自动部署。

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "End"
          exit
fi
#解析参数 例abc/efg
param="$1"
obj_user=${param%\/*}
obj_name=${param#*\/}
#git项目路径
gitPath="/www/wwwroot/we7.71yunduan.top/addons/$obj_name/"
if [ ! -d "$gitPath" ]; then
        mkdir $gitPath
fi
#git 网址
gitHttp="git@gitlib.71yunduan.top:$obj_user/$obj_name.git"
 
echo "Web站点路径:$gitPath"
echo "Git项目地址:$gitHttp"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        #拉取最新的项目文件
        git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

Linux命令行下获取本机外网ip的几种方法


Curl 纯文本格式输出:

curl icanhazip.com
curl ifconfig.me
curl curlmyip.com
curl ip.appspot.com
curl ipinfo.io/ip  这个不错
curl ipecho.net/plain
curl www.trackip.net/i

curl JSON格式输出:

curl ipinfo.io/json
curl ifconfig.me/all.json
curl www.trackip.net/ip?json (有点丑陋)

curl XML格式输出:

curl ifconfig.me/all.xml

curl 得到所有IP细节 (挖掘机)

curl ifconfig.me/all

使用 DYDNS (当你使用 DYDNS 服务时有用)

curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g'
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

使用 Wget 代替 Curl

wget http://ipecho.net/plain -O - -q ; echo
wget http://observebox.com/ip -O - -q ; echo

使用 host 和 dig 命令

如果有的话,你也可以直接使用 host 和 dig 命令。

host -t a dartsclink.com | sed 's/.*has address //'
dig +short myip.opendns.com @resolver1.opendns.com

bash 脚本示例:

#!/bin/bash
PUBLIC_IP=`wget http://ipecho.net/plain -O - -q ; echo`
echo $PUBLIC_IP