热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【笔记】IP地址详解、Linux网络及常用命令

IP地址IP地址基本概念IP地址(InternetProtocolAddress)是指互联网协议地址,又译为网际协议地址。IP地址在网

IP地址


IP地址基本概念

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP地址在网络层将不同的物理网络地址统一到了全球唯一的IP地址上(屏蔽物理网络差异),是唯一标识互联网上计算机的逻辑地址(相当于手机号码,可以通过唯一的手机号码找到手机),所以IP地址也被称为互联网地址(可见其重要性)。

IP地址格式

我们目前常用的IPv4中规定,IP地址长度为32位二进制,在表示时,一般将32位地址拆分为4个8位二进制,再转为4个十进制数表示,每个数字之间用点隔开,如127.0.0.1(localhost),这种描述方式被称为“点-数表示法”。IP地址层次:分为网络号和主机号两个层次。网络号表示主机所属网络,主机号表示主机本身。网络号与主机号的位数与IP地址分类有关。

IP地址组成: 32位二进制组成 点分十进制
11111111 11111111 11111111 11111111
255.255.255.255

二进制在线转换
https://www.xiao84.com/tools/103105.html

二进制转换十进制
二进制 十进制
00000001 ===== 1
00000010 ===== 2
00000100 ===== 4
00001000 ===== 8
00010000 ====== 16
00100000 ====== 32
01000000 ====== 64
10000000 ====== 128
 1   1  1   1 1 1 1 1
128 64 32 16 8 4 2 1

二进制转十进制将每一位为1的二进制进行相加得到十进制

例:
0 1 0 0 0 1 0 1 ======= 等于十进制 69
 64     4   1             64+4+1=69
1   0 1 0 0 0 0 0 ======= 等于十进制 160
128   32                 128+32=160

十进制转换二进制
192 转换成8位二进制 做从前往后相减 能减成功则为1
例:
192-128=64
64-64=0
1 1 0 0 0 0 0 0
在这里插入图片描述
            IP地址十进制与二进制对应关系

在这里插入图片描述

在这里插入图片描述


IP地址分配

IP地址分配的基本原则是:要为同一网络(子网、网段)内不同主机分配相同的网络号,不同的主机号。


IP地址类型

