分类 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