基础-Linux网络
配置
DNS相关
Liux下DNS相关配置有三个位置:
- /etc/hosts 这里可以直接配置域名对应的IP,优先级最高
- /etc/sysconfig/network-scripts/ifcfg-ens192 对应网卡的DNS配置,优化级其次
- /etc/resolv.conf 默认DNS配置,优化级最低
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192 |grep DNS
DNS1="172.18.0.1"
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.18.0.1
网络接口相关
Linux网络接口相关配置文件:
## ifcfg-xxx 其中xxx就是对应的网络接口名称(一般可以理解为网卡)
[root@localhost ~]# ll /etc/sysconfig/network-scripts/|grep ifcfg
-rw-r--r--. 1 root root 405 Oct 25 09:21 ifcfg-ens192
-rw-r--r--. 1 root root 254 May 22 2020 ifcfg-lo
在RedHat中,系统网络设备的配置文件保存在/etc/sysconfig/network-scripts目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。在启动时,系统通过读取这个配置文件决定某个网卡是否启动和如何配置。
下面是 /etc/sysconfig/network-scripts/ifcfg-eth0文件的示例:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
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="ens192"
UUID="419bbe26-26e6-462e-a516-44984cf87ff2"
DEVICE="ens192"
ONBOOT="yes"
IPADDR="172.18.4.130"
PREFIX="24"
GATEWAY="172.18.4.254"
DNS1="172.18.0.1"
IPV6_PRIVACY="no"
主机名相关
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# cat /etc/sysconfig/network
# Created by anaconda
HOSTNAME=localhost.localdomain130
## 以上配置文件都可能是主机名配置文件,不同的Linux发行版本可能使用的配置文件不同
命令
ip 显示并设置Linux中静态路由表
ip命令 用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
网络
-
ifconfig 配置和显示Linux系统网卡的网络参数
ifconfig命令 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
-
netstat 查看Linux中网络系统状态信息
netstat命令 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
-
ping 测试主机之间网络的连通性
ping命令 用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常
路由
-
arp arp 命令用于显示和修改 IP 到 MAC 转换表
-
route 显示并设置Linux中静态路由表
route命令 用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在
/etc/rc.local
中添加route命令来保证该路由设置永久有效。
域名
-
nslookup,host,dig 都是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。
nslookup命令 是常用域名查询工具,就是查DNS信息用的命令。nslookup有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。
例子
查看路由表
[root@localhost ~]# route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.4.254 0.0.0.0 UG 100 0 0 ens192
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
# 下面输出的数据共有八个字段,您需要注意的有几个地方:
# Destination :其实就是 Network(目标网络) 的意思;
# Gateway :就是该接口的 Gateway(默认网关)!若为 0.0.0.0 表示这是个接口内的局域网;
# Genmask :就是网络掩码啦!与 Destination 组合成为一部主机或网域;
# Flags :共有多个旗标可以来表示该网域或主机代表的意义:
# U:代表该路由可用;
# G:代表该网域需要经由 Gateway 来帮忙转递;
# H:代表该行路由为一部主机,而非一整个网域;
# Iface :就是 Interface (接口) 的意思。
Destination | Gateway | Genmask | Flags | Metric | Ref | Use | Iface |
---|---|---|---|---|---|---|---|
0.0.0.0 | 172.18.4.254 | 0.0.0.0 | UG | 100 | 0 | 0 | ens192 |
172.17.0.0 | 0.0.0.0 | 255.255.0.0 | U | 0 | 0 | 0 | docker0 |
172.18.4.0 | 0.0.0.0 | 255.255.255.0 | U | 100 | 0 | 0 | ens192 |
第一行表示:任意目标IP为任意IP的数据包都可以走这条路由,然后通过网关172.18.4.254由接口ens192转发到局域网外。如目标IP为101.11.23.44的IP数据包就会走这条路由(其他两条路由表无法匹配)
第二行表示:目标网络号为172.17.0.0/16的IP数据包通过docker0在局域网172.17.0.0/16内转发
第三行表示:目标网络号为172.18.4.0/24的IP数据包通过ens192在局域网172.18.4.0/24内转发
查找域名对应IP
## 查找域名对应IP
[root@localhost ~]# nslookup www.baidu.com
Server: 172.18.0.1
Address: 172.18.0.1#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
www.a.shifen.com canonical name = www.wshifen.com.
Name: www.wshifen.com
Address: 103.235.46.40
MTU
最大传输单元MTU(Maximum Transmission Unit,MTU),MTU是数据链路层的概念。是指网络能够传输的最大数据包大小,以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径上途经的某台设备所能够承受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。如果太小,那实际传送的数据量就会过小,影响传输效率。
参考资料