主机的网络接口卡(网卡)通常称为"网络接口"
查看所有活动网络接口的信息
当ifconfig命令不带任何选项和参数时,将显示当前主机中已启用(活动)的网络接口信息
例如:[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 20.0.0.47 netmask 255.255.255.0 broadcast 20.0.0.255
inet6 fe80::20c:29ff:fe41:715 prefixlen 64 scopeid 0x20
ether 00:0c:29:41:07:15 txqueuelen 1000 (Ethernet)
RX packets 83 bytes 9965 (9.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 104 bytes 12658 (12.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 68 bytes 5896 (5.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 5896 (5.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:29:91:24 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:第一块以太网卡的名称
inet 192.168.197.161 :IP地址
netmask 255.255.255.0 :子网掩码
broadcast 192.168.197.255 :广播地址
ether 00:0c:29:c3:77:97 : MAC地址
lo:是 loopback 的缩写,不是真正的网络接口,而是一个虚拟的网络接口,lo 的IP地址默认为 “127.0.0.1”。
回环地址通常测试TCP/IP协议是否正常
virbro:虚拟桥接网卡
[root@localhost ~]# ifconfig -a
ens33: flags=4163 mtu 1500
inet 20.0.0.47 netmask 255.255.255.0 broadcast 20.0.0.255
inet6 fe80::20c:29ff:fe41:715 prefixlen 64 scopeid 0x20
ether 00:0c:29:41:07:15 txqueuelen 1000 (Ethernet)
RX packets 138 bytes 14438 (14.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 152 bytes 17796 (17.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 68 bytes 5896 (5.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 5896 (5.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:29:91:24 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0-nic: flags=4098 mtu 1500
ether 52:54:00:29:91:24 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
当只需查看其中一个网络接口的信息时,可以使用网络接口的名称作为ifconfig命令的参数,不论该网络接口是否处于激活状态
[root@localhost ~]# ifconfig ens33
ens33: flags=4163 mtu 1500
inet 20.0.0.47 netmask 255.255.255.0 broadcast 20.0.0.255
inet6 fe80::20c:29ff:fe41:715 prefixlen 64 scopeid 0x20
ether 00:0c:29:41:07:15 txqueuelen 1000 (Ethernet)
RX packets 184 bytes 18008 (17.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 189 bytes 23894 (23.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
方法一:echo "192.168.195.2" > /etc/resolv.conf
方法二:vim /etc/sysconfig/network-scripts/ifcfg-ens33
最后一行添加 DNS1="192.168.195.2"
[root@localhost ~]# hostname
localhost.localdomain
localhost:主机名
localdomain:域
[root@localhost ~]# hostnamectl set-hostname yasuo ###永久修改主机名
[root@localhost ~]# su
[root@yasuo ~]#
[root@localhost ~]# hostname yasuo ###临时修改主机名
[root@localhost ~]# bash
[root@yasuo ~]#
除此之外还有永久修改主机名:vim /etc/hostname
route命令
查看或设置主机中路由表信息
route [-n] ###加-n是以数字化显示
linux系统中的路由表决定着从本主机向其他主机,其他网络发送数据的去向,是排除网络故障的关键信息
[root@yasuo ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Destination列对应目标网段的地址
Gateway列对应下一跳路由器地址
Genmask列对应子网掩码
Iface列对应发送数据的网络接口
目标网段为default时,表示此行时默认网关记录
[root@yasuo ~]# route -n ###表示以数字的形式显示
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 20.0.0.2 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
发现默认网段不再为default,而是改变为0.0.0.0,由此看出-n的作用
'netstat命令基本格式'
netstat [选项]
常用选项
-a:显示当前主机中所有活动的网络连接信息(包括监听,非监听状态的服务端口)
-n:以数字的形式显示相关的主机地址,端口等信息
-p:显示与网络连接相关联的进程号,进程名称信息('该选项需要root权限')
-t:查看TCP协议相关信息
-u:显示UDP协议相关的信息
-r:显示路由信息
-l:显示处于监听(listening)状态的网络连接及端口信息
[root@yasuo ~]# netstat -ntap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 7506/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 7338/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6914/sshd
.....省略部分内容
[root@yasuo ~]# netstat -ntap |grep 80
tcp 0 36 20.0.0.47:22 20.0.0.1:58095 ESTABLISHED 7902/sshd: root@pts
[root@yasuo ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
多用于高并发性的连接,而netstat不用在上万的并发连接
ss命令格式
ss [选项]
常用选项
-t:查看TCP协议相关信息
-u:显示UDP协议相关的信息
-n:取消服务名称,改为端口号
-l:显示处于监听(listening)状态的网络连接
-p:显示与网络连接相关联的进程号
-a:显示当前主机中所有活动的网络连接信息(包括监听,非监听状态的服务端口)
-r:与-n相反,以名称的方式显示(默认是r)
[root@yasuo ~]# ss -lant
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
ESTAB 0 36 20.0.0.47:22 20.0.0.1:58095
.....省略部分内容
ping命令格式
ping [选项] 目标主机
命令基本格式
ping [选项] 目标主机
[root@yasuo ~]# ping www.baidu.com
PING www.wshifen.com (104.193.88.77) 56(84) bytes of data.
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=1 ttl=128 time=179 ms
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=2 ttl=128 time=179 ms
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=3 ttl=128 time=178 ms
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=4 ttl=128 time=178 ms
^C
--- www.wshifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 178.244/178.772/179.182/0.408 ms
‘按Ctrl+C 组合键终止ping测试’
‘反馈目标主机不可达:可能目标地址不存在或主机已经关闭’
‘反馈 网络不可达:表示没有可用的路由记录,如网关,无法到达目标主机所在网络’
‘反馈 请求超时:表示数据到达对方,但回不来’
测试从当前主机到目标主机之间经过的网络节点
对于无法响应的节点,连接状态将显示为*
traceroute命令比ping命令更准确的定位网络连接的故障点(中断点),执行速度也因此比ping命令慢
在网络测试与排错过程中,通常先用ping命令测试,若发现网络连接故障,在使用traceroute命令跟踪查看故障节点
命令基本格式
traceroute 目标主机地址
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (112.80.248.75), 30 hops max, 60 byte packets
1 gateway (20.0.0.2) 0.061 ms 0.034 ms 0.071 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
测试DNS域名解析,将域名解析为IP地址
命令基本格式
nslookup 目标主机地址 [DNS服务器地址]
[root@yasuo ~]# nslookup www.baidu.com
Server: 8.8.8.8 ###所使用的DNS服务器
Address: 8.8.8.8#53 ###DNS服务器地址以及端口
Non-authoritative answer: ###以下为DNS解析的反馈结果
www.baidu.com canonical name = www.a.shifen.com.
www.a.shifen.com canonical name = www.wshifen.com.
Name: www.wshifen.com
Address: 104.193.88.77 ###百度地址
Name: www.wshifen.com
Address: 104.193.88.123 ###百度地址
TCP 53用于连接DNS服务器(安全)
UDP 53用于解析DNS(快速)
用法与nslookup基本相同,是linux专有的命令,微软没有,与nslooup相比,显示的更加详细,基本都是用dig命令
[root@localhost ~]# dig www.baidu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54038
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 779 IN CNAME www.a.shifen.com.
www.a.shifen.com. 30 IN A 112.80.248.76
www.a.shifen.com. 30 IN A 112.80.248.75
;; Query time: 10 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 7月 02 21:52:52 CST 2020
;; MSG SIZE rcvd: 101
ifconfig 接口名 IP地址 [netmask 子网掩码]
ifconfig 网络接口 IP地址[/掩码长度]
例如:
[root@localhost ~]# ifconfig ens33 10.10.10.10/24
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 10.10.10.10 netmask 255.255.255.0 broadcast 10.10.10.255
..省略内容
或者
[root@localhost ~]# ifconfig ens33 12.12.12.12 netmask 255.255.255.0
ifconfig 网络接口 up
ifconfig 网络接口 down
例如
[root@localhost ~]# ifconfig ens33 down '临时禁用ens33网卡'
[root@localhost ~]# ifconfig
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 596 bytes 51824 (50.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 596 bytes 51824 (50.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ac:c5:4f txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig ens33 up '重新激活ens33网卡'
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 20.0.0.47 netmask 255.255.255.0 broadcast 20.0.0.255
inet6 fe80::20c:29ff:fe41:715 prefixlen 64 scopeid 0x20
ether 00:0c:29:41:07:15 txqueuelen 1000 (Ethernet)
RX packets 2545 bytes 3525746 (3.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 655 bytes 51557 (50.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的IP地址,但是又不能够覆盖掉原本的IP地址而导致服务程序不可用。
此时可以为网卡绑定一个虚拟的网络接口,然后在位虚拟接口配置新的IP地址(相当于一个网卡配置多个IP地址)
ifconfig 接口名:序号 IP地址
[root@localhost ~]# ifconfig ens33:1 11.11.11.11
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 20.0.0.47 netmask 255.255.255.0 broadcast 20.0.0.255
inet6 fe80::20c:29ff:fe41:715 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:41:07:15 txqueuelen 1000 (Ethernet)
RX packets 149939 bytes 223699714 (213.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27870 bytes 1716558 (1.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 11.11.11.11 netmask 255.0.0.0 broadcast 11.255.255.255
ether 00:0c:29:41:07:15 txqueuelen 1000 (Ethernet)
使用route命令不仅可以用于查看路由表信息,还可以用来添加,删除静态的路由表条目,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)
默认网关的IP地址应该与本机其中一个接口的IP地址在同一个网段内
route add -net 网段地址 gw IP地址(下一跳)
例如
[root@localhost ~]# route '原本的路由条目'
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@yasuo ~]# route add -net 192.168.100.0/24 gw 192.168.122.2
[root@yasuo ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.100.0 192.168.122.2 255.255.255.0 UG 0 0 0 virbr0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@yasuo ~]# route del -net 192.168.100.0/24
[root@yasuo ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]# route add default gw 20.0.0.30 ###添加到20.0.0.30的默认网关记录
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 20.0.0.30 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 20.0.0.2 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.10.0 20.0.0.2 255.255.255.0 UG 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
route del default gw IP地址 ###删除到20.0.0.30的默认网关记录
[root@localhost ~]# route del default gw 20.0.0.30
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 20.0.0.2 0.0.0.0 UG 100 0 0 ens33
20.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.10.0 20.0.0.2 255.255.255.0 UG 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
/etc/sysconfig/network-scripts/目录下
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-lo
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
..省略部分内容
BOOTPROTO="dhcp" '设置网络接口的配置方式,值为 static 表示使用静态指定的IP地址,值为 dhcp 表示 通过dhcp的方式动态获取地址'
DEVICE="ens33" '设置网络接口的名称'
ONBOOT="yes" '设置网络接口是否在Linux系统启动时激活'
IPADDR="20.0.0.47" '设置网络接口的IP地址'
NETMASK="255.255.255.0" '设置网络接口的子网掩码'
GATEWAY="20.0.0.2" '设置网络接口的默认网关地址'
DNS1=8.8.8.8 '设置DNS'
[root@localhost ~]# systemctl restart network
或者
[root@localhost ~]# service network restart
[root@localhost ~]# ifdown ens33 '关闭网卡'
成功断开设备 'ens33'。
[root@localhost ~]# ifup ens33 '启用网卡'
/etc/resolv.conf文件
保存本机需要使用的DNS服务器的IP地址
对该文件所做的修改会立刻生效
Linux系统中最多可以指定3个(第三个以后将被忽略)不同的DNS服务器地址,优先使用第一个DNS服务器
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
/etc/hosts文件
保存主机名与IP地址的映射记录
一般用来保存经常需要访问的主机的信息
hosts文件和DNS服务器的比较
默认情况下,系统首先从hosts文件查找解析记录
当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到在去向DNS服务器查询
因为hosts文件只保存在本地
在/etc/hosts文件中添加正确的映射记录(经常访问的一些网站),减少了DNS查询,提高了上网速度
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
6.6.6.6 www.baidu.com '这是新添加的,当访问网站www.baidu.com时,就会直接向IP地址211.168.31.80发送web请求,省略了向DNS服务器解析IP地址的过程'