linux网络基础

linux网络基础linux

学习linux,网络基础尤其关键,这是架设服务器的根基,没有网络,就没有服务。windows

简单介绍下网络经常使用的命令centos

ifconfig:传统的配置网络接口的命令服务器

route:主要是配置路由功能网络

ip:集成了网络接口和路由配置,建议使用这个命令dom

hostname:设置主机名socket

ping:测试网络的连通性xss

hostdns信息查询tcp

nslookupdns解析查询ide

tcpdump:抓包工具,相似wireshark

netstat:查看网络链接状态

ss:查看网络链接状态,推荐使用

 

1      ip路由

网络属于内核的功能,网卡信息内核识别的。

 

网卡命名

网卡在centos6命名规则的配置文件:

/etc/udev/rules.d/70-persistent-net.rules7

能够在这里修改网卡的名字:

clip_image002

 

ip地址:

 

 

私有地址:

A10.0.0.0/8

B172.16.0.0/16-172.31.0.0/16

C 192.168.0.0/24-192.168.255.0/24

A: 255.0.0.0 8

            0 000 0001 - 0 111 1111

            127A类,127用于回环,1-126

            2^7-1A

            容纳多少个主机:2^24-2

            主机位全0:网络地址

            主机位全1:广播地址

B类:255.255.0.0 16

            10 00 0000- 10 11 1111

            128-191

            129.1.0.0.

            130.1.0.0

            64B类,2^14B类网

            容纳多少个主机:2^16-2

C类:255.255.255.0 24

            110 0 0000 - 110 1 1111

            192-223

            32C, 2^21C类网

            容纳多个少个主机:2^8-2

D类:

            1110 0000 - 1110 1111

            224-239

E类:

            240-255 用于科学实验

 

