LINUX网络

LINUX网络

接入网络则需要与网络相关的配置

包括:

  • 主机名

  • IP/netmask

  • 路由:默认网关

  • DNS服务器、主DNS服务器、次DNS服务器、第三个DNS服务器

1、网络配置命令

1.1 ifconfig

ifconfig 查看(已经启用的)网卡

不加选项查看已经启用的网卡

eth0也是网卡名,常用的默认名

“ens33”中的“en”是“EtherNet”的缩写,表示网卡,互联网类型为以太网(局域网中的一种),“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽 编号.

 1  [root@31yml opt]#ifconfig 
 2  ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 3  第一块网卡名  该接口 已启用,支持广播、 正在运行  支持组播         最大传输单元1500字节
 4          inet 192.168.177.100  netmask 255.255.255.0  broadcast 192.168.177.255
 5              IP地址                子网掩码                广播地址
 6          inet6 fe80::98a4:10a3:dd64:5751  prefixlen 64  scopeid 0x20<link>
 7          IPV6地址                        子网长度       作用域 link表示仅该接口有效
 8          ether 00:0c:29:71:c0:8c  txqueuelen 1000  (Ethernet)
 9          mac地址                   传输队列长度(传输缓存大小)接口类型
10          RX packets 86644  bytes 104008359 (99.1 MiB)
11          接收 报文个数      总和字节数
12          RX errors 0  dropped 0  overruns 0  frame 0
13          接收 错误       丢弃        溢出       冲突帧数
14          TX packets 29266  bytes 2244674 (2.1 MiB)
15          发送 报文个数       总字节数
16          TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
17             错误       丢失         溢出        载荷数     冲突数
18  lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
19  回环网卡 inet 127.0.0.1  netmask 255.0.0.0
20          inet6 ::1  prefixlen 128  scopeid 0x10<host>
21          loop  txqueuelen 1  (Local Loopback)
22          RX packets 80  bytes 6224 (6.0 KiB)
23          RX errors 0  dropped 0  overruns 0  frame 0
24          TX packets 80  bytes 6224 (6.0 KiB)
25          TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
26 27  virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
28  虚拟网卡 inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
29          ether 52:54:00:eb:4e:6d  txqueuelen 1000  (Ethernet)
30          RX packets 0  bytes 0 (0.0 B)
31          RX errors 0  dropped 0  overruns 0  frame 0
32          TX packets 0  bytes 0 (0.0 B)
33          TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
View Code

ifconfig -a 看所有包括启用不启用的

添加虚拟网卡:ifconfig 网卡名:编号 ip地址/子网掩码

取消虚拟网卡:ifconfig 网卡名:编号 down

开启:ifconfig 网卡名 up

关闭:ifconfig 网卡名 down

例子:

 1  [root@localhost ~]#ifconfig ens33:0 192.168.177.101
 2  #设置临时虚拟网卡,加上地址
 3  [root@localhost ~]#ifconfig ens33:0 
 4  ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 5          inet 192.168.177.101  netmask 255.255.255.0  broadcast 192.168.177.255
 6          ether 00:0c:29:71:c0:8c  txqueuelen 1000  (Ethernet)
 7  [root@localhost ~]#ifconfig ens33:0 down
 8  #关闭虚拟网卡
 9  [root@localhost ~]#ifconfig ens33:0 192.168.177.101 up
10  #开启,虚拟网卡需要加地址
11  [root@localhost ~]#ifconfig -a
12  #查看所有网卡包括开启的、未开启的
13  [root@localhost ~]#ifconfig -s
14  Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
15  ens33     1500      606      0      0 0           516      0      0      0 BMRU
16  ens33:0   1500      - no statistics available -                        BMRU
17  lo       65536       88      0      0 0            88      0      0      0 LRU
18  virbr0    1500        0      0      0 0             0      0      0      0 BMU
View Code

临时修改网卡名称:

ifconfig 网卡名 ip地址/子网掩码

image-20230803184801110

image-20230803184928536

image-20230803184928536

 

1.2 hostname

hostname 查看主机名、临时修改主机名

hostname [主机名]——临时修改主机名

 [root@localhost ~]#hostname
 localhost.localdomain
 [root@localhost ~]#hostname 31yml
 [root@localhost ~]#exit
 ......
    56  hostname yml
    57  exit
    58  histort
    59  history##临时修改主机名
 [root@yml ~]#
View Code

永久修改

 [root@yml ~]# vi /etc/hostname
 原文:localhost.localdomain#文件里仅第一行生效
 修改后:ky31.localdomain
 [root@yml ~]# reboot
 [root@ky31 ~]#
 #永久修改
 [root@ky31 ~]#hostnamectl set-hostname ky31-31.yml
 [root@ky31 ~]#reboot
 [root@ky31-31 ~]#
View Code

