Linux之网络配置详解
前言
Hello,各位码友。新的一天开始了(实话实说,昨天没更新是我感冒了,休息了一天),一起Linux学习打卡吧。不知道近期更新的文章你们是否感兴趣呢?今天我们一起打开Linux学习中的网络配置,希望本次更新的呢呢绒对您有所帮助!!!
喜欢的话点个一键三连支持一下呗。
网络配置
CentOS 7定位与提供服务的网络型操作系统,所以为这款操作系统设置完整的网络参数是至关重要的。
通常,Linux都可以通过两种方式为系统设置网络参数。一种是通过命令设置的方式,这种方式的优点是方便、快捷,并且设置后可以立即生效。但是有一个指明的缺点就是当计算机重启之后所有的设置均失效。另一种是通过修改系统配置文件来实现,这种方式的优点是设置后永久保存,计算机重启后仍有效。缺点是这样的设置不会立即生效,需要重启计算机或相关服务才可以使其生效。
接下来,我们分别学习一下这两种设置网络参数的方法。
命令行设置网络参数
网络接口参数—ifconfig命令
描述:显示设置网络接口信息
用法:ifconfig interface 选项 | 地址
设置ens33这块网卡的IP地址为192.168.130.134,子网掩码为255.255.255.0
[root@CentOSLinux ~]# ifconfig ens33 192.168.130.134 netmask 255.255.255.0
查看ens33这块网卡的接口信息:
[root@CentOSLinux ~]# ifconfig ens33
关闭ens33网卡接口:
[root@CentOSLinux ~]# ifconfig ens33 down
开启ens33网卡接口
[root@CentOSLinux ~]# ifconfig ens33 up
主机名参数—hostnamectl命令
描述:显示或设置系统主机名称。
用法:
hostnamectl [选项]
[root@CentOSLinux ~]# hostnamectl status #查看主机名称及主机信息
[root@CentOSLinux ~]# hostnamectl set-hostname centos.example.com #设置主机名称
路由参数—route命令
描述:显示或设置静态IP路由表
用法:
route [选项]
route add 目标网络 gw 网关地址
route 目标网络
[root@CentOSLinux ~]# route #查看当前路由表
[root@CentOSLinux ~]# route -n
#使用数字地址替代主机名称
[root@CentOSLinux ~]# route add default gw 192.168.0.254 #添加默认网关为192.168.0.254
[root@CentOSLinux ~]# route add -net 172.16.0.0/16 gw 192.168.0.254 #添加指定段的网关
[root@CentOSLinux ~]# route add -net 192.56.76.0 netmask 255.255.255.0 dev ens33 #添加路由记录,指定通过ens33网卡传输到192.56.76.0网段的数据
[root@CentOSLinux ~]# route del default gw 192.168.0.254 #删除默认网关
[root@CentOSLinux ~]# route del -net 172.16.0.0/16 #删除指定网段的网关记录
文件修改网络参数
网络接口参数
CentOS 7 系统中网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-< iface >,其中iface为网卡接口名称,如ens33,。该文件的语法格式如下表所示:
选项 | 功能描述 |
---|---|
DEVICE | 设备名称 |
TYPE | 设备类型 |
BOOTPROTO | 启动协议 |
HWADDR | 硬件地址 |
ONBOOT | 开机是否启动该网卡,对虚拟接口无效 |
IPADDR | IP地址 |
PREFIX | 网络位掩码个数,对虚拟接口无效 |
NETMASK | 子网掩码 |
GATEWAY | 默认网关 |
[root@CentOSLinux ~]#systemctl restart network #重启网络服务使新设置生效
主机名参数
主机名配置文件为/etc/hostname,通过修改该文件实现主机名称的设置
路由参数
通过上面的网卡接口设置网络参数后,可以指定网卡的默认网关,但是无法设定通往特定网段的静态路由信息。此时,需要创建指定网卡的路由配置文件(默认文件不存在),配置文件名称为route< iface-name>,改文件每行对应一条静态路由记录。
网络故障排错
随着IT技术的不断扩展延伸,当网络越来越大时,故障就时有发生,此时我们需要有良好的排错思路与优秀的排错工具。排错的思路为:首先,从最近一次操作定位问题所在,或者根据公司的服务器工作手册查找最近对服务器所做的修改定位关键问题;其次检查这次操作与配置有无错误同时获取与问题相关的信息(如:硬件型号、软件版本、网络拓扑等信息);然后根据所搜集的信息修复问题,修复可以是修改配置文件、替换相应的设备或者进行版本升级等。问题不是一成不变的,单解决问题的思路是大体相同的。
下面介绍几个解决网络配置常见问题的工具
ping
当网络不通时,可以使用简单的ping命令来定位问题节点的位置,一般我们会按照顺序进行ping命令,一次为本地回环、本地IP、网关IP、外网IP,ping 的对象一般都会给予回应。如果没有回应,则表示网络不通(某些环境下,对象主机会禁止被ping),据此来判断网络断点的位置。
traceroute
一个数据包从本地发送后一般会经历多个路由转发数据,如果有一个数据包进入互联网后因为中间某个路由转发有问题,而导致最终的数据发送失败。这种情况下我们并不知道问题路由的位置及IP信息,利用tanceroute可以帮助我们解决这些问题,他可以跟踪数据包的路由过程,以此判断路由所在。Linux下的traceroute默认使用UDP封装跟踪包,如果希望使用ICMP封装,可以使用-I选项。
[root@CentOSLinux ~]# tranceroute -I www.google.com
nslookup
互联网的高速发展,使网络资源出现爆发式的增长。网络本身是使用IP地址来唯一对应网络资源的。单用户是无法记忆这么多得数字IP信息的。所以我们一般会通过域名来访问网络资源,此时DNS就至关重要了,使用nslookup可以帮助检查本地设置的DNS服务器工作是否正常。
输入下面的命令检查本机设置的DNS服务器是否可以解析www. google.com 域名。
[root@CentOSLinux ~]# nslookup www.google.com
Server: 192.168.130.2
Address: 192.168.130.2#53
Non-authoritative answer:
Name: www.google.com
Address: 59.188.250.54
Name: www.google.com
Address: 2001::6ca0:a92e
输出的信息说明本次解析是由192.168.130.2这台DNS服务器提供的。
dig
nslookup仅可以查询域名与IP地址之间的对应关系,如果你需要更多关于DNS记录的信息,可以使用dig命令,查看包括MX(邮件记录)。NS(域名服务器记录)等信息。
[root@CentOSLinux ~]# dig www.google.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56702
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 5 IN A 23.101.24.70
;; Query time: 2012 msec
;; SERVER: 192.168.130.2#53(192.168.130.2)
;; WHEN: 四 4月 01 10:09:34 CST 2021
;; MSG SIZE rcvd: 48
[root@CentOSLinux ~]# dig www.google.com MX
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.google.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28574
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096
;; QUESTION SECTION:
;www.google.com. IN MX
;; AUTHORITY SECTION:
google.com. 5 IN SOA ns1.google.com. dns-admin.google.com. 365995851 900 900 1800 60
;; Query time: 523 msec
;; SERVER: 192.168.130.2#53(192.168.130.2)
;; WHEN: 四 4月 01 10:11:08 CST 2021
;; MSG SIZE rcvd: 93
netstat
如果你怀疑有人非法闯入了你的系统,而你有不知道这个人在哪里时,可以通过netstat强大的网络监控能力找出连接系统的所有人。或是当你启动了一个网络服务后,远程客户却无法访问该服务,我们也可以使用netstat命令查看服务对应的端口是否已经正常开启,来判断服务活动是否正常。
[root@CentOSLinux ~]# netstat -an #查看网络连接状态
tcp 0 0 192.168.130.130:22 192.168.130.1:2257 ESTABLISHED
从上条输出信息可以看出,有一个远程IP(192.168.130.130)使用2257端口,连接了本地22端口。
[root@CentOSLinux ~]# netstat -nutlp #查看当前系统开启端口信息
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1202/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1318/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2740/sshd: sevlvbin
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1626/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1204/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1202/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1318/master
tcp6 0 0 ::1:6010 :::* LISTEN 2740/sshd: sevlvbin
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1204/sshd
udp 0 0 0.0.0.0:893 0.0.0.0:* 731/rpcbind
udp 0 0 192.168.122.1:53 0.0.0.0:* 1626/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1626/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1014/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 0.0.0.0:46247 0.0.0.0:* 723/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 723/avahi-daemon: r
udp6 0 0 :::893 :::* 731/rpcbind
udp6 0 0 :::111 :::* 1/systemd
本次分享就到这里了,你又学废了吗?
喜欢的话,点个一键三连支持一下呗,感激不尽!
希望有所帮助!!!