Linux小白实用命令--网络设置

写给文达,一位上进爱学习的90后IOS程序员。

前一篇:Linux小白实用命令–权限配置

用途:接口调试前检查网络和端口是否通畅。
命令:6个 ,掌握时间:30分钟

ifconfig        #获取本机IP
ping  192.168.220.123       #检测本机到192.168.220.123网络是否通
telnet 192.168.220.123 8080 #检测本机到192.168.220.123的8080端口是否通
netstat         #罗列本机已启动的应用和端口
systemctl status firewall #检测防火墙状态(适用centos7)
curl  http://192.168.220.123:8080/index.jsp        #检测是否可访问到url
  1. 获取本机IP ifconfig
    查IP这件事情,通常是这样的一个场景,SSH连接用的外网IP,但程序需用内网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)
  1. 检测远程服务器 ping
    重要:获取到对方提供的接口信息后,第一步确定接口是否通畅。
    可分三个步骤:1)网络 2)端口 3)接口

    如果网络不通,接下来所有的事情都无法做,很基础、很重要。
    而且对方调整网络是需要时间的,所以不要等自己的接口好了才去看对方的是否准备好,而是对方一提供接口信息,第一步就是检测。

遇到N次对方的网络工程师发来了ip、port,没有做校验,一周后正式调试接口时发现网络是不通的,然后调整网络,这样一周就又过去啦。

#网络通畅
# 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
#网络不通
# 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

这里网络通就OK,如果不通,也不要慌,可能是对方禁ping啦,需进一步进行确认。

  1. 检测远程端口 telnet
    不管是否可用ping通,都需要telnet测试下端口是否通。
# 端口通畅
# 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

端口不通时,直接联系对方。
端口通了,也不要高兴的太早,还需测试接口是否OK

  1. 检测url wget http://192.168.220.123:8080/index.jsp
    测试接口地址是否OK,最直观的方式就是访问。
    本机和接口服务器网络通畅时可直接在IE上访问,但当本机和接口服务器的网络不可达时(通过跳板机可访问),就需要用到命令啦。
#  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"/>
......

到此,接口检测完成。
聪明的人,一定会问,我第一步就用curl 不就可以了吗?
是滴,是可以的。
当你curl不ok时,你才需要一步步去确认问题,知道是哪里不通,而不是仅仅知道接口不通。

  1. 检测本机已有应用和端口 netstat
    考虑再三,还是放上这条命令。
    netstat用途,用于查看已开启的端口
# 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     
  1. 检测防火墙 systemctl status firewall
    会经常遇到应用启动着,但是IE就是访问不了的问题。
    需要检查下是不是防火墙开着,挡住了端口。
# 已启动
# 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)

如果防火墙已经启动,则要看已开始的端口有哪些

#  firewall-cmd --permanent --zone=public --list-ports
22/tcp

如需要访问的端口不在其中,则可以通过以下命令来增加

#firewall-cmd --permanent --zone=public --add-port=3306/tcp
success
#firewall-cmd --permanent --zone=public --list-ports
3306/tcp 22/tcp

祝每个调接口的人,都能顺顺利利地进入调试阶段,将时间用在正事上,而是等待网络调整。文达,这对你有帮助吗?

下一篇:Linux小白实用命令–文件处理

    原文作者:灼灼2015
    原文地址: https://www.jianshu.com/p/7003012847c0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