#公有地址
    公有地址(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。全球唯一,不能出现重复.

#私有地址
    私有地址(Private address)属于非注册地址,专门为组织机构内部使用。缓解了地址枯竭 是可以重复使用的(不同局域网内)

#以下列出留用的内部私有地址
     A类 10.0.0.0–10.255.255.255
     B类 172.16.0.0–172.31.255.255
     C类 192.168.0.0–192.168.255.255

需要实现配置私网地址的服务器可以访问外网(互联网)???

NAT — 网络地址转换技术(化妆),将私网地址转换为公网地址


IP地址常见分类

#A类IP地址

    一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。

A类IP地址 地址范围1.0.0.1到127.255.255.254 (二进制表示为:00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111110)。最后一个是广播地址。

A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777212台。

11111111 11111111 11111111 11111111
-----------  -------------------------------------
 网络位    主机位(可用的IP地址)
子网掩码: 255.0.0.0 子网掩码决定了IP地址可用数量

网络位: 前3个8位不能变 相当于区域 海淀区 昌平区
主机位: 最后8位二进制 为主机位 可用IP地址数量 1-254
1 1 1 1 1 1 1 1 不同的组合方式表示不同的IP地址
128 64 32 16 8 4 2 1 = 255 广播255地址不能用

#B类IP地址

    一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。

B类IP地址地址范围128.0.0.1-191.255.255.254 (二进制表示为:10000000 00000000 00000000 00000001----10111111 11111111 11111111 11111110)。 最后一个是广播地址。

B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台。

B类地址
11111111 11111111 11111111 11111111
------------------------ ------------------------
      网络位          主机位
子网掩码: 255.255.0.0

#C类IP地址

    一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。

C类IP地址范围192.0.0.1-223.255.255.254 (二进制表示为: 11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111110)。

C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台

C类地址
11111111 11111111 11111111 11111111
------------------------------------- -----------
网络位 主机位
子网掩码: 255.255.255.0

#D类地址用于多点广播(Multicast)。

    D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。

#E类IP地址

以“llll0”开始,为将来使用保留。


特殊的IP地址

1.每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;

2.IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;

3.IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。

4.IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。

5.169.254.0.0~169.254.255.255,是开启了dhcp服务的设备但又无法获取到dhcp的会随机使用这个网段的ip


子网掩码

子网掩码又叫网络掩码、地址掩码

    上面我们说到IP地址分为网络号与主机号,但是路由如何区分网络号与主机号呢?就需要通过子网掩码。子网掩码必须与IP地址结合使用,A、B、C类的子网掩码分别为255.0.0.0,255.255.0.0与255.255.255.0(网络号字节为255,主机号字节为0)。

    也就是说给你一个IP地址,那么怎么知道它的网络号和主机号各是多少位呢?

    如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现

    子网掩码的重要作用:就是将某个IP地址划分成网络地址和主机地址两部分。

    子网掩码的位数就是网络的位数。A类网络的网络位数是8位,子网掩码就是255.0.0.0,B类网络的网络位数是16位,子网掩码是255.255.0.0,C类是24位,255.255.255.0。

例:不同子网下的主机能否直接通信(是否在同一网络/段下)

假设两个IP地址分别是172.20.0.18和172.20.1.16,子网掩码都是255.255.255.0。

我们可以知道两者的网络标识分别是172.20.0和172.20.1,无法直接通信,也就无法PING通。要想能相互通信,需要将子网掩码改成255.255.0.0

如何理解172.20.1.0/18
在这里插入图片描述


为什么要子网划分**

一个大的地址范围区域,你不进行划分的时候,会造成地址浪费
一个大的地址范围区域,可能会产生大量广播风暴,影响主机性能
一个大的地址访问区域,可能会造成网关路由器负载过高

将一个大的网段切割成一个一个小的局域网段,就称为子网划分

一个网段中可以有多少个地址=2的n次方-2 n表示的就是这个网段中有多少个主机位
-2 表示网络地址不能用 表示广播地址不能用
一个局域网中的地址在使用时要预留一个作为网关地址

在这里插入图片描述

网络位向右移动,占用主机位,即向主机位借位,生成新的网络位

其中/16就表示了子网掩码所指定的网络位个数,A类一般是/8 B类一般是/16 C类/24

;在这里插入图片描述


示例:

子网划分: 将大的网段分成多个独立的小的子网 避免IP地址浪费

172.16.0.0 B类IP 子网掩码 255.255.0.0

子网掩码二进制:

11111111 1111111 00000000 0000000
----------------------  --------------------------
     网络位          主机位

划分两个子网 往后借1

11111111 11111111 10000000 0000000 /16 变为/17

我们向主机位借的1表示方式 两种 0 1

网络位表示方式两种:

第一种:

11111111 11111111 0 0000000 00000000 -------> 转换为十进制 172.16.0

可用IP地址数量:

11111111 11111111 0 0000000 00000001 --------> 172.16.0.1

11111111 11111111 0 0000000 00000010 ---------> 172.16.0.2

11111111 11111111 0 0000000 11111110 -----------> 172.16.0.254

11111111 11111111 0 0000001 11111110 ------------> 172.16.1.1—172.16.1.254

11111111 11111111 0 0000010 11111110 ------------>172.16.2.1—172.16.2.254

11111111 11111111 0 1111111 11111110 ------------>172.16.127.1-172.16.127.254

第二种:

11111111 11111111 1 0000000 00000000 ------> 转换十进制 172.16.128

子网掩码: 表示网络位全为1 往后借了1位 所以掩码16变为17位

11111111 11111111 1 0000000 00000000 ------> 转换十进制 255.255.128.0

可用IP地址数量:

11111111 11111111 1 0000000 00000000

11111111 11111111 1 0000000 00000001 ------> 172.16.128.1

11111111 11111111 1 0000000 00000010 ------> 172.16.128.2

11111111 11111111 1 0000000 11111110 ------> 172.16.128.254

11111111 11111111 1 0000001 11111110 ------> 172.16.129.1-172.16.129.254

11111111 11111111 1 0000010 11111110 ------> 172.16.130.1-172.16.130.254

11111111 11111111 1 0000011 11111110 ------> 172.16.131.1-172.16.131.254

11111111 11111111 1 1111111 11111110 ------> 172.16.255.1-172.16.255.254

172.16.128.1-172.16.255.254



企业中避免公网IP地址浪费 运营商如何给我们分配公网

注意: 云服务器 直接购买公网IP地址即可

1.新开通的专线业务 需要公网IP地址 办理专线运营商免费送的5个IP地址

2.服务器需要配置公网IP地址

运营商或者IDC机房给我们一个划分好的子网:

116.63.0.10/28

将对应的IP地址配置到需要公网的服务器上


http://www.ab173.com/net/subnetmask.php # 在线子网IP计算


在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


网关

网关(Gateway)又称网间连接器,就是一个网络连接到另一个网络的“关口”。

    网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。

    所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。


抓包方式

*抓包方式:wireshark抓包软件在Windows中使用*

*Linux抓包命令tcpdump是一个抓包工具,用于抓取互联网上传输的数据包*
    tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
    tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息

#常用选项

-i     #监听哪一个网卡
-n    #不把ip解析成主机名
-nn   #不把端口解析成应用层协议
-c    #指定抓包的数量
-S    #不把随机序列和确认序列解析成绝对值
-w    #将流量保存到文件中,文件中的信息是无法直接查看的
-r     #读取文件中的内容
-v     #输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv   #输出详细的报文信息。

用法:

1、默认启动
tcpdump -vv #普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

2、过滤主机
tcpdump -i eth1 host 192.168.1.1 #抓取所有经过eth1,目的或源地址是192.168.1.1的网络数据
tcpdump -i eth1 src host 192.168.1.1 #指定源地址,192.168.1.1
tcpdump -i eth1 dst host 192.168.1.1 #指定目的地址,192.168.1.1

3、过滤端口
tcpdump -i eth1 port 80 #抓取所有经过eth1,目的或源端口是80的网络数据
tcpdump -i eth1 src port 80 #指定源端口
tcpdump -i eth1 dst port 80 #指定目的端口

4、协议过滤
tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 icmp

#抓tcp某端口的数据包

tcpdump -i eth0 tcp port 21 -nn

5、常用表达式

非 : ! or “not” (去掉双引号)

且 : && or “and”

或 : || or “or”

#抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数

tcpdump -i eth1 ‘((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))’

#抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据

tcpdump -i eth1 ‘((icmp) and ((ether dst host 00:01:02:03:04:05)))’

#抓取所有经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据

tcpdump -i eth1 ‘((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))’


通过Linux系统连接Linux系统 使用ssh连接 [root@b13k ~]# ssh 10.0.0.200



案例:无法连接服务器如何使用抓包工具排查

在公司连接云服务器
公司连接IDC机房
1)确认安全组放行
2)确认服务器的防火墙放行
3)确认服务器有公网IP正常
4)tcpdump检查
    例如: tcpudmp -i eth0 port 12345
         在企业笔记本上进行远程连接
         cmd命令 或者 xshell的本地连接
         telnet 服务器的公网IP 12345