1.3 route

route 查看路由表

route [-n]——将路由记录中的地址信息显示为数字形式

 [root@ky31-31 ~]#route
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 default         gateway         0.0.0.0         UG    100    0        0 ens33
 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
 192.168.177.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
 [root@ky31-31 ~]#route -n
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 目的地址         网关             子网掩码         
 0.0.0.0         192.168.177.2   0.0.0.0         UG    100    0        0 ens33
 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
 192.168.177.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
 #路由表主要构成:
 #Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
 #Genmask:目标网络对应的netmask
 #Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
 #Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
 #Metric: 开销cost,值越小,路由记录的优先级最高
View Code

 

关于”Flags“借用别人的博客(https://blog.csdn.net/Lin_QC/article/details/95206365

U (route is up):该路由是有效的; H (target is a host):目标是一部主机 (IP) 而非网域; G (use gateway):需要透过外部的主机 (gateway) 来转递封包(一般指向默认网关); R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标; D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由 M (modified from routing daemon or redirect):路由已经被修改了; ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)

添加路由:

image-20230803190701748

删除路由:

image-20230803191253801

linux系统有路由转发功能,默认关闭,需要开启(内核调优)

 [root@31yml ~]#vim /etc/sysctl.conf 
 net.ipv4.ip_forward=1#写入此行
 
 #读取修改后的配置
 [root@31yml ~]#sysctl -p
 net.ipv4.ip_forward = 1

1.4 netstat

选项功能
-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n 以数字的形式显示相关的主机地址、端口等信息
-r 显示路由表信息
-l 显示处于监听(Listening)状态的网络连接及端口信息
-t 查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)

 

 [root@ky31-31 ~]#systemctl start httpd
 [root@ky31-31 ~]#netstat -ntap |grep 80
 tcp6       0      0 :::80                   :::*                    LISTEN      284/httpd
 [root@ky31-31 ~]#netstat -ntap |grep ":22"
 tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1459/dnsmasq        
 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1130/sshd           
 tcp        0     36 192.168.177.100:22      192.168.177.1:52550     ESTABLISHED 2633/sshd: root@pts 
 tcp6       0      0 :::22                   :::*                    LISTEN      1130/sshd      

1.5 ss(socket statistics)

ss(是内核里的功能,更快)看当前主机连接状态(IP头部控制位)

 #选项:
 -t: tcp协议相关
 -u: udp协议相关
 -w: 裸套接字相关
 -x:unix sock相关
 -l: listen状态的连接
 -a: 所有
 -n: 数字格式
 -p: 相关的程序及PID
 -e: 扩展的信息
 -m:内存用量
 -o:计时器信息
 -r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。 dns 服务
 [root@ky31-31 ~]#ss |grep "ESTAB"|wc -l
 454

1.6 ping

ping 测试网络连通性,默认长ping,使用ICMP 协议

-c n 选择发送n个包

#-c 选项是发送多少个包
[root@ky31-31 ~]#ping -c 2 192.168.177.100
PING 192.168.177.100 (192.168.177.100) 56(84) bytes of data.
64 bytes from 192.168.177.100: icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from 192.168.177.100: icmp_seq=2 ttl=64 time=0.044 ms

--- 192.168.177.100 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.044/0.051/0.058/0.007 ms

# -W 表示等待10秒
[root@localhost ~]#ping 192.168.91.3 -W 10
PING 192.168.91.3 (192.168.91.3) 56(84) bytes of data.
From 192.168.91.100 icmp_seq=1 Destination Host Unreachable
From 192.168.91.100 icmp_seq=2 Destination Host Unreachable
From 192.168.91.100 icmp_seq=3 Destination Host Unreachable
From 192.168.91.100 icmp_seq=4 Destination Host Unreachable

--- 192.168.91.3 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3002ms
pipe 4


-w   如果ping 不通  2秒后返回 不会再ping

1.7 traceroute

路由追踪

[root@31yml ~]#traceroute 192.168.177.100
traceroute to 192.168.177.100 (192.168.177.100), 30 hops max, 60 byte packets
 1  31yml (192.168.177.100)  0.034 ms  0.004 ms  0.004 ms

1.8 nslookup

域名解析 nslookup

[root@31yml ~]#nslookup www.baidu.com
Server:        8.8.8.8#我使用的域名服务器的地址
Address:    8.8.8.8#53端口号,及使用TCP又使用UDP

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com#别名服务器
Address: 180.101.50.188#别名服务器的地址
Name:    www.a.shifen.com
Address: 180.101.50.242
#通过DNS服务器去访问域名服务器——域名服务器再把结果返回给我的DNS服务器好告诉我

host

[root@31yml ~]#host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.50.242
www.a.shifen.com has address 180.101.50.188
www.a.shifen.com is an alias for www.wshifen.com.

