Linux下的网络配置和DNS服务

本文深入讲解Linux下的网络配置,包括IP地址、子网掩码、网络位与主机位的概念,以及如何通过各种命令行工具和文本编辑进行网络设定。探讨了网络通信的基本原则,以及如何在虚拟机和真实主机间搭建路由器和设置网关,实现跨网段通信。此外,还介绍了DNS服务的设定方法,确保域名解析的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下的网络配置

一、认识IP

1、什么是IP ADDRESS

              全称(internet protocol ADDRESS )意思是网络进程地址。

IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他的地址,这样邮递员才能把信送到。

计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。

只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。

2、IP的表示

    ip是由32个01组成

11111110.11111110.11111110.11111110 = 254.254.254.254

3、子网掩码(分为网络位和主机位)

用来划分网络区域

子网掩码非0的位对应的ip上的数字表示这个ip的网络位

子网掩码0位对应的数字是ip的主机位

网络位表示网络区域

主机位表示网络区域里某台主机

 

4、Ip通信判定

网络位一致,主机位不一致的2个IP可以直接通讯

172.25.254.1/24      子网掩码24=255.255.255.0

    网络位   / 子网掩码

        172.25.254.2/24

   172.25.0.1/16         子网掩码16=255.255.0.0

GATEWAY   PREFIX