问题1: 来源IP地址和自己公司的公网IP地址对应不上
看公司公网IP地址:
百度输入IP
网址: ip138.com
linux curl cip.cc
问题2: 数据包能进来 但是没有回复 服务器防火墙第三方安全软件或者安全组问题


Linux常用网络命令


网卡命令规则

CentOS-6之前基于传统的命名方式如:eth1,eth0…

Centos-7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名是全自动的、可预知的,缺点是比eth0、wlan0更难读。比如enp5s0

biosdevname和net.ifnames两种命名规范

#net.ifnames的命名规范为:
设备类型+设备位置+数字

#设备类型:
    en 表示Ethernet
    wl 表示WLAN
    ww 表示无线广域网WWAN

#实际的例子:
    eno1              #板载网卡
    enp0s2            #pci网卡
    ens33              #pci网卡
    wlp3s0            #PCI无线网卡
    wwp0s29f7u2i2     #4G modem
    wlp0s2f1u4u1      #连接在USB Hub上的无线网卡

#biosdevname的命名规范为:
根据系统BIOS提供的信息对网络接口进行重命名。
    em[1-N] #表示主板(嵌入式)NIC (对应机箱标签)
    pci  #表示PCI插槽中的卡,端口1至N

实际的例子:
    em1 #板载网卡
    p3p4 #pci网卡
    p3p4_1 #虚拟网卡

