Linux—网络设置


前言

查看及测试网络配置是管理 Linux 网络服务的第一步,只有在配置好网络环境的基础下才能更好的进行服务。本篇文章主要介绍 Linux 系统的网络基础设置 ,对于 Linux 初学者有一定的帮助,有需要的朋友可以了解一下。


一、查看网络配置

1.查看网络接口地址

使用 ifconfig 命令可以查看网络接口的地址配置信息

  • 查看活动的网络接口设备
[root@localhost ~]#ifconfig                 #不带任何选项和参数时,显示当前主机中已启用的网络接口信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.24.129  netmask 255.255.255.0  broadcast 192.168.24.255
        inet6 fe80::88c5:1c37:ef02:f37f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d2:bb:c5  txqueuelen 1000  (Ethernet)
        RX packets 269  bytes 189230 (184.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 114  bytes 14502 (14.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
  • 上面输出结果中,ens33 表示第一块以太网卡的名称。“ens33” 中的“en”是“EtherNet”的缩写,表示网卡类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号。
  • lo:“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”。回环地址通常仅用于对本机的网络测试
  • 如果想要查看所有网络接口信息,只需要在 ifconfig 命令的后面加上 -a 即可,如下
[root@localhost ~]#ifconfig -a
  • 查看指定的网络接口信息
    当只需要查看其中某一个网络接口的信息时,可以使用网络接口的名称作为参数,例如,查看网卡 ens33 的配置信息:
[root@localhost ~]#ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.24.129  netmask 255.255.255.0  broadcast 192.168.24.255
        inet6 fe80::88c5:1c37:ef02:f37f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d2:bb:c5  txqueuelen 1000  (Ethernet)
        RX packets 1357  bytes 553644 (540.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 317  bytes 33584 (32.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

上面输出结果中,可以得到 ens33 网卡的一些基本信息,如下所述。

  • inet:表示网络接口的 IP 地址
  • ether:表示网络接口的物理地址,即 MAC 地址。
  • broadcast:表示网络接口所在的网络的广播地址
  • netmask:表示网络接口的子网掩码

除此以外,还能通过“TX” “RX”等信息了解通过该网络接口发送和接收的数据包个数、流量等属性。

2.查看路由表条目

  • Linux 系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排查网络故障的关键信息。
  • 直接执行 route 命令可以查看当前主机中的路由表信息
[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
192.168.24.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 列对应下一跳路由器的地址
③Iface 列对应发送数据的网络接口

  • 结合“-n”选项使用,可以将路由记录中的地址显示为数字形式
[root@localhost ~]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.24.2    0.0.0.0         UG    100    0        0 ens33
192.168.24.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

3.查看网络连接情况

通过 netstat 命令可以查看当前系统得网络连接状态、路由表、接口统计等信息。也是了解网络状态及排除网络服务故障的有效工具。

#netstat  [选项]
  • 常用选项如下
选项说明
-a显示当前主机中所有活动的网络连接情况
-n以数字的形式显示相关的主机地址、端口等信息
-r显示路由表信息
-l显示处于监听状态的网络连接及端口信息
-t查看TCP协议相关信息
-u显示UDP协议相关信息
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
  • 通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息。
  • 结合命令管道使用 “grep” 命令可以在结果中过滤出所需要的特定记录,例如,查看本机中是否有监听“TCP80”端口的服务程序:
oot@localhost ~]#netstat -anpt | grep ":80"

二、测试网络连接

1.测试网络连通性

  • 使用 ping 命令可以向目的主机持续发送测试数据包,并反馈结果,按CTRL+C组合键可以终止测试。
[root@localhost ~]#ping 192.168.2.9
PING 192.168.2.9 (192.168.2.9) 56(84) bytes of data.
64 bytes from 192.168.2.9: icmp_seq=1 ttl=128 time=1.08 ms
64 bytes from 192.168.2.9: icmp_seq=2 ttl=128 time=1.01 ms
64 bytes from 192.168.2.9: icmp_seq=3 ttl=128 time=0.911 ms
64 bytes from 192.168.2.9: icmp_seq=4 ttl=128 time=2.39 ms
^C
--- 192.168.2.9 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3017ms
rtt min/avg/max/mdev = 0.911/1.351/2.391/0.603 ms
  • 若不能获得从主机发回的反馈数据包,则表示在本机到目标主机之间存在网络连通性故障
  • 当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)时,会频繁看到“Request timeout” 的反馈结果,表面与目标主机间的连接超时。除此之外,防火墙限制时也可能收到这个反馈结果。

2.跟踪数据包的路由途径

  • 使用 traceroute 命令可以测试从当前主机到目的主机之间经过哪些网络节点,并显示各中间节点的连接状态(响应时间)。
  • 对于无法响应的节点,连接状态将显示为“ * ”。

例如,通过以下操作结果可以看出,从本机到目标主机192.168.2.9之间,中间需跨越一个路由器192.168.24.2。

[root@localhost ~]#traceroute 192.168.2.9
traceroute to 192.168.2.9 (192.168.2.9), 30 hops max, 60 byte packets
 1  gateway (192.168.24.2)  0.143 ms  0.104 ms  0.084 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  *^C                    #和 ping 命令一样可以使用CTRL+C组合键终止
  • traceroute 命令比 ping 命令更加准确地定位网络连接的故障点(中断点),执行速度也因此会比ping 命令稍慢。
  • 在网络测试与排错过程中,通常会先使用 ping 命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用traceroute 命令跟踪查看是在哪个中间节点存在故障。

3.测试 DNS 域名解析

  • 当域名解析出现异常时,将无法使用域名的形式访问网络中的 Web 站点或电子邮件系统等服务。
  • nslookup 命令是用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可。

例如,执行“nslookup www.google.com”命令后,nslookup程序将提交查询请求,询问站点 www.google.com对应的IP地址是多少。

[root@localhost ~]#nslookup www.google.com
Server:		192.168.24.2                      #所使用的 DNS 服务器
Address:	192.168.24.2#53

Non-authoritative answer:                     #下面是 DNS 解析的反馈结果
Name:	www.google.com
Address: 66.220.155.14
  • 若能够成功反馈要查询域名的 IP 地址,则表示域名解析没有问题,否则需要根据实际反馈情况来判断故障原因。
  • 例如,若出现“······no servers could be reached"的信息,表示不能连接到指定的DNS服务器
  • 若出现“······ can’t find xxx.yyy.zzz:NXDOMAIN”的信息,表示要查询的域名不存在。

三、设置网络地址参数

1.使用网络配置命令

1.1 修改网卡的地址、状态

ifconfig命令不仅可以用于查看网卡配置,还可以修改网卡的IP地址、子网掩码,也可以绑定虚拟网络接口、激活或停用网络接口。

  • 修改网卡的 IP 地址、子网掩码

命令格式如下所示

ifconfig    网络接口名称 IP地址   [ netmask 子网掩码]
或者
ifconfig    网络接口名称 IP地址   [/子网掩码长度]
  • 禁用、激活网络接口
    需要临时禁用或者重新激活指定的网络接口时,需要结合“down"“up”开关选项,如下
[root@localhost ~]#ifconfig ens33 down                   #禁用           
[root@localhost ~]#ifconfig ens33 up                     #激活
  • 为网卡绑定虚拟接口
[root@localhost ~]#ifconfig ens33:0 192.168.22.155     #虚拟接口为ens33:0  IP地址为192.168.22.155
[root@localhost ~]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.24.129  netmask 255.255.255.0  broadcast 192.168.24.255
        inet6 fe80::88c5:1c37:ef02:f37f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d2:bb:c5  txqueuelen 1000  (Ethernet)
        RX packets 25539  bytes 18427788 (17.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3919  bytes 315605 (308.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.22.155  netmask 255.255.255.0  broadcast 192.168.22.255
        ether 00:0c:29:d2:bb:c5  txqueuelen 1000  (Ethernet)
                                            #可以根据需要添加更多的虚拟接口,如“ens33:1” “ens33:2”等

1.2 添加、删除静态路由记录

route命令不仅可以用于查看路由表信息,还可用来添加、删除静态的路由表条目,其中当然也句括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)。

  • 通过 “route add” 操作可以添加路由记录,结合 “-net” 选项指定目标网段的地址,结合 “gw” 选项指定下一跳路由器的IP地址。
    例如,若要使本机访问另一个网段192.168.3.0/24的数据包都发给192.168.4.254,可以执行以下操作。需要注意的是,默认网关的IP地址应该与本机其中一个接口的IP地址在同一个网段内。
[root@localhost ~]#route add -net 192.168.3.0/24 gw 192.168.4.254      #添加静态路由
[root@localhost ~]#route -n                                            #确认添加的路由条目
  • 通过 “route del” 操作可以删除路由记录,只要结合 “-net” 选项指定对应路由记录中目标网段的地址即可。
    例如,执行以下操作可以删除前面添加到192.168.3.0/24 网段的静态路由条目。
[root@localhost ~]#route del -net 192.168.3.0/24
[root@localhost ~]#route -n
  • 添加、删除默认网关记录
    添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用“default” 表示即可,无须再使用 “-net” 选项指明网段地址。例如,执行以下操作将先删除已有的到 192.168.4.1 的默认网关记录,再添加到192.168.4.254 的默认网关记录。
[root@localhost ~]#route del default gw 192.168.4.1         #删除默认网关记录192.168.4.1
[root@localhost ~]#route add default gw 192.168.4.254       #添加新的默认网关记录192.168.4.254

注意:同一个主机的路由表中只应有一条默认网关记录,若同时存在多条,可能导致该主机的网络连接出现故障

2.修改网络配置文件

如果想要使 Linux 主机在重启系统以后仍然能够使用相同的网络配置,那么直接修改配置文件是最好的方法。

2.1网络接口配置文件

  • 网络接口的配置文件默认位于目录“letc/sysconfig/network-scripts/”中
  • 文件名格式为 “ifcfg-XXX” ,其中 “XXX” 是网络接口的名称。

例如,网卡 ens33 的配置文件是 “ifcfg-ens33”,回环接口 lo 的配置文件是 “ifcfg-lo”。

[root@localhost ~]#ls /etc/sysconfig/network-scripts/ifcfg-*
/etc/sysconfig/network-scripts/ifcfg-ens33  
/etc/sysconfig/network-scripts/ifcfg-lo

在网卡的配置文件 ifcfg-ens33 中,可以看到设置静态IP地址的部分内容如下

[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33              #设置网络接口的名称
ONBOOT=yes                #设置网络接口是否在 Linux 系统启动时激活
BOOTPROTO=static          #设置网络接口的配置方式为静态(dhcp为动态获取 IP 地址)
IPADDR=192.168.4.1        #设置网络接口的 IP 地址
NETMASK-255.255.255.0     #设置网络接口的子网掩码
GATEWAY-192.168.4.2       #设置网络接口的默认网关地址

2.2 启用、禁用网络接口配置

  • CentOS 7系统使用命令 systemctl restart network.service 重新启用所有的网络接口。
  • 如果只是想禁用、启用某一个网络接口(而不是所有接口),可分别使用两个接口控制脚本 ifdown、ifup。

例如,执行以下操作将会先关闭 ens33 网卡,然后再根据配置文件启用 ens33 网卡。

[root@localhost ~]#ifdown ens33                          #关闭
[root@localhost ~]#ifup ens33                            #开启
[root@localhost ~]#ifdown ens33 && ifup ens33            #重启

2.3 主机名称配置文件

  • CentOS 7 版本中的主机名配置文件变为/etc/hostname文件
  • systemd 的命令 hostnamectl 用于修改此文件信息

格式如下

[root@localhost ~]#hostnamectl set-hostname  [名字]
[root@localhost ~]#hostname                          #查看主机名
或者
[root@localhost ~]#vim /etc/hostname

2.4 域名解析配置文件

  • 指定为本机提供 DNS 解析的服务器地址:

① /etc/resolv.conf 文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。

②Linux系统中最多可以指定3个(第3个以后的将被忽略)不同的 DNS 服务器地址,优先使用第1个 DNS服务器。

例如,执行以下操作可以指定默认使用的两个 DNS 服务器地址分别位于 202.106.0.20 和 202.106.148.1。

[root@localhost~]# vim/etc/resolv.conf
search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1

③ resolv.conf 文件中的 “search localdomain” 行用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。

  • 本地主机映射文件

① /etc hosts 文件中记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询。

例如,若在 /etc/hosts 文件中添加 “119.75.218.70 www.baidu.com” 的映射记录,则当访问网站 www.baidu.com 时,将会直接向IP地址 119.75.218.70 发送 Web 请求,省略了向 DNS 服务器解析 IP 地址的过程。

[root@localhost~]#cat /etc/hosts
127 .0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
......
119.75.218.70  www.baidu.com

②对于经常访问的一些网站,可以通过在 /etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而能提高上网速度。

③如果添加了错误的映射记录,则可能会导致网站访问出现异常。

④正因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络。

总结

上面就是我对 Linux 网络基础设置的一些总结,希望能给需要的人提供一些帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头发莫的了呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值