dig

[root@31yml ~]#dig www.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9110
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        941    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    111    IN    A    180.101.50.242
www.a.shifen.com.    111    IN    A    180.101.50.188

;; Query time: 152 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 8月 03 18:38:00 CST 2023
;; MSG SIZE  rcvd: 101

1.9 修改网卡配置文件

网卡文件
[root@31yml ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
BOOTPROTO=static            //网卡获取地址模式
ONBOOT=yes                  //开机是否自启动


IPADDR=192.168.91.105               //配置你自己的IP地址子网网关还有dns服务器
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
DNS1=8.8.8.8
[root@31yml ~]# systemctl restart network         //重启网卡服务 
[root@31yml ~]# ping 192.168.177.1                 //测试网络是否通顺
PING 192.168.177.1 (192.168.177.1) 56(84) bytes of data.
64 bytes from 192.168.177.1: icmp_seq=1 ttl=128 time=0.871 ms
64 bytes from 192.168.177.1: icmp_seq=2 ttl=128 time=0.487 ms
64 bytes from 192.168.177.1: icmp_seq=3 ttl=128 time=0.347 ms


#TYPE:接口类型;常见有的Ethernet, Bridge
#PROXY_METHOD:此配置文件应用到的设备  
#BROWSER_ONLY:
#BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
#DEFROUTE:
#IPV4_FAILURE_FATAL:
#IPV6INIT:
#IPV6_AUTOCONF:
#IPV6_DEFROUTE:
#IPV6_FAILURE_FATAL:
#IPV6_ADDR_GEN_MODE:
#NAME:此配置文件应用到的设备
#UUID:设备的惟一标识
#DEVICE:设备名
#ONBOOT:在系统引导时是否激活此设备
#IPADDR::
#NETMASK:
#GATEWAY:
#DNS1:
修改主机名
[root@yml ~]#vi /etc/hostname 
31yml
[root@yml ~]#reboot
[root@31yml ~]#
域名解析配置文件

本地主机映射文件

[root@31yml ~]#cat /etc/resolv.conf #保存的是DNS服务器的地址
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 218.2.135.1
[root@31yml ~]#cat /etc/hosts#保存主机名与IP地址的映射记录
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

1.10 scp远程拷贝

[root@kgc opt]#scp /opt/passwd root@192.168.91.101:/opt/passwd
              命令字 本地文件地址  对方用户名@地址冒号对面地址
[root@kgc opt]#scp root@192.168.91.101:/opt/passwd  /opt/
               命令字 对方用户名@地址冒号对面地址        本地地址

1.11 ethtool

查看网卡信息

[root@31yml ~]#ethtool -i ens33
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
expansion-rom-version: 
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

[root@localhost ~]#ethtool -p ens33
#让ens33 网卡快速闪烁

1.12 tcpdump抓包工具

tcpdump    option   proto     dir         type
           选项      协议      数据的方向    抓取的数据类型
proto(协议):**     
1. tcp  udp   icmp
2. ip   ipv6
3. arp

#不加选项默认抓第一块网卡
dir(方向):
1. src
2. dst
3. src and   dst

type(类型)

1. host  主机   
2. net  网段
3. port  端口     
4. port range  端口范围
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络接口> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

image-20230803193751993

输出格式讲解:

第一列:时分毫秒 11:53:55.288476

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

DHCP

DHCP分配方式

自动分配:分配到一个IP地址后永久使用;

手动分配:由DHCP服务器管理员专门指定IP地址;

动态分配:使用完后释放该IP,供其它客户机使用

一次获取IP地址过程:

  1. 当客户端加入到局域网中没有地址,会发送一个discover报文,寻找DHCP服务器

  2. 收到报文的DHCP服务器会回复一个offer报文,并且将配置信息放在offer报文(ip、子网、网关、DNS等)

  3. 客户机收到offer报文后会将地址等信息配置好,会回复一个request报文

  4. 服务器收到request报文会发送一个ack报文再次确认

尝试修改DHCP的配置文件

准备:关闭防火墙

image-20230804082614115

[root@localhost ~]#yum install dhcp -y
#安装dhcp服务
[root@localhost ~]#rpm -qc dhcp
#查看配置文件

image-20230804082451484

[root@31yml ~]#cat /etc/dhcp/dhcpd.conf #打开配置文档,根据指引再去找对应位置文件
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

image-20230804083318055

打开之后大致如此,按照配置格式做小小修改

image-20230804083641562

例子:

image-20230804083910186

简述:subnet—所属网段;netmask—子网掩码;range dynamic-bootp—分配地址段;option routers—网关;option domain-name-servers—DNS服务器地址;

image-20230804084425799

正常格式对,就能启动起来;

posted @ 2023-08-04 12:10  Bacolate  阅读(315)  评论(0)    收藏  举报