CentOS-7
默认内核参数(biosdevname=0(dell服务器默认是1),net.ifnames=1): 网卡名 “enp5s2”
biosdevname=1,net.ifnames=0:网卡名 “em1”
biosdevname=0,net.ifnames=0:网卡名 “eth0” (最传统的方式,eth0 eth1)

#定义网卡命令规则
在安装系统时,选择安装选项,按tab键,在跳出的一行内容后面添加net.ifnames=0 biosdevname=0

#命令行设置网卡名称规则

[root@b13k ~]# cd /etc/sysconfig/network-scripts/ #修改网卡配置文件
[root@b13k network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@b13k network-scripts]# sed -i "s#ens33#eth0#g" ifcfg-eth0
[root@b13k ~]# vim /etc/sysconfig/grub #GRUB添加kernel参数
GRUB_CMDLINE_LINUX="...net.ifnames=0 biosdevname=0 quiet"
[root@b13k ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@b13k ~]# reboot #重启系统生效

网卡配置文件详解

#动态ip

[root@b13k ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="fb32c09d-5a9f-40b9-852b-0f44ff2202ed"
DEVICE="eth0"
ONBOOT="yes"

#静态ip

[root@b13k ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.88"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.254"
DNS1="223.5.5.5"
DNS2="223.6.6.6"

#详解:

TYPE=Ethernet #网卡类型,一般是Ethernet,还有其他的如bond,bridgeBOOTPROTO=dhcp #获取IP地址的方式,启动的协议,获取配置的方式。dhcp表示动态获取static或none表示静态手工配置,若想使用本地配置好的IP则应该设置成这个DEFROUTE=yes #是否设置默认路由,若为yes则可以在该文件通过PREFIX这个参数来设置子网掩码 PEERDNS=yes #yes表示由DHCP来获取DNS, no表示/etc/resolv.conf来控制,默认为yes。yes:如果DNS设置,修改/etc/resolv.conf中的DNSno:不修改/etc/resolv.conf中的DNSNAME=eth0 #这个参数对应的值是网卡名,是给用户看的UUID=... #通用唯一识别码,若vmware克隆的虚拟机无法启动网卡可以去除此项DEVICE=eth0 #系统逻辑设备名ONBOOT=yes #开机启动时是否激活网卡设备,centos7装完网卡后默认设置成noHWADDR=... #以太网硬件地址,mac地址)。若是vmware克隆的虚拟机无法启动网卡,也要改这个。NM_CONTROLLED=yes #是否通过NetworkManager管理网卡设备IPADDR=... #设置网卡对应的IP地址,网络服务启动,网卡激活后会自动将该地址配置到网卡上前提(BOOTPROTO=static)而不是dhcpPREFIX=24 #子网掩码长度,不要这么写PREFIX=255.255.255.0NETMASK=255.255.255.0 #生产环境中一般用这种方式指定子网掩码GATEWAY=10.0.0.254 #该网卡配置的IP对应的网关(默认路由)若主机是多网卡设备,该参数只能在一个网卡配置文件里面出现,一台主机只有一个默认路由DNS1=... #主DNS,若这里设置了值,则会优先于/etc/resolv.conf中设置的DNS服务器的地址需要和“PEERDNS=no”配合使用DNS2=... #次dnsUSERCTL=no #USERCTL=yes/no是否允许非root用户控制该设备IPV6INIT=no #是否启用IPV6BROADCAST=... #广播地址PROXY_METHOD=none #代理方式,一般不用这个参数BROWSER_ONLY=no #没有什么用。#修改网卡配置文件的方法vim /etc/sysconfig/network-scripts/ifcfg-eth0nmtui #需要开启NetworkManger

网络管理命令


ping

ping命令主要的功能是用来检测网络的连通情况和分析网络速度。

#常用选项

    -t     #持续ping,不中断。不加该选项只ping4个包。
    -c    #ping的包数,默认是4个。
    -W   #多长时间ping一次。
    -f    #极速ping。

windows ping命令默认4个包
-w 回复超时时间
ping www.baidu.com -t 持续ping 一直不停的ping
ping -n 10 www.baidu.com ping10个包
企业中网络服务器丢包严重: ping -n 100 www.baidu.com

Linux 默认持续ping
-c 指定包的个数

[root@lb01 ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=11.4 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=128 time=12.1 ms

-W 回复超时时间

[root@lb01 ~]# ping -c2 -W1 www.sina.com
PING spool.grid.sinaedge.com (123.126.45.205) 56(84) bytes of data.
64 bytes from 123.126.45.205 (123.126.45.205): icmp_seq=1 ttl=128 time=6.69 ms
64 bytes from 123.126.45.205 (123.126.45.205): icmp_seq=2 ttl=128 time=5.44 ms

nc

nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具

#常用选项

-l #用于指定nc将处于侦听模式。-u #指定nc使用UDP协议,默认为TCP-v #输出交互或出错信息,新手调试时尤为有用-w #超时秒数,后面跟数字 -z #表示zero,表示扫描时不发送任何数据

nmap

企业: 扫描内部服务器开启哪些服务和端口号并且计算每个服务占所有服务的百分比(安全工作)

Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具。Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。

#常用选项
    -p          #指定端口号
    -p22        #单个端口
    -p22,80     #多个端口
    -p1-1000    #1到1000之间的端口
1、nmap 主机地址—— 对基本服务和端口进行扫描
2、nmap -sT 主机地址——对TCP进行端口扫描
netstat -a——通过对每个端口进行tcp连接来确定端口是否存在(有点:精确度高)
3、nmap -sS 主机地址——对SYN进行端口扫描(使用频率高)
同理也可以使用netstat -a 命令SYN连接来确定发端口是否存在
4、nmap -sU 主机地址——对UDP进行端口扫描
同理也可以使用netstat -a命令对UDP连接来确定端口是否存在
5、nmap -F 主机地址——仅扫描常用的100个端口
6、nmap -p 端口范围 主机地址——在端口范围内扫描
7、nmap -r 主机地址 ——按照端口从小到大的顺序扫描
8、nmap 主机地址 -oX mysacn.xml——将扫描主机的结果保存在mysacn.xml中
9、xsltproc mysacn.xml -o myscan.html——将myscan的文件类型xml改为html
10、nmap -sV 主机地址——识别端口服务程序的版本信息
11、nmap -O 主机地址——识别操作系统
12、nmap -sC 主机地址——端口脚本扫描
13、nmap -A 主机地址——强力扫描,此操作可能会较慢,它将会扫描服务版本信息(-sV)、操作系统(-O)、脚本扫描(-sC)
14、nmap -sA 主机地址 ——TCP ACK扫描
15、nmap -sI 主机地址——TCP ldle扫描
16、nmap -sn 主机地址——对目标进行ping 检测,不进行端口扫描
17、nmap -sP 主机地址——仅仅对目标进行Ping检测
18、nmap --System-dns 主机地址——对系统的服务器dns进行扫描


telnet

一种远程登录的工具。同样可以检查某个主机是否开启某个端口

#用法(Windows CMD)

[C:\~]$ telnet 10.0.0.99 22Connecting to 10.0.0.99:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_7.4

netstat 重要 查看端口是否启动
netstat -tnulp

打印网络连接、路由表、tcp11种状态。

#常用选项
  -l    #只显示监听套接字。
  -n   #不做名字解析
  -t    #显示tcp端口
  -u   #显示udp端口
  -p   #显示pid和程序名字
  -r    #显示路由表
  -a   #显示所有的套接字


ss

跟netstat命令差不多。

#常用选项
-l #只显示监听套接字。
-n #不做名字解析
-t #显示tcp端口
-u #显示udp端口
-p #显示pid和程序名字
-r #解析主机名
-a #显示所有的套接字


tracert

(windows) 路由跟踪(检查你与目标之间每个路口是否畅通)

#常用选项

    -d #禁止把IP解析为对应的域名(主机名)


traceroute

路由跟踪(检查你与目标之间每个路口是否畅通)

#常用选项
     -n 禁止把IP解析为对应的域名(主机名)


iftop

iftop界面说明:

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

中间的<&#61; &#61;>这两个左右箭头&#xff0c;表示的是流量的方向。

TX&#xff1a;发送流量
RX&#xff1a;接收流量
TOTAL&#xff1a;总流量
Cumm&#xff1a;运行iftop到目前时间的总流量
peak&#xff1a;流量峰值
rates&#xff1a;分别表示过去 2s 10s 40s 的平均流量

#常用选项
  -i   #设定监测的网卡
  -B  #以bytes为单位显示流量(默认是bits)
  -n  #使host信息默认直接都显示IP
  -P  #使host信息及端口信息默认就都显示
  -m  #设置界面最上边的刻度的最大值&#xff0c;刻度分五个大段显示

按q退出监控。


dstat -nf

一流量监控


route

route命令用于显示和操作IP路由表
查看路由网关
查看网卡配置文件 cat /etc/sysconfig/network-scripts/ifcfg-eth0
使用命令查看网关:

[root&#64;b13k ~]# route -n # 必须安装net-tools网络工具包
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 eth0



删除默认网关 &#xff08;临时&#xff09;

[root&#64;b13k ~]# route del default gw 10.0.0.2
[root&#64;b13k ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1



配置一条默认网关 去往任意的地址 走 10.0.0.254 &#xff08;临时&#xff09;

[root&#64;b13k ~]# route add default gw 10.0.0.254
[root&#64;b13k ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0[root&#64;b13k ~]# ip route replace default via 10.0.0.2
[root&#64;b13k ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1



通过配置静态路由的方式配置网关 &#xff08;临时&#xff09;
配置一条去往 192.168.0.0/24 网关 10.0.0.254

[root&#64;b13k ~]# ip route add 192.168.0.0/24 via 10.0.0.254
[root&#64;b13k ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
192.168.0.0 10.0.0.254 255.255.255.0 UG 0 0 0 eth0



删除路由:

[root&#64;b13k ~]# ip route del 192.168.0.0/24 via 10.0.0.254



配置默认的路由:

[root&#64;b13k ~]# ip route add 0/0 via 10.0.0.2
[root&#64;b13k ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1



删除路由

[root&#64;b13k ~]# ip route del 0/0 via 10.0.0.2
[root&#64;b13k ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1

网卡配置多个IP地址: 一个网卡支持多IP地址 临时配置重启失效
永久生效写入rc.local中 &#xff08;给执行权限&#xff09;


ip addr

[root&#64;b13k ~]# ip addr add 10.0.0.202/24 dev eth0 # 给eth0网卡添加一个IP地址
[root&#64;b13k ~]# ip addr del 10.0.0.202/24 dev eth0 #删除一个IP地址

netstat -tnulp

查看当前进行服务的端口号

[root&#64;b13k ~]# netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1198/sshd

推荐阅读
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
author-avatar
无痕
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有