品牌其实就是质检出来的,
做一个检验机构,对不健康的产品(只要不健康就算符合国标)也不上架,并在网上挂产品卖
品牌其实就是质检出来的,
做一个检验机构,对不健康的产品(只要不健康就算符合国标)也不上架,并在网上挂产品卖
先宝塔,里面装docker,再用以下命令在docker中装青龙
docker run -dit \
--name QL \
--hostname QL \
--restart always \
-p 5700:5700 \
-v $PWD/QL/config:/ql/config \
-v $PWD/QL/log:/ql/log \
-v $PWD/QL/db:/ql/db \
-v $PWD/QL/scripts:/ql/scripts \
-v $PWD/QL/jbot:/ql/jbot \
whyour/qinglong:latest
再在宝塔和云服务器后台放开入站规则5700端口,然后登录
chrome浏览器访问 https://m.jd.com 然后点击 我的并用手机京东app扫描弹出来的二维码。
然后F12打开浏览器调试工具,点击 Application找到 Cookies 点击 https://home.m.jd.com,
在右边我们找到 pt_key和 pt_pin两个变量的值,将他们记录下来。
在我们拿到 pt_key和 pt_pin两个变量后我们就可以开始配置青龙面板的环境变量了。
在面板的右上角我们可以看到环境变量这个选项,我们点击增加。
在弹出的窗口中输入变量,名称为 JD_COOKIE 值就是刚刚获取的 pt_key和 pt_pin两个变量,注意别搞反了(中间和后面的分号不可少),如
pt_key=AAJhuUiCADQS_fjhNxcGreONxMHJdtIQ1Tg0dCJK4n3FHHqW4sEv3Y-4dmXH1C8;pt_pin=jd_6ca591d6a;
在配置好环境变量后我们就可以开始拉取脚本了,由于脚本库会更新我们拉取脚本的命令也可以放在定时任务中。
进入面板-右上角“定时任务”-分别填入相关信息。提供个人设置,给大家参考。其中任务名、任务定时可自定义。
名称:
拉取京东脚本
拉库命令填写下方代码:
ql repo https://gh.fakev.cn/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"
或者:
ql repo https://hub.fastgit.xyz/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"
PS:两者任选其一即可
国外鸡可直连Github的话填写下方代码
ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR"
定时规则(每天8点30):
30 8 * * *
填写完毕后我们点击播放按钮运行一次脚本,稍等一下,让它转一会儿。然后刷新页面,就能看到库的脚本了
看到上面的内容可以说就大功告成了,京东脚本就会按照脚本设置的时间自动执行任务获取京豆和红包。
一键依赖
docker exec -it qinglong bash
## 安装青龙依赖,如果按上面的安装青龙容器脚本,此处要把qinglong改成QL.
curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/FlechazoPh/QLDependency/main/Shell/QLOneKeyDependency.sh | sh
在每次执行完我们需要一个推送来告诉我们今天获取了多少京豆,以及cookies有没有过期。我们在面板的配置文件项的第44行找到server酱并填入SendKey并保存即可。
目前Server酱使用门槛变高,改用钉钉机器人是一个比较好的选择,具体步骤可参考这篇文章:青龙面板 消息推送功能设置之钉钉机器人消息推送! – 孤岛 (feiji.work)
这是一个非常好的服务器回血项目,即使在配置和搭建上比较复杂,但是收益还是相当可观的,配置得当你甚至在收回本金后还能赚不少钱。
其它补充内容可参考:搭建青龙面板运行京东、B站脚本 – 登山亦有道 (chenyan98.cn),目前发表原文的站点无法访问,看seo关键词估计是被请去喝茶了,。
青龙面板自动领京东京豆,做农场浇水、萌宠、工厂、种豆等任务-缙哥哥 (dujin.org)
青龙面板拉取常用脚本(JD签到)目前在维护的脚本更新(2021-10-04)
https://blog.csdn.net/m0_61705773?type=blog
其它用法
写好脚本则更能够帮你抓取数据到文件、数据库,部分实现自动化,甚至远超一些同类专业产品。
常规功能
可以用来指定抓取所有的WEB通讯,也可以只抓取指定进程的通讯。
File-Capture Traffic ; Any Process 或拖动选定进程窗口
2.可以用来查看一个URL打开后,浏览器与后端的交互
3.可以查看任意一个HTTP交互,看请求和响应的原始报文,帮助你了解HTTP协议
4.可以设置丰富的过滤条件,确保聚焦
5.可以以各种形态查看数据,并提供了工具来做转换【这个比较丰富,但隐藏较深】
6.可以编写脚本,实现各个阶段的处理
可以基于类似Windows下的WScript,甚至使用一些ActiveX组件实现并发机制、通讯与数据存储。
OnBeforeRequest 在请求发生前调用,请求经过Fiddler发送给服务器之前会先调用这个函数,因此,如果想要修改请求,可以写在这个函数里
OnPeekAtResponseHeaders 在头到达后调用
OnBeforeResponse 在内容到达后,还没有处理前调用,从服务器读完响应后,且在将响应发送给客户端之前执行的。通过修改这个函数,可以修改服务器的响应头或者响应体
把网页上的JSON文件下载到本地
把以下内容放入OnBeforeResponse里面,
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
if (oSession.uriContains("https://www.tiktok.com/api/recommend/item_list/")){
var strBodytk=oSession.GetResponseBodyAsString();
//var spstk = oSession.PathAndQuery.slice(-58,);
//FiddlerObject.alert(spstk)
var timestamptk=new Date().getTime();
var filenametk = "D:\\tiktokzl" + "\/" + timestamptk + ".json";
//var filename = "D:\抖音评论资料" + "/" + sps + timestamp + ".json";
var curDatetk = new Date();
var swtk : System.IO.StreamWriter;
if (System.IO.File.Exists(filenametk)){
swtk = System.IO.File.AppendText(filenametk);
swtk.Write(strBodytk);
}
else{
swtk = System.IO.File.CreateText(filenametk);
swtk.Write(strBodytk);
}
swtk.Close();
swtk.Dispose();
}
抓到 请求的数据 保存本地txt 文件里面
if (oSession.fullUrl.Contains("填写需要抓取的域名")) { var fso; var file; fso = new ActiveXObject("Scripting.FileSystemObject"); //文件保存路径可自定义 file = fso.OpenTextFile("填写保存TXT文件地址",8 ,true, true); file.writeLine("Request url: " + oSession.url); file.writeLine("Request header:" + "\n" + oSession.oRequest.headers); file.writeLine("Request body: " + oSession.GetRequestBodyAsString()); file.writeLine("\n"); file.close();}自动化抓取图片并提出重复的
static function FileExsitInDirectory(fso:Object, filename:String , dirpath:String )
{
var curPath = dirpath + “/” + filename ;
var objset , objFolders , FolderName, ret;
if (fso.FileExists(curPath))
{
return curPath;
}
else
{
var objset = fso.getFolder(dirpath);
var objFolders = objset.SubFolders;
var fenum = new Enumerator(objset.SubFolders);
for (var i = 0 ; !fenum.atEnd(); fenum.moveNext(),i++)
{
var FolderName = dirpath + "/" + fenum.item().Name + "/";
var ret = FileExsitInDirectory(fso, filename, FolderName);
if( ret != "NULL" )
{
return ret
}
}
return "NULL";
}
}
static function OnBeforeResponse(oSession: Session)
{
if (m_Hide304s && oSession.responseCode == 304)
{
oSession[“ui-hide”] = “true”;
}
//如果来自指定网站,且是jpg,则写文件 image/jpeg
if(
(oSession.RequestHeaders.AllValues("Host").Contains(".mm115.net") ||
oSession.RequestHeaders.AllValues("Host").Contains(".jzsjwk.com"))
&&
oSession.ResponseHeaders.AllValues("Content-Type").Contains("image/jpeg") )
{
var whindex = oSession.url.IndexOf ('?');
if (whindex <= 0)
whindex = oSession.url.Length;
var file_url = oSession.url.Substring (0,whindex);
whindex = oSession.url.IndexOf ('.jpg');
if ((whindex > 0) && (oSession.GetResponseBodyAsString().Length > 40000))
{
whindex = whindex+4;
file_url = file_url.Substring (0,whindex).Replace ('/','_').Replace('%','B').Replace('?','7').Replace('&','-').Replace('img22.jzsjwk.com','img1.mm115.net');
var file_path = "d:/PRVIT/jpg/"+file_url;
try
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var retval = FileExsitInDirectory(fso,file_url,"d:/PRVIT/jpg/");
FiddlerObject.log (retval);
if ("NULL" == retval)
{
var stream = new ActiveXObject('Adodb.Stream');
stream.Mode = 3;
stream.Open();
stream.Type = 1;
//stream.Charset = 'unicode';
//stream.WriteText(s);
stream.Position = 0;
stream.Type = 1;
//stream.Position = 2;
//var bs = stream.Read();
//stream.Position = 0;
stream.Write(oSession.responseBodyBytes);
//stream.SetEOS();
stream.SaveToFile(file_path,1);
stream.Close();
oSession["ui-backcolor"] = "yellow";
}
else
{
oSession["ui-strikeout"] = "true";
oSession["ui-backcolor"] = "green";
}
}
catch(err)
{
FiddlerObject.log (err.message);
oSession["ui-backcolor"] = "red";
}
}
else
{
oSession["ui-color"] = "red";
}
}
}
抓取内容,并存放到数据库
var sql = “”;
try
{
var con =new ActiveXObject(“ADODB.Connection”);
//con.Provider="Microsoft.ACE.OLEDB.18.0";
var rs=new ActiveXObject("ADODB.Recordset");
/**
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Y:/TEST/fiddler_web_service_analysis.accdb;Persist Security Info=False;
**/
//var access_db_path = "d:/fiddler_web_service_analysis.accdb" ;
//con.ConnectionString="Data Source="+access_db_path;
//ODBC DSN name ,config by windows odbc
con.open("DSN=db_hsb_vs_ahs;") ;
//FiddlerObject.alert(1);
sql = "insert into t_call_record (call_timestamp,request_send_timestamp,response_recv_timestamp,sitename,url,request,response,spend_second,content_type,content_length) values(" +
strVar1(oSession.Timers.FiddlerBeginRequest) + "," +
strVar1(oSession.Timers.ClientDoneRequest) + "," +
strVar1(oSession.Timers.ServerDoneResponse) + "," +
strVar1(oSession.RequestHeaders.AllValues("Host")) + "," +
strVar1(oSession.url.Substring (0,whindex)) + "," +
strVar1(oSession.RequestHeaders.ToString ()+oSession.GetRequestBodyAsString()) + "," +
strVar1(oSession.ResponseHeaders.ToString ()+oSession.GetResponseBodyAsString()) + "," +
etimes*1000 + "," +
strVar1(oSession.ResponseHeaders.AllValues("Content-Type")) +"," +
oSession.ResponseHeaders.AllValues("Content-Length")+0
+");";
//FiddlerObject.alert(sql);
rs.open(sql,con);
oSession["ui-color"] = "red";
//rs.close();
// rs=NULL;
con.close();
// con = NULL;
}
catch(exp)
{
var txt="Error description: " + exp.message + "\n\n" + sql;
FiddlerObject.log(txt);
oSession["ui-strikeout"] = "true";
}
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
oSession.hostname = "api.mobile.xxx.com"
}
// TSET FOR Spider: 根据网站来限定请求
if (oSession.HostnameIs("test.com")) {
// 模拟修改请求的用户端ip,这种情况对独立的网络有效,对于公司级的网络,还是有一些问题,需要借助vpn
oSession.oRequest["X-Forwarded-For"]="16.12.23.16";
// 修改请求的header
oSession.oRequest["User-Agent"] = "spider Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0";
}
2019.04.26 手机模拟添加cookie(区别于种cookie 在onBeforeResponse里)
oSession.oRequest.headers.Remove("Cookie");oSession.oRequest.headers.Add("Cookie", "username=testname;testpassword=P@ssword1");注意: Fiddler script不能直接删除或者编辑单独的一个cookie, 你需要用replace方法或者正则表达式的方法去操作cookie的string
if (oSession.HostnameIs("******") && oSession.oRequest.headers.Exists("Cookie") ) {
var sCookie = oSession.oRequest["Cookie"];
//用replace方法或者正则表达式的方法去操作cookie的string
//sCookie = sCookie.Replace("cookieName=", "ignoreme=");
sCookie = sCookie + ";tt_spver=1";
oSession.oRequest["Cookie"] = sCookie;
}
在此处修改response的bady内容【使用正则匹配方式】
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
// 获取response中的body字符串
var strBody=oSession.GetResponseBodyAsString();
// 用正则表达式或者replace方法去修改string
var regx = '"stream_mode":\d*?'
strBody=strBody.replace(regx,'"stream_mode":0');
// 弹个对话框检查下修改后的body
FiddlerObject.alert(strBody);
// 将修改后的body,重新写回Request中
oSession.utilSetResponseBody(strBody);
}
在此处修改json中的数据【修改接口字段的值】
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
// 获取Response Body中JSON字符串
var responseStringOriginal = oSession.GetResponseBodyAsString();
// 转换为可编辑的JSONObject变量
var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);
// 修改JSONObject变量,修改字段数据
responseJSON.JSONObject["new_core"] = "True";
responseJSON.JSONObject["stream_mode"] = 5;
// 重新设置Response Body
var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);
oSession.utilSetResponseBody(responseStringDestinal);
}
在此处修改json中的数据【增加接口字段=值】
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
// 获取Response Body中JSON字符串
var responseStringOriginal = oSession.GetResponseBodyAsString();
// 转换为可编辑的JSONObject变量
var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);
// 修改JSONObject变量,修改字段数据
responseJSON.JSONObject["type_arr"] = ["bullet"];
// 重新设置Response Body
var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);
oSession.utilSetResponseBody(responseStringDestinal);
}
使指定URL支持CORS跨域请求有时候,你调用一个 json 接口,发现跨域了,你需要去找接口的开发人支持跨域,显然傻傻等待后端开发完毕再联调是低效率的, 这个时候就就要在后台改完之前就自己实现跨域的模拟,此时 fiddler 显然是再好不过的利器。支要持 CORS 跨域, 就是要为请求的返回头增加 Access-Control-Allow-Origin 属性,因此需要修改 OnBeforeResponse函数,在该函数的末尾添加你的 CORS 逻辑
static function OnBeforeResponse(oSession: Session) {
...
if(oSession.uriContains("要处理的url")){
oSession.oResponse["Access-Control-Allow-Origin"] = "允许的域名";
oSession.oResponse["Access-Control-Allow-Credentials"] = true;
}
}
oSession常用的相关属性和方法
// 修改session中的显示样式
oSession["ui-color"] = "orange";
// 移除http头部中的MQB-X5-Referer字段
oSession.oRequest.headers.Remove("MQB-X5-Referer");
// 修改http头部中的Cache-Control字段
oSession.oRequest["Cache-Control"] = "no-cache";
// 修改host
oSession.host = "example.domain";
// 修改Origin字段
oSession.oRequest["Origin"] = "http://domain";
// 删除所有的cookie
oSession.oRequest.headers.Remove("Cookie");
// 新建cookie
oSession.oRequest.headers.Add("Cookie", "username=cookiename;");
// 修改Referer字段
oSession.oRequest["Referer"] = "https://yoururl";
// 获取Request中的body字符串
var strBody=oSession.GetRequestBodyAsString();
// 用正则表达式或者replace方法去修改string
strBody=strBody.replace("aaaa","bbbbbb");
// 将修改后的body,重新写回Request中
oSession.utilSetRequestBody(strBody);
// 判断连接中是否包含字符串str
oSession.uriContains(str)
// 给连接请求添加一个字段TEST
oSession.oRequest["TEST"]="TEST NEW Request";
可参考
https://github.com/gitjayzhen/FiddlerUseScript
Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。Linux系统提供iproute2工具用于替代一些常用的net-tools命令,iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。
格式:
ip [options] object [command [arguments]]
主要参数
OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式。如link、addr、route、rule、tunnel 。
object是要管理者获取信息的对象。如网络接口类型eth0。
command设置针对指定对象执行的操作,它和对象的类型有关。一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些对象不支持这些操作,或者有其它的一些命令。对于所有的对象,用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令,ip会使用默认的命令。一般情况下,默认命令是list,如果对象不能列出,就会执行help命令。
arguments是命令的一些参数,它们倚赖于对象和命令。ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个关键词加一个数值组成。为了方便,每个命令都有一个可以忽略的默认参数。例如,参数dev是ip link命令的默认参数,因此ip link ls eth0等于ip link ls dev eth0。命令的默认参数将使用default标出。
需要查看是否已经生效。
ip addr show wlan0
删除IP地址
ip addr del 192.168.0.193/24 dev wlan0
ip route get 119.75.216.20
查看路由包
添加默认路由
ip route add default via 192.168.202.254
添加网络路由
ip route add 192.168.4.0/24 via 192.168.4.1
修改网络路由
ip route change 192.168.4.0/24 dev eth1
设置NAT路由
ip route add nat 192.168.1.100 via 192.168.1.1
1.
查看某个路由表信息
ip route show table main
ip route show table local
ip route show table all
可以使用以下方式获取到特定ip的路由信息:
bob@ubuntu-20-04:~$ ip route get to 192.168.43.2
ip route flush
ip route flush cache
ip -s -s link ls docker0
或
ip -s link ls docker0
ip link set eth0 down
ip link set eth0 up
修改设置传输队列的长度
ip link set dev eth0 txqueuelen 100
或
ip link set dev eth0 txqlen 100
修改网络设置MTU(最大传输单元)的值
ip link set dev eth0 mtu 1500
修改网卡的MAC地址
ip link set dev eth0 address 00:01:4f:00:15:f1
ip rule add
ip rule delete
ip rule list
子命令可以用如下缩写:add、a;delete、del、d
示例1: : 双网卡数据路由策略选择,让来自192.168.3.0/24的数据包走11.0.0.254这个网关,来自192.168.4.0/24的数据包走12.0.0.254这个网关
定义表
echo 10 clinet_cnc >>/etc/iproute2/rt_tables
echo 20 clinet_tel >>/etc/iproute2/rt_tables
把规则放入表中
ip rule add from 192.168.3.0/24 table clinet_cnc
ip rule add from 192.168.4.0/24 table clinet_tel
添加策略路由
ip route add default via 11.0.0.254 table clinet_cnc
ip route add default via 12.0.0.254 table clinet_tel
刷新路由表
来自51CTO博客作者计算机控制挖掘机炒菜?的原创作品
docker ps命令用来展示所有运行中的容器
docker ps -a命令是用来展示所有的容器,包括未运行的容器
curl 是常用的命令行工具,用来请求 Web 服务器,它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具,
不带有任何参数时,curl 就是发出 GET 请求。
$ curl https://www.example.com
上面命令向www.example.com发出 GET 请求,服务器返回的内容会在命令行输出。
#curl cip.cc 查询IP地址归属地
参考:https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
命令用于查找文件里符合条件的字符串。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
通过上述解释,可以得知ps是一个命令,grep是一个命令,中间的|代表管道命令,表示ps命令和grep命令同时执行
示范
ps -ef |grep python 这条命令代表检查python进程是否存在
nload -m
查看所有网卡实时流量情况,-m参数表示不以图表,而以统计数据显示
du -sh 查看当前目录使用情况
du -sh * 查看当前目录下子目录使用情况,可以直接把*号变目录名来查目录空间使用情况
du -sh /* 表示根目录使用情况
df -ah df列出磁盘总容量、可用容量、使用%、接入点等信息,而du只是合计磁盘的使用量。-h选项表示人性化显示格式。
tail Linux中用于查看文件尾部的内容,与head相对应。
常用来查看日志文件,通过-f实时查看文件最新内容。
尤其是对于日志文件较大的时候,通过tail指定输出的行数来查看日志。
// 输出最后10行的内容
tail test.log
// 输出最后10行的内容,同时监视文件的变化,一旦变化就显示出来
tail -f test.log
// 输出最后n行的内容,同时监视文件的变化,一旦变化就显示出来
tail -nf test.log
// 输出文件最后10行的内容
tail -n 10 filename
// 除第9行不显示外,显示第10行到末尾行
tail -n -10 filename
// 从第20行至末尾
tail +20 test.log
// 显示最后10个字符
tail -c 10 test.log
// 实时日志查看与grep过滤关键字
// -A 除显示符合t匹配内容的那一行之外,并显示该行之后的内容
// -B 除显示符合匹配内容的那一行之外,并显示该行之前的内容
// -C 除显示符合匹配内容的那一列之外,并显示该列前后的内容
tail -f test.log | grep ‘test’ -C 5
tail -f test.log | grep ‘test’ -5
PuTTY 安全复制客户端 (PSCP) 是一个命令行工具,可用于在 Windows 计算机和 Linux 实例之间传输文件。
要使用 PSCP,您需要使用在使用 PuTTYgen 转换私有密钥中生成的私有密钥。您还需要使用 Linux 实例的公有 DNS 名称或 IPv6 地址(如果实例具有该地址)。
以下示例将 Sample_file.txt 文件从 Windows 计算机上的 C:\ 驱动器传输到 Amazon Linux 实例上的 instance-user-name 主目录。要传输文件,请使用以下命令之一。
pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt instance-user-name@instance-public-dns-name:/home/instance-user-name/Sample_file.txt[ ]) 括起来。pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt instance-user-name@[instance-IPv6-address]:/home/instance-user-name/Sample_file.txt如果您更喜欢图形用户界面 (GUI),您可以使用一种叫作“WinSCP”的开源 GUI 工具。
WinSCP 是适用于 Windows 的基于 GUI 的文件管理器,您可以通过它来使用 SFTP、SCP、FTP 和 FTPS 协议将文件上传并传输到远程计算机。WinSCP 允许您将文件从 Windows 计算机拖放到 Linux 实例,或者在两个系统之间同步整个目录结构。
但您的 Linux 实例必须已安装 scp。对于某些操作系统,您需要安装 openssh-clients 软件包。对于其他操作系统(例如经 Amazon ECS 优化的 AMI),您需要安装 scp 软件包。请参阅您的 Linux 发行版的文档。
当服务器设置了禁ping,TCPING可以监听服务器的端口状态,默认是80端口的,也可以指定其它端口。也可以看到ping 返回的时间
下载的tcping.exe或者tcping64.exe文件放到C:\Windows\System32目录下(ping命令也是在这个目录下)
“ tcping www.baidu.com”
“ tcping -t www.baidu.com 【参数-t 是让命令一直运行ping 】”
“ tcping -d -t www.baidu.com 【参数 -d 是显示时间,这样就可以更清楚了】”
“ tcping -d -t www.baidu.com 443/21 【这里只是举例,21是您所需要监听的端口,这个可以行定义。】”
1.openwrt路由下安装 tcpdump(可以将网络中传送的数据包完全截获下来提供分析)
2.电脑装wireshark 和plink.exe(plink是putty下的一个工具,可以在windows下直连liunx并自动执行命令的工具)
https://www.wireshark.org/download.html
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
3.路由下tcpdump抓包,PC端使用 wireshark 实时监听
admin 是路由的密码,root是用户名 ,wlan0 无线网卡 的数据链路层代号,
ifconfig 可以看到具体详细信息,tcpdump的指令就不多说了,看官方文档吧
4.分析数据报文,获取敏感信息
假如你使用了我的wifi,登录了百度的主页,我就获取你的登录cookies,
有了cookies可以不用密就能登录你的百度账号, 浏览你的各种百度云盘里面的内容。
wireshark 添加过滤的条件“http.cookie“, 获取cookies的相关报文,点中右键,follow tcp steam,看到完整的报文,
复制 http 请求时向服务器发送的cookies 字符串
5.注入cookies,登录账号
chrome 下使用一个 CookieHacker的插件 ,下载 http://evilcos.me/?p=366
打开 baidu.com,把cookies的字符串粘贴,点击inject cookie
刷新一下就看到用户已经登录了
P.S. 除了这些以外,你发出的所有请求都能在wireshark里面分析出来,当然这只是最简单的嗅探而已,
服务端一键安装脚本(安装的go版本,但电脑客户端一些加密方式好像不支持)
wget --no-check-certificate -O shadowsocks-go.sh https://raw.githubusercontent.com/poetries/shadowsocks_install/master/shadowsocks-go.sh chmod +x shadowsocks-go.sh ./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log
安装完成后,脚本提示如下:
Congratulations, Shadowsocks-go install completed! Your Server IP:your_server_ip Your Server Port:your_server_port Your Password:your_password Your Local Port:1080 Your Encryption Method:aes-256-cfb Welcome to visit:https://teddysun.com/392.html Enjoy it!
卸载方法
./shadowsocks-go.sh uninstall
可以查看
Shadowsocks-go进程是否已经启动。 本脚本安装完成后,已将shadowsocks-go加入开机自启动。
使用命令:
/etc/init.d/shadowsocks start/etc/init.d/shadowsocks stop/etc/init.d/shadowsocks restart/etc/init.d/shadowsocks status多用户多端口配置文件示例: 配置文件路径:/etc/shadowsocks/config.json
{
"port_password":{
"8989":"password0",
"9001":"password1",
},
"method":"aes-256-cfb",
"timeout":600
}
根据上面的在ubuntu上只能安装go版本,而只能手机端用,WIN客户端有的加密方式,GO版本都没有,最后在github上找到v2ray服务器安装脚本,用的aws东京但只在debian系统装测试成功。客户端WIN一般用v2rayN,手机端用v2rayNG,v2flyNG,大家可直接在github下载
自动安装脚本
bash <(curl -s -L https://git.io/v2ray.sh)
另外推荐XUI
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
前往亚马逊官网注册,自己根据里面的资料慢慢填写即可。填写过程中必须要绑定信用卡
信用卡账单,在亚马逊官网信用卡付费是不需要密码的,也就是根据你的信用卡正反面信息即可直接在网络上操作扣费(一般扣费都可以申请追回,最好申请资金进出短信提醒),自己的信用卡自己保护好。亚马逊当然不会恶意扣费,只是免费套餐限制多,超出部分是要扣费的;
进入控制中心,先选择地区,右上角有地区选择。如果搭建SS,建议亚太地区,如果是纯粹的网站。那就根据你的目标用户的位置来选择了。
![图片[2] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071108032582.png)
选择好了地区后,点击[服务]中的[EC2],现在我们就要开始创建EC2实例了。
![图片[3] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071108082830.png)
![图片[4] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071108155378.png)
选择“仅限免费套餐”,这里我选择的是Red Hat,因为Red Hat更接近于CentOS,习惯用CentOS了。
![图片[5] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071108231353.png)
实例只能选择[符合条件的免费套餐],选择其他会产生费用的
然后创建密钥对,如果用putty连建议选ppk格式,否则要用工具再把ppm转成ppk,建好后
[安全组配置]选择默认规则就好了,稍后我们在[安全组]里修改为全部放行(注意入站、出站都要修改为全部放行)
![图片[8] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071108500711.png)
设置[安全组配置]
![图片[9] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071108580834.png)
查看实例,并用XFTP或者SSH连接
![图片[10] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071109041842.png)
XFTP或者SSH上填写好登录地址和用户名后导入密钥
如果最后一步出现错误,那是账号还没有完全通过审核,需要等待5分钟-4小时,邮件收到通过审核后再去创建实例;
如果显示创建成功可以正常使用了,这里又个坑,每月的免费流量只有100G,超过后就会在你的信用卡上扣费,所以我们要监控云主机的流量不要超过100G的出站流量;可以直接登录后点用户名,选进到账户页面再选左边的“FREE TIER”来查看免费套餐的使用情况,也可以按下面方式来统计
可以进实例后点中间的“监控”,里面选“网络输入”(还有网络输出也一样)面板的右上角选“在指标中查看”
![图片[13] - Amazon – AWS免费一年云主机 以及使用中的一些坑 - 云线路](https://www.yunloc.com/wp-content/uploads/2019/07/2019071110035353.png)
这里修改统计数据为总和,周期为30天,把上面的线形图改成数字,这样就可以统计一个月的流量数据了,(也可以点击左上角[服务]选择[管理与监管]–[CloudWatch]在这个里面来统计),还可以把统计数据添加到控制面板里,以后就不用繁琐操作看流量统计了
但这里又有个坑,ec2-user这个用户权限太低,我们需要root的权限。登录用证书登录也很麻烦,也需要一并去掉。
可以后台直接连接主机,也可以用putty填好IP后在 连接-SSH-认证里把私钥(putty要ppk格式,如是ppm要用PuTTYgen把格式转为ppk)传上去后再连接主机,刚进去一般用户名是ec2-user,如ubuntu用户名是ubuntu,红帽是admin,用普通用户连上系统后
创建root的密码,输入如下命令:
sudo passwd root
会提示你输入new password。输入一个你要设置的root的密码,需要你再输入一遍进行验证;
接下来,切换到root身份,输入如下命令:
su root
给ec2-user加个密码,输入如下命令:
passwd ec2-user
使用root身份编辑亚马逊云主机的ssh登录方式,在/etc/ssh/sshd_config找到三个地方,把no改成yes 输入:
vi /etc/ssh/sshd_config
键盘P、i编辑,esc、:wq保存
PermitRootLogin yesPasswordAuthentication yesUsePAM yes
接下来,要重新启动下sshd,这里重启sshd命令有可能不会生效需要重启系统:
reboot
这样就可以使用root身份直接登录ssh了,接下来可以删除ec2-user这个用用户了:
uesrdel -r ec2-user
这里还有个情况需要说明下,用Red Hat系统的话我是实测无法安装军哥的LNMP和宝塔的,也就是说如果需要安装网站环境的话需要自己编译WEB环境,或者更换成UBUNTU系统使用LNMP或者宝塔(这里我没测试),本人只用来搭建SS扶墙。
下面说下安装秋水的SS一键脚本,使用Shadowsocks-python版本无法搭建成功,这里我测试安装成功的是Shadowsocks-go,希望大家不要走弯路。
注册AWS要使用从未在AWS上用过的信用卡,不然你就不符合Free Tier的使用条件,所有服务将会按需收费,申请免费成功后免费服务只有一年的有效期,到期时记得导出数据并停止所有服务;
免费额度只够创建一个EC2实例;
创建实例时,要选带有免费提示的操作系统,这类系统是免费提供的,不另收费;
建站时不要使用RHEL(Red Hat Enterprise Linux),此系统占用的EBS空间大而且极费IO,每月200万的免费IO可能不出几天就能耗完;
每月的免费存储是5G,注意不要超出这个上限,另外GET,POST等操作可能会超出免费额度;
流入AWS的流量完全是免费的,但每月的免费流出流量只有15G,超出部分就要收费了。而且这15G对于所有的AWS服务来说是共享的。托管一个小网站,架设个SS,明显不够用嘛;
基本监控是免费的,再高级别的就要收费了。免费监控虽说不够详细,但是足够让我们了解服务器最近一段时间的运行状况了,没必要使用高级别的监控服务;
因为实例每次停止再启动,IP都会变,所以如果经常停止,可以申请绑个弹性IP,把IP固定下来,绑在实例上的弹性IP是不收费的,但弹性IP没有捆绑到EC2实例时,一定要记得释放,如免费实例到期后弹性IP也要放,不然它会按小时收费。而且每月g头100次捆绑Elastic IP到EC2实例是免费的,超出则收费啦;