存檔

‘linux’ 分類的存檔

docker安裝

2019年1月10日 沒有評論

17年以后docker有docker-ce和dcoker-ee兩個版本,ee企業版是給企業用戶使用的閉源版本需要收費,ce社區版為原來的docker開源版本。

自動安裝最新的docker-ce

安裝完成之后默認沒有啟動docker,使用如下命令啟動docker

檢查進程已正常啟動

或者手動安裝源文件后使用yum來安裝

設置開機啟動docker

分類: linux 標簽:

linux安裝groovy

2018年5月29日 1 條評論

linux系統安裝groovy環境

分類: linux 標簽:

訪問https報Unknown SSL protocol error in connection to錯誤

2018年3月20日 沒有評論

網站升級httsp后,用curl訪問,長時間不返回結果,報ssl handshake 協議錯誤,具體如下。
原因是curl版本太舊,可以使用curl的--sslv3參數,或者升級curl本本。

$ curl -v https://www.264.cn/shengqi/ --user-agent "Mozilla/5.0" --silent

* timeout on name lookup is not supported
* Trying 47.52.250.55...
* TCP_NODELAY set
* Connected to www.264.cn (47.52.250.55) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* Unknown SSL protocol error in connection to www.264.cn:443
* Curl_http_done: called premature == 1
* stopped the pause stream!
* Closing connection 0

分類: linux 標簽: ,

tcpdump抓取http的請求頭和響應信息

2017年8月21日 沒有評論

tcpdump過濾HTTP的GET請求:

sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

tcpdump過濾HTTP的POST請求:

sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

tcpdump過濾HTTP的請求和響應頭信息,以及請求和響應消息體信息:

tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

分類: linux 標簽:

git master origin HEAD的區別

2017年3月29日 沒有評論

HEAD :當前活躍分支的游標,可以用 checkout 命令改變 HEAD 指向的位置。形象的記憶就是:你現在在哪兒,HEAD 就指向哪兒,所以 Git 才知道你在那兒!

master: 首次創建倉庫時默認分支的名字,在大多數情況下,master是指主干分支。

origin: 默認的遠程倉庫的名字。

HEAD是git內置的定義好的特定含義功能,不可以修改。master,origin都是常用的公共命名方式,可以有自己的定義。

ps:
FETCH_HEAD: 是一個版本鏈接,記錄在本地的一個文件中,指向著目前已經從遠程倉庫取下來的分支的末端版本

參考
http://marklodato.github.io/visual-git-guide/index-zh-cn.html

分類: linux 標簽:

如何讀懂tcpdump的輸出

2017年2月2日 1 條評論

tcpdump 是 Linux 下的抓包工具,使用參數比較多,輸出條目比較細。

tcpdump的命令行格式

 

tcpdump的參數選項

 

tcpdump的表達式

表達式是一個邏輯表達式,tcpdump利用它作為過濾報文的條件,如果一個報文滿足表達式的條件,則這個報文將會被捕獲。如果沒有給出任何條件,則網絡上所有的信息包將會被截獲。

在表達式中一般如下幾種類型的關鍵字:

關于類型的關鍵字,主要包括host,net,port

例如,
host 210.27.48.2,指明 210.27.48.2是一臺主機,net 202.0.0.0 指明202.0.0.0是一個網絡地址,port 23 指明端口號是23。

如果沒有指定類型,缺省的類型是host.

關于傳輸方向的關鍵字:src,dst,dst or src,dst and src

例如,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的網絡地址是202.0.0.0 。如果沒有指明方向關鍵字,則缺省是src or dst關鍵字。

關于協議的關鍵字:fddi,ip,arp,rarp,tcp,udp

Fddi指明是在FDDI(分布式光纖數據接口網絡)上的特定的網絡協議,實際上它是"ether"的別名,fddi和e ther具有類似的源地址和目的地址,所以可以將fddi協議包當作ether的包進行處理和分析。

其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會監聽所有協議的信息包。

邏輯運算符關鍵字

非運算 'not ' '! '
與運算 'and','&&'
或運算 'or' ,'||'
這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來說明。

其他重要關鍵字

除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway, broadcast,less,greater。

