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
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
临时修改网卡名称:
ifconfig 网卡名 ip地址/子网掩码
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 ~]#
永久修改

[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 ~]#
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,值越小,路由记录的优先级最高
关于”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):这个路由将不会被接受(用来抵挡不安全的网域!)
添加路由:
删除路由:
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<数据包文件> 把数据包数据写入指定的文件。
输出格式讲解:
第一列:时分毫秒 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地址过程:
-
当客户端加入到局域网中没有地址,会发送一个discover报文,寻找DHCP服务器
-
收到报文的DHCP服务器会回复一个offer报文,并且将配置信息放在offer报文(ip、子网、网关、DNS等)
-
客户机收到offer报文后会将地址等信息配置好,会回复一个request报文
-
服务器收到request报文会发送一个ack报文再次确认
尝试修改DHCP的配置文件
准备:关闭防火墙
[root@localhost ~]#yum install dhcp -y #安装dhcp服务 [root@localhost ~]#rpm -qc dhcp #查看配置文件
[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 #
打开之后大致如此,按照配置格式做小小修改
例子:
简述:subnet—所属网段;netmask—子网掩码;range dynamic-bootp—分配地址段;option routers—网关;option domain-name-servers—DNS服务器地址;