寫(xiě)給文達(dá)环葵,一位上進(jìn)愛(ài)學(xué)習(xí)的90后IOS程序員儡蔓。
前一篇:Linux小白實(shí)用命令--權(quán)限配置
用途:接口調(diào)試前檢查網(wǎng)絡(luò)和端口是否通暢。
命令:6個(gè) 冕象,掌握時(shí)間:30分鐘
ifconfig #獲取本機(jī)IP
ping 192.168.220.123 #檢測(cè)本機(jī)到192.168.220.123網(wǎng)絡(luò)是否通
telnet 192.168.220.123 8080 #檢測(cè)本機(jī)到192.168.220.123的8080端口是否通
netstat #羅列本機(jī)已啟動(dòng)的應(yīng)用和端口
systemctl status firewall #檢測(cè)防火墻狀態(tài)(適用centos7)
curl http://192.168.220.123:8080/index.jsp #檢測(cè)是否可訪(fǎng)問(wèn)到url
- 獲取本機(jī)IP
ifconfig
查IP這件事情豌骏,通常是這樣的一個(gè)場(chǎng)景龟梦,SSH連接用的外網(wǎng)IP,但程序需用內(nèi)網(wǎng)IP窃躲。
# ifconfig
em1 Link encap:Ethernet HWaddr 90:B1:1B:19:B6:EB
inet addr:192.168.220.123 Bcast:192.168.220.255 Mask:255.255.255.0
inet6 addr: fe80::92b1:1cff:fe19:b6ea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:129506768 errors:1 dropped:922 overruns:0 frame:1
TX packets:168867967 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23380501211 (21.7 GiB) TX bytes:84585884746 (78.7 GiB)
- 檢測(cè)遠(yuǎn)程服務(wù)器
ping
重要:獲取到對(duì)方提供的接口信息后计贰,第一步確定接口是否通暢。
可分三個(gè)步驟:1)網(wǎng)絡(luò) 2)端口 3)接口
如果網(wǎng)絡(luò)不通框舔,接下來(lái)所有的事情都無(wú)法做蹦玫,很基礎(chǔ)、很重要刘绣。
而且對(duì)方調(diào)整網(wǎng)絡(luò)是需要時(shí)間的樱溉,所以不要等自己的接口好了才去看對(duì)方的是否準(zhǔn)備好,而是對(duì)方一提供接口信息纬凤,第一步就是檢測(cè)福贞。
遇到N次對(duì)方的網(wǎng)絡(luò)工程師發(fā)來(lái)了ip、port停士,沒(méi)有做校驗(yàn)挖帘,一周后正式調(diào)試接口時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)是不通的,然后調(diào)整網(wǎng)絡(luò)恋技,這樣一周就又過(guò)去啦拇舀。
#網(wǎng)絡(luò)通暢
# ping 192.168.220.127
PING 192.168.220.127 (192.168.220.127) 56(84) bytes of data.
64 bytes from 192.168.220.127: icmp_seq=1 ttl=64 time=0.426 ms
64 bytes from 192.168.220.127: icmp_seq=2 ttl=64 time=0.259 ms
#網(wǎng)絡(luò)不通
# ping 192.168.220.129
PING 192.168.220.129 (192.168.220.129) 56(84) bytes of data.
From 192.168.220.126 icmp_seq=1 Destination Host Unreachable
From 192.168.220.126 icmp_seq=2 Destination Host Unreachable
這里網(wǎng)絡(luò)通就OK,如果不通蜻底,也不要慌骄崩,可能是對(duì)方禁ping啦,需進(jìn)一步進(jìn)行確認(rèn)。
- 檢測(cè)遠(yuǎn)程端口
telnet
不管是否可用ping通要拂,都需要telnet測(cè)試下端口是否通抠璃。
# 端口通暢
# telnet 192.168.220.123 58082
Trying 192.168.220.123...
Connected to 192.168.220.123.
Escape character is '^]'.
#端口不通
# telnet 192.168.220.123 68082
Trying 192.168.220.123...
telnet: connect to address 192.168.220.123: Connection refused
端口不通時(shí),直接聯(lián)系對(duì)方脱惰。
端口通了搏嗡,也不要高興的太早,還需測(cè)試接口是否OK
- 檢測(cè)url
wget http://192.168.220.123:8080/index.jsp
測(cè)試接口地址是否OK拉一,最直觀(guān)的方式就是訪(fǎng)問(wèn)采盒。
本機(jī)和接口服務(wù)器網(wǎng)絡(luò)通暢時(shí)可直接在IE上訪(fǎng)問(wèn),但當(dāng)本機(jī)和接口服務(wù)器的網(wǎng)絡(luò)不可達(dá)時(shí)(通過(guò)跳板機(jī)可訪(fǎng)問(wèn))舅踪,就需要用到命令啦纽甘。
# curl http://192.168.220.126:9051/mock/services/ctms?wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="iptv" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="iptv" xmlns:intf="iptv" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema targetNamespace="iptv" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="CSPResult">
<sequence>
<element name="Result" type="xsd:int"/>
......
到此,接口檢測(cè)完成抽碌。
聰明的人,一定會(huì)問(wèn)决瞳,我第一步就用curl 不就可以了嗎货徙?
是滴,是可以的皮胡。
當(dāng)你curl不ok時(shí)痴颊,你才需要一步步去確認(rèn)問(wèn)題,知道是哪里不通屡贺,而不是僅僅知道接口不通蠢棱。
- 檢測(cè)本機(jī)已有應(yīng)用和端口
netstat
考慮再三,還是放上這條命令甩栈。
netstat用途泻仙,用于查看已開(kāi)啟的端口
# netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.220.125:1521 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5586 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2868 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
- 檢測(cè)防火墻
systemctl status firewall
會(huì)經(jīng)常遇到應(yīng)用啟動(dòng)著,但是IE就是訪(fǎng)問(wèn)不了的問(wèn)題量没。
需要檢查下是不是防火墻開(kāi)著玉转,擋住了端口。
# 已啟動(dòng)
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since 二 2017-03-07 15:05:48 CST; 7s ago
Docs: man:firewalld(1)
Main PID: 97822 (firewalld)
Memory: 20.1M
CGroup: /system.slice/firewalld.service
└─97822 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
3月 07 15:05:48 chances127 systemd[1]: Starting firewalld - dynamic firewall daemon...
3月 07 15:05:48 chances127 systemd[1]: Started firewalld - dynamic firewall daemon.
# 已停止
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
如果防火墻已經(jīng)啟動(dòng)殴蹄,則要看已開(kāi)始的端口有哪些
# firewall-cmd --permanent --zone=public --list-ports
22/tcp
如需要訪(fǎng)問(wèn)的端口不在其中究抓,則可以通過(guò)以下命令來(lái)增加
#firewall-cmd --permanent --zone=public --add-port=3306/tcp
success
#firewall-cmd --permanent --zone=public --list-ports
3306/tcp 22/tcp
祝每個(gè)調(diào)接口的人,都能順順利利地進(jìn)入調(diào)試階段袭灯,將時(shí)間用在正事上刺下,而是等待網(wǎng)絡(luò)調(diào)整。文達(dá)稽荧,這對(duì)你有幫助嗎橘茉?