案例

想要截獲所有210.27.48.1 的主機收到的和發出的所有的數據包:
tcpdump host 210.27.48.1

想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信,使用命令
tcpdump host 210.27.48.1 and \(210.27.48.2 or 210.27.48.3\)

如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用命令:
tcpdump ip host 210.27.48.1 and ! 210.27.48.2

如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:
tcpdump tcp port 23 host 210.27.48.1

輸出結果介紹
下面我們介紹幾種典型的tcpdump命令的輸出信息

數據鏈路層頭信息
使用命令tcpdump --e host ice

ice 是一臺裝有linux的主機,她的MAC地址是0:90:27:58:af:1a

H219是一臺裝有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5b:46

命令的輸出結果如下所示:

21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.telnet 0:0(0) ack 22535 win 8760 (DF)

分析:

21:50:12 是顯示的時間
847509 是ID號
eth0 < 表示從網絡接口eth0 接受該數據包
eth0 > 表示從網絡接口設備發送數據包
8:0:20:79:5b:46 是主機H219的MAC地址,它表明是從源地址H219發來的數據包
0:90:27:58:af:1a 是主機ICE的MAC地址,表示該數據包的目的地址是ICE
ip 是表明該數據包是IP數據包,
60 是數據包的長度,
h219.33357 > ice.telnet 表明該數據包是從主機H219的33357端口發往主機ICE的TELNET(23)端口
ack 22535 表明對序列號是222535的包進行響應
win 8760 表明發送窗口的大小是8760
ARP包的TCPDUMP輸出信息
使用命令#tcpdump arp

得到的輸出結果是:

22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)

分析:

22:32:42 時間戳
802509 ID號
eth0 > 表明從主機發出該數據包
arp 表明是ARP請求包
who-has route tell ice 表明是主機ICE請求主機ROUTE的MAC地址
0:90:27:58:af:1a 是主機ICE的MAC地址。

TCP包的輸出信息
用TCPDUMP捕獲的TCP包的一般輸出信息是:

src > dst 表明從源地址到目的地址
flags 是TCP包中的標志信息,S 是SYN標志, F(FIN), P(PUSH) , R(RST) "."(沒有標記)
data-seqno 是數據包中的數據的順序號
ack 是下次期望的順序號
window 是接收緩存的窗口大小
urgent 表明數據包中是否有緊急指針
options 是選項

用TCPDUMP捕獲的UDP包的一般輸出信息是:

UDP十分簡單,上面的輸出行表明從主機ROUTE的port1端口發出的一個UDP數據包到主機ICE的port2端口,類型是UDP, 包的長度是lenth

wireshark查看
要讓wireshark能分析tcpdump的包,關鍵的地方是 -s 參數, 還有要保存為-w文件,例如下面的例子:

wireshark的過濾,很簡單的,比如:

tcp.port eq 5541
ip.addr eq 192.168.2.1
過濾出來后, 用fllow tcp 查看包的內容。

其他

device eth0/eth1 entered promiscuous mode
message日志中提示:
kernel: device eth0 entered promiscuous mode
kernel: device eth0 left promiscuous mode
網卡進入了混雜模式。一般對通信進行抓包分析時進入混雜模式(tcpdump)。(默認網卡啟用了混雜模式的)
關閉混雜模式:ifconfig eth0 -promisc
啟用混雜模式:ifconfig eth0 promisc
TCP協議的KeepAlive機制與HeartBeat心跳包:http://www.nowamagic.net/academy/detail/23350382
TCP Keepalive HOWTO:http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/

參考

http://xstarcd.github.io/wiki/shell/tcpdump.html
https://my.oschina.net/xianggao/blog/678644

分類: linux 標簽: ,

vim函數跳轉命令

2016年3月9日 1 條評論

gd 跳轉到局部函數定義.
gD 跳轉到全局函數定義.
g* 向下搜索光標所在單詞 ( 當光標在 'rain' 會查找 'rainbow').
g# 向上搜索光標所在單詞
gg 跳轉到第一行
G 跳轉到最后一行

分類: linux 標簽:

eval惡意代碼還原

2015年10月13日 1 條評論