二、网络设定

         网络设定工具

 

    ping ##检测网络是否通畅

        1、 ifconfig 查看或设定网络接

              ifconfig device ip/24   进行设定IP(暂时设定

                     device:网络接口,可以为eth0,eth

             ifconfig device down /up  关闭/开启IP

 

 

        2、   ip addr检测或设定网络IP   

            ip addr 检测或设定网络接口

            ip addr show 检测

            ip addr add ip/24 dev device 设定   (暂时设定IP)

            ip addr flush eth0 更改ip(刷空之前所有的ip)

   "注意: device的名字一个物理事实,是啥名字就是啥,eth0/eth1"

           3、图形设置IP(永久)

        nm = NetworkManager,图形方式改了ip重启网络(有可能)不生效     

             nm-connection-editor            进行网络设定

               systemctl stop NetworkManager      关闭网络管理

               systemctl restart network          重启  

               systemctl start NetworkManager  

nmtui命令进行设定

丑一点的图形化界面,其实类似于nm-connection-editor

 4、命令方式设定网络         

            systemctl     start     NetworkManager必须开启网络管理

          nmcli device connect eth0       启用eth0网卡

         nmcli device disconnect eth0     关闭eth0网卡

          nmcli device show eth0             查看网卡信息

          nmcli device status eth0           查看网卡服务接口信息

 

       用nm-connection-editor改名称为hello 

       nmcli connection show       查看网络

        nmcli connection down hello    关闭名称为hello网卡

       nmcli connection up hello          启用名称为hello网卡

       nmcli connection delete hello     删除

           nmcli 设定网卡

 nmcli connection add type ethernet con-name hello ifname eth0 ip4 172.25.254.100/24

               对应nm-connection-editor来写:图形化界面建立的步骤就是;

     add type ethernet(以太网类型)->con-name hello(网络名称)->ifname eth0(网端)->ip4 172.25.254.100/24

       nmcli connection modify westos  ipv4.method auto  

    修改网络ip为动态分配(即DHCP服务)作用是:集中管理,分配IP地址,使主机动态获得IP地址,GATEWAY地址,DNS服务器地址信息、有效的提升地址的利用率。

nmcli connection modify hello  ipv4.method manual  

nmcli connection modify hello ipv4.addresses 172.25.254.200/24  ##直接将westos的地址修改为新的地址

注意:静态地改为动态地址,直接在后边加auto

        动态地址改为静态地址,得先将他修改成一个静态地址,然后再进行manual

      5、管理网络配置文件(文本设置)

            /etc/sysconfig/network-scripts/   在这个目录上创建

         网络配置文件的名命规则

ifcfg-xxxx

DEVICE=xxx      设备名称

BOOTPROTO=dhcp|static|none 设备工作方式

ONBOOT=yes 网络服务开启时自动激活网卡

IPADDR= IP地址

PREFIX=24子网掩码(方式1)

NETMASK=255.255.255.0 子网掩码(方式2)

NAME= 接口名称(可有可无)

 

#nmcli connection delete hello先删除,再添加(删除的是配置文件)

示例:一个网卡配置一个IP:

静态网络设定文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

IPADDR=172.25.254.223

NETMASK=255.255.255.0

BOOTPROTO=none

NAME=hello       加与不加在图形化看区别,配置文件名字

设置完毕后

systemctl restart network  --重启网络服务

 

一块网卡上配置多个IP:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

IPADDR0=172.25.254.223

NETMASK0=255.255.255.0

BOOTPROTO=none

NAME=hello

IPADDR1=172.25.0.100

PREFIX1=24

 

添加完新的IP地址后:

 systemctl restart network    重启网络服务

 

 

"路由器"的作用:

         
由于不在同一网段的两个ip地址不能通信 但现实是2的32次方有限,因此ip地址有限,不可能每个人分一个ip地址, 我们现在想

让不同网段的主机进行通信 ,用1.1.1.236主机连接 172.25.254.36主机必须在中间加一个双网卡主机 ,该主机具备内核路由功能

和地址伪装功能,这个中间的主机就叫做路由器 route ,因此搭建路由器,可以实现两个不同网段的主机通信 。

网关:

网关(Gateway),将两个使用不同协议的网络段连接在一起的设备。

三、网络配置

如果Linux系统连有无线网的时候,可以直接上网那么如何让虚拟机进行上网呢??

我们可以通过搭建路由器和设置网关使虚拟机通过真机上网了
原理和上面的一样
虚拟机只有一个ip,真机有两个ip,

       思路:在真机上有两个网关,一个是自己的内网,一个是与外界相连的网络,我们需要将我们的虚拟机的网关跟内网的ip一样,查看真机的ip,同时将真机上设置路由和伪装功能开启,实现路由器作用。

 

步骤一:把真实主机变成路由器

     就三个步骤:防火墙,路由功能是否开启,地址伪装功能


命令:(1)先看防火墙是否是开启状态,systemctl status firewalld如未开启,必须将其开启,
           (2)在真机的shell输入sysctl -a | grep ip_forward查看路由功能是否为1,
           (3)在真机的shell输入firewall-cmd --list-all查看masquerade:由no改为yes(firewall-cmd --add-masquerade这个命令只是暂时将其改为yes,伪装地址功能开启)

            systemctl status firewalld   展示防火墙信息,是否开启

       systemctl restart firewalld    如果没开启,运行这个命令开启

如果没开启则用命令:

firewall-cmd --add-masquerade (暂时添加防火墙信息)添加     

firewall-cmd --permanent --add-masquerade  永久添加防火墙信息,开启其地址伪装功能

firewall-cmd --reload      重新加载

 systemctl start firewalld     开启防火墙

(2)、sysctl -a | grep ip_forward  查看路由功能是否开启

      如果:ipv4.ip_forward=0

            vim /etc/sysctl.conf

         将ipv4.ip_forward=1

      否则进行下一步

1为允许网络

0为不允许

firewall-cmd --list     

firewall-cmd --reload

firewall-cmd --list-all

步骤二:设定虚拟机的网关--在虚拟机中做

命令:(1)改掉自己的ip的网络位和自己的网关,cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0(在修改时,如果加数字,全部都加数字)
      vim /etc/sysconfig/network(gateway)
(2)重启系统systemctl restart network
(3)查看网关和ip是否修改成功

虚拟机网关设置成和主机IP一样。

方法一:(命令设置)

vim /etc/sysconfig/network ##全局网关,针对所有没有设定网关的网卡生效

GATEWAY=172.25.254.250

 

vim /etc/sysconfig/network-scripts/ifcfg-eth0

GATEWAY0=172.25.254.250 ##当网卡中设定的IP有多个时(eth0/eth1),指定对于那个IP生效

 

GATEWAY=172.25.254.250 ##当网卡中设定的IP只有一个时

方法二:(图形设置)

一定一定,设置完后要-->>>  systemctl restart network 重启动网络

route -n          查看网关

   

注意!!     虚拟机网卡有问题就删了重新加

用命令virt-manager打开虚拟机管理,删除网卡

 

可能出现的问题:

   问题一:当我们虚拟机ping不通真机时,网关没有问题(原因:真机网络可能重启过),所以在真机上重新配置一次。


    步骤:      在真机的shell输入virt-manager,选择“灯泡”,将真实的物理网卡硬件enp0s25的virtio先remove,然后添加一个新的virtio.
                或者查看cd /etc/sysconfig/network-scripts/中间是否与有多于文件,不能有多于文件(在我们连接wifi后,系统可能会自动产生多余文件,需要将其删除。)(当配置时,如果NIC出现问题,用这个方法)

     -----在真机网络重启后,需要重新检查路由和伪装功能是否完好,这个也是当我们可以在真机上ping通网络,虚拟机ping通真机的ip,却ping不通网络时的问题。(desktop虚拟机上不了网1、查网关,2、ping网关,3、查真机,4、查路由和伪装功能)


问题二:

当我们真机ping不通网络时,查看网关时,如果自己所需的网关前面有多余的网关时,需要将多余网关删除,route del dafault。

当虚拟机可以上网时,在虚拟机里面连接ping www.taobao.com连接不了,

原因就是它只能识别IP地址,域名识别不了

此时便引入DNS服务

四、设定dns(domain name server == 域名解析服务      解析就是把域名变成IP

1、vim /etc/hosts              本地解析文件    ----此时只能ping上本地文件里的域名

                                       必须手动加上

    ip 域名                    

220.181.111.188     www.baidu.com

2、vim /etc/resolv.conf       dns的指向文件     dns服务专门做解析服务

nameserver 114.114.114.114 ##当需要某个域名的IP地址时去问114.114.114.114

vim /etc/sysconfig/network-scripts/ifcfg-eth0/eth1

DNS1=114.114.114.114

注意:

当网络工作模式为dhcp时

系统会自动获得ip 网关 dns

那么/etc/resolv.conf会被获得到的信息修改

如果不需要获得dns信息

在网卡配置文件中加入

PEERDNS=no

   3、设定解析的优先级

        系统默认:

/etc/hosts   >   /etc/resolv.conf

本地解析        >     DNS服务

但是可以通过修改nsswitch文件来修改二者的优先级

vim /etc/nsswitch.conf

39 hosts: files dns ##/etc/hosts优先

vim /etc/nsswitch.conf

39 hosts:       dns files ##/etc/resolv.conf dns指向优先

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值