169.254.0.0

            上面这个是当dhcp没有生效以后会自动随机获取的地址,是ICANN组织预留的,和本地私有Ip地址同样(windows

 

网络服务脚本:

Usage: /etc/init.d/network {start|stop|status|restart|reload|force-reload}

 

网络配置文件:

网络功能配置文件:

/etc/sysconfig/network

NETWORKING=yes #是否开启网络功能

HOSTNAME=localhost.localdomain  #主机名

 

网卡配置文件:

/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

DEVICE=: 关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致;

BOOTPROTO={static|none|dhcp|bootp}: 引导协议;要使用静态地址,使用staticnonedhcp表示使用DHCP服务器获取地址;

IPADDR=: IP地址

NETMASK=:子网掩码

GATEWAY=:设定默认网关;

ONBOOT=:开机时是否自动激活此网络接口;

HWADDR= 硬件地址,要与硬件中的地址保持一致;可省;

USERCTL={yes|no}: 是否容许普通用户控制此接口;

PEERDNS={yes|no}: 是否在BOOTPROTOdhcp时接受由DHCP服务器指定的DNS地址;

DNS1= dns服务器地址,也能够配置在这里

DNS2=

 

域名配置文件:

/etc/resolv.conf

nameserver DNS_IP_1

nameserver DNS_IP_2

例子:

[root@localhost ~]# cat /etc/resolv.conf

nameserver 8.8.8.8

nameserver 114.114.114.114

路由配置文件:

/etc/sysconfig/network-scripts/route-ethX

默认是没有的,须要手动新建文件

注意:1           .对应的网络nexthop必定要是这个ethX对应接口IP的网络,否则没法生效

              2.因为默认网关是当配置ip的时候则会生效,假如2个接口,两个网关,建议

                        route add default gw nexthop #来手动指定

                        或者是一个接口不要设置网关便可

添加格式一:

DEST via       NEXTHOP

 

例子

[root@localhost network-scripts]# vi route-eth0

default via 192.168.80.2

192.168.10.0/24 via 172.16.0.1

 

 

添加格式二:

ADDRESS0=

NETMASK0=

GATEWAY0=

例子:

[root@localhost network-scripts]# vi route-eth0

   ADDRESS0=192.168.20.0

   NETMASK0=255.255.255.0

   GATEWAY0=192.168.80.100

1.1    ifconfig

ifconfig

ifconfig命令

功能:配置网络接口ipmtu等相关网卡信息

语法:

                        ifconfig  [ethX]

                        ifconfig ethX IP/MASK [up|down]

                                                配置的ip地址当即生效,可是重启则失效

                                                192.168.1.1/24

                                                192.168.1.1/255.255.255.0

经常使用的选项

                        --a: 显示全部接口的配置住处

                                    默认是up的网络接口

设置虚拟辅助网卡:

            ifconfig eth0:1 192.168.1.1/24 up

删除虚拟辅助网卡

            ifconfig eth0:1 down  

 

例子:

1.显示开启的网卡up

ifconfig

2.显示全部的网卡

ifconfig –a

3显示特定的网卡

ifconfig eth0

4.设置网卡ip地址

ifconfig eth0 192.168.1.1/24 up

ifconfig eth0 192.168.1.10/255.255.255.0 up

1.2    route

route

route命令

功能:配置和查看路由(临时生效)

语法:

                        查看路由 route –n

                        添加路由 route add {-host|-net} DEST gw NEXT-HOP [dev ethX]

                        删除路由 route del {-host|-net} DEST

其中default  == 0.0.0.0/0

 

例子:

1.查看路由

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.80.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth1

169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1

2.添加主机路由

[root@localhost ~]# route add -host 192.168.10.8 gw 172.16.0.1

3.添加网络路由

[root@localhost ~]# route add -net 192.168.100.0/24 gw 172.16.0.1 dev eth1

4.添加默认路由

[root@localhost ~]# route add default gw 192.168.80.2

clip_image004

5.删除主机路由,网络路由和默认路由

[root@localhost ~]# route del default

[root@localhost ~]# route del -host 192.168.10.8

[root@localhost ~]# route del -net 192.168.100.0

[root@localhost ~]# route del -net 192.168.100.0/24

clip_image006

 

 

1.3    ip

 

ip

ip命令

功能:集成ifconfigroute的功能

语法:

            ip [ OPTIONS ] OBJECT { COMMAND | help }

              经常使用object

                                    link:网络接口属性

                                    addr:协议地址

                                    route:路由

                        link

                                    show

                                                ip [–s]link show [dev] #显示接口统计信息

                                    set

                                                            ip link set dev [up|down]  #启动关闭接口

                                                            ip link set dev mtu length  #设置接口IPmtu大小,以太网要小于1500

ip link set dev name  devname #设置dev的名字

注意:修改网卡名字,须要先关闭网卡,修改完成,重启

                        addr

                                               

                                    add

                                                            ip addr add ADDRESS dev DEV

                                                                                                broadcast {地址|+  #+是有系统根据这个设置自行计算

                                                                                                                        若是不指定,则广播地址为全0

                                                                                                label name 设备设置一个别名,例如eth00

                                                                                                scope :

                                                                                                                        global:容许全部的链接

                                                                                                                        site:只容许ipv6,来自本机的链接

                                                                                                                        link :只容许本设备的自我链接

                                                                                                                        host:只容许本机内部链接

                                                                                                                        默认是这个globe,经过ip addr show

                                                                        ip addr add 172.16.0.1/16 dev eth2 broadcast 172.16.255.255

                                                                        ip addr add 172.16.0.2/16 broadcast 172.16.255.255 dev eth2 label eth2:1# secondary地址

                                    del

                                                            ip addr del ADDRESS dev DEV

                                                                                    broadcast {地址|+  #+是有系统根据这个设置自行计算

                                                                                                label name 设备设置一个别名,例如eth00

                                                                                                scope :

                                                                                                global:容许全部的链接

                                                                                                                        site:只容许ipv6,来自本机的链接

                                                                                                                        link :只容许本设备的自我链接

                                                                                                                        host:只容许本机内部链接

                                                                                                                        默认是这个global 确定使用global

                                                            删除地址只要能惟一指定该地址便可,不须要写出全命令

                                                                        ip addr del 172.16.0.2/16  dev eth2

                  ip addr del 172.16.0.2/16 broadcast 172.16.255.255 dev eth2 label eth2:1

                                    show

                                                            ip addr show dev DEV

                                                                        利用这个就能够查询到一个网卡的辅助ipip addr show dev eth0

                                                                        或者是这个ifconfig能够查询到

                                                                         ip addr show

                                                                         ip addr show  eth0

                                    flush   删除

                                                            ip addr flush dev DEV to PREFIX

                                                            ip addr flush dev eth0 to 10.28.28/24 即删除了

                        route

                                               

                                    show

                                                            ip route show|list

                                    add

                                                            ip addr add DEST via NEXTHOP dev DEV

                                                                        ip route add 192.168.10.0/24 via 192.168.80.8 dev eth0

                                                                        ip route add default via 192.168.80.2

                                                                        注意:这个下一跳必定要和这个出接口是同个网段的,默认路由不用指定出接口

del

                                                            ip addr del DEST

                                                                        ip route del 192.168.10.0/24

                                                                        ip route del default

                                    replace

                                                            ip addr replace DEST via NEXTHOP dev DEV

                                                                        ip route replace 192.168.10.0/24 via 192.168.80.80 dev eth0

 

                       

经常使用的选项

            -s :统计更多输出数据 == ifconfig eth0

例子:

link的设置

1.设置接口的mtu值为1480

[root@fireward ~]# ip link set dev1 mtu 1488

2.显示接口的信息

[root@fireward ~]# ip link show eth1

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1488 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:3e:58:cd brd ff:ff:ff:ff:ff:ff

3.修改eth1的名字为mydev,并修改mtu1500

[root@fireward ~]# ip link set dev eth1 down

[root@fireward ~]# ip link set eth1 name mydev

[root@fireward ~]# ip link show mydev

3: mydev: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1488 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:3e:58:cd brd ff:ff:ff:ff:ff:ff

[root@fireward ~]# ip link set mydev mtu 1500

注意:修改了网卡名字以后,经过服务service network restart重启对其无效,能够手动重启

addr的设置

 

route的设置

 

1.4    ethtool

 

ethtool

ethtool命令

功能:显示网络接口的属性信息

语法:

            ethtool [options] dev

           

经常使用的选项

                        -S :显示网络接口的统计信息

例子:

1.显示这个接口的电器信息等

clip_image007

2显示网络接口的统计信息

clip_image008

 

1.5    traceroute命令

traceroute

traceroute命令

功能:跟踪路由通过的节点

语法:

                        traceroute IP|HOST

 

mtr

mtr命令

功能:动态跟踪路由通过的节点

语法:

                        mtr IP|HOST

 

 

2      ping

ping

ping命令

功能:查看网络的连通性

语法:

                        ping  [option]  ip

经常使用的选项

                        -c num :设定ping的次数,默认一直ping

                        -s packetssize : 包大小

                        -i  :设置ping包的发送interval  root才有权限设置小于0.2s

                        -n:  只是输入这个ip ,不去域名解析,快速,推荐

                        -t ttl set the ip  time to livettl

                        -W num :等待对方响应的秒数

                        -M {do|dont}: 主要检测网络的MTU数值的大小

                                    do: 不让这个数据包从新拆装和打包

                                    dont:表明不传送这个DF标志,表示数据包能够从新拆包和打包

例子:

#ping 8个包

ping -c 8 8.8.8.8 

#设置ttl值为2,丢失

            ping -t 2 8.8.8.8

#不作域名解析,速度比较快

            ping -n 168.95.1.1

#ping主机,会作域名解析

            ping www.baidu.com

#0.02s发送一个icmp

            ping -i 0.02 8.8.8.8

#等待对方0.3秒的时间来响应数据包

            ping -W 0.3 8.8.8.8

#发送数据包大小为1000,数量为2,不拆封数据包的icmp

            ping -c 2 -s 1000 -M do www.baidu.com #找出最大的MTU

            若是有响应就是能够接收,若是无响应就是这个mtu太大了

 

 

3      dns相关的命令

linux服务器指定dns服务器的方法为:/etc/resolv.conf

/etc/resolv.conf

nameserver DNS_IP_1

nameserver DNS_IP_2

clip_image009

指定本地域名解析/etc/hosts文件

配置格式为:主机IP   主机名  主机别名

                        192.168.80.250   www.test.com

 

host

host命令

功能:dns解析工具,能够ip-host  host-ip

语法:

                        host [OPTION]  server

经常使用的选项

                        -a  :显示详细信息

                        -T 使用tcp查询  默认是53udp

                -w seconds  :等待时间

                        -t RT  :查询名称的解析结果

                                                RT A NS  SOA SIG CNAME

例子:

1.解析谷歌的域名服务器

clip_image011

clip_image013

2.查看百度的A记录对应的dns服务器ip

clip_image014

3.查看百度的NS服务器

clip_image015

 

 

 

nslookup

nslookup命令

功能:直接或者交互查询名称服务器,ip-host  host-ip

语法:

                        nslookup  #交互

                        nslookup [option] server

经常使用的选项

                        -query=typemxcname A}:查看对应记录的名称对应服务器ip

           

 

例子:

1.直接查询谷歌域名服务器的域名为

 

clip_image017

2.查询百度的ns服务器

clip_image018

3.交互查询

clip_image019

clip_image020

 

 

4      tcpdump

tcpdump

tcpdump命令

功能:数据包捕获工具

语法:

                        tcpdump [-AennqX] [-i 接口] [-w 存储文件名]

                        [-r 文件] [所要摘取的数据包数据格式]

默认是不中止一直监听的

经常使用的选项

                        -A:数据包的内容以ASCII码打印,一般用来抓取WWW服务

                        -c packets :exit 知道收到这么多的包后

                        -e :使用数据链路层的MAC数据包来显示

                        -i interface : 监听的网络接口

                        -n :能够防止使用域名解析,速度快

                        -nn:直接使用ip:port ,不使用这个域名服务

                        -r file :从这个file文件读出数据包文件,经过-w保存的文件

                        -w 存储的文件名:把抓到的数据包保存成这个文件

                        -q quick quite output,输入简短的数据包信息

                        -X 十六进制输出hex  ASCII 数据包信息,这个就相似wireshark查看密码信息了

                        -XX :输出十六进制的ASCII数据包信息,包括包头

所要摘取的数据包数据格式:

                         host ip

                         host hostname

                         src host hostname|ip

                         dst host hostname|ip

                         src net netnum

                         dst net netnum

                         tcp port num

                         udp port num

                         ip host ip

                         gateway host

                         {ip|icmp|igrp|rip|udp|tcp}

逻辑组合 and or not

例子:

1.捕获eth0接口的全部数据包到屏幕

[root@fireward ~]# tcpdump -i eth0

2.捕获发送给目的ip192.168.80.253的数据包

[root@fireward ~]# tcpdump host 192.168.80.253

3.抓取特定协议的数据包

# tcpdump -i eth1 -nn  arp
# tcpdump -i eth1 –X  ip
# tcpdump -i eth1 –XX tcp
# tcpdump -i eth1 –nn udp
# tcpdump -i eth1 –v icmp

4.截获主机210.27.48.1 和主机210.27.48.2 210.27.48.3的通讯

tcpdump host 210.37.28.11 and \(218.119.10.2 or 118.52.25.20\)

5.若是想要获取主机210.27.48.1除了和主机210.27.48.2以外全部主机通讯的ip

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

6.将捕获的数据包保存到文件中

[root@fireward ~]# tcpdump -nn -XX  -i eth0  -w /tmp/test tcp port 22

7.将保存的特定的文件读取出来,直接打开没法查看

[root@fireward ~]# tcpdump -r /tmp/test

5      TCP相关命令

5.1    三次握手四次断开图解

clip_image021

clip_image022

 

 

5.2    netstat

netstat

netstat命令

功能:查看网络链接状态,路由,接口等统计信息

语法:

                        netstat [option]

经常使用的选项

                        -r :打印路由表  == route –n

                        -t :显示tcp数据包链接

                        -u :显示udp的数据包链接

                        -l :显示正在监听的服务

                        -a:显示全部链接

                        -n:直接显示FQDN ip:port,不作域名解析

                        -p:显示进程号和进程名

                        -c:每隔一秒显示一次,相似监控

                                                建议使用命令watch –n second command 来监控

                                                watch –n 2 netstat –ntup

            统计类信息显示:

                          -r 统计路由表信息

                  -g:统计多播组的信息

                  -i:统计all network interfaces tableinformation

 

例子:

1.显示当前的路由表

clip_image024

2.显示正在监听的tcpudp链接,显示pid

[root@localhost ~]# netstat –ntlpu

3.显示本机全部的网络链接,包括socket

[root@localhost ~]# netstat -an

5.3    ss

ss

ss命令

功能:显示linux网络链接的状态,同netstat,信息更详细

语法:

                        ss [option]

经常使用的选项

                        -a  :显示全部套接字

                        -l :显示正在监听的套接字

                        -n  :不作域名解析

-p  :显示套接字进程信息

                        -t 只显示tcp链接

                        -u  :只显示udp链接

-o :显示套接字计时器信息,已创建的链接

                        -m :显示套接字的内存使用状况,已创建的链接

                        -V :显示版本

                        -h  :显示帮助信息

                        -4  :只显示ipv4

                        -6 只显示ipv6

 

 

 

 

例子:

 

1.显示已经创建的链接的计时器信息

clip_image026

2.显示已经创建的链接的内存使用状况

clip_image028

3. 过滤tcp链接状态中源端口或目的端口是22

clip_image030

相关文章
相关标签/搜索