查看后臺日至看到如下內容:
117.21.176.241 - - [13/Oct/2015:16:14:34 +0800] "POST / HTTP/1.1" "-" 200 53156 [email protected](base64_decode($_POST[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOztwcmludCgiaGFvcmVuIik7O2VjaG8oInw8LSIpO2RpZSgpOw== "-" "-"

這段內容是有人在掃面后臺,執行eval一句話攻擊,想知道它干什么,base64_decode這個內容。
decode時注意POST里的%要還原回url_encode前的字符。例如,把%2B和%3D用urldecode()函數還原分別是+號和=號

這段代碼還原后的內容是:

分類: linux 標簽:

linux命令行下curl方式post頁面

2015年10月13日 2 條評論

1. linux curl抓取網頁:

抓取百度:
curl http://www.baidu.com

如發現亂碼,可以使用iconv轉碼:
curl http://iframe.ip138.com/ic.asp|iconv -fgb2312
iconv的用法請參閱:在Linux/Unix系統下用iconv命令處理文本文件中文亂碼問題

2. Linux curl使用代理:

linux curl使用http代理抓取頁面:
curl -x 111.95.243.36:80 http://iframe.ip138.com/ic.asp|iconv -fgb2312
curl -x 111.95.243.36:80 -U aiezu:password http://www.baidu.com

使用socks代理抓取頁面:
curl --socks4 202.113.65.229:443 http://iframe.ip138.com/ic.asp|iconv -fgb2312
curl --socks5 202.113.65.229:443 http://iframe.ip138.com/ic.asp|iconv -fgb2312

代理服務器地址可以從爬蟲代理上獲取。

3. linux curl處理cookies

接收cookies:
curl -c /tmp/cookies http://www.baidu.com #cookies保存到/tmp/cookies文件

發送cookies:
curl -b "key1=val1;key2=val2;" http://www.baidu.com #發送cookies文本
curl -b /tmp/cookies http://www.baidu.com #從文件中讀取cookies

4. linux curl發送數據:

linux curl get方式提交數據:
curl -G -d "name=value&name2=value2" http://www.baidu.com

linux curl post方式提交數據:
curl -d "name=value&name2=value2" http://www.baidu.com #post數據
curl -d [email protected]/tmp/txt http://www.baidu.com #post文件

以表單的方式上傳文件:
curl -F [email protected]/tmp/me.txt http://www.aiezu.com

相當于設置form表單的method="POST"和enctype='multipart/form-data'兩個屬性。

5. linux curl http header處理:

設置http請求頭信息:
curl -A "Mozilla/5.0 Firefox/21.0" http://www.baidu.com #設置http請求頭User-Agent
curl -e "http://pachong.org/" http://www.baidu.com #設置http請求頭Referer
curl -H "Connection:keep-alive \n User-Agent: Mozilla/5.0" http://www.aiezu.com

設置http響應頭處理:
curl -I http://www.aiezu.com #僅僅返回header
curl -D /tmp/header http://www.aiezu.com #將http header保存到/tmp/header文件

6. linux curl認證:

curl -u aiezu:password http://www.aiezu.com #用戶名密碼認證
curl -E mycert.pem https://www.baidu.com #采用證書認證

7. 其他:

curl -# http://www.baidu.com #以“#”號輸出進度條
curl -o /tmp/aiezu http://www.baidu.com #保存http響應到/tmp/aiezu

8. 經驗
linux 使用curl小經驗教訓:
http請求地址的url要使用""括起來。當有存在多個參數使用&連接時可能會出錯。

原文地址:http://www.cnblogs.com/davidwang456/p/4266867.html

分類: linux 標簽:

linux查看物理cpu數量

2015年9月22日 1 條評論

# 總核數 = 物理CPU個數 X 每顆物理CPU的核數
# 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數

# 查看物理CPU個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每個物理CPU中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l

# 查看CPU信息(型號)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

# 查看內 存信息
cat /proc/meminfo
free -g

# getconf LONG_BIT
32
(說明當前CPU運行在32bit模式下, 但不代表CPU不支持64bit)

分類: linux 標簽:
极速快乐十分助手