Linux中的网络配置:ip,ifconfig,nmcli&指令添加网络&脚本设置网络

本文详细介绍了网络环境的基础知识,包括IP地址、子网掩码等概念,以及如何在Linux系统下进行网络检测、配置和管理。通过具体指令如ping、ifconfig和ip addr的使用,以及网络配置工具nm-connection-editor、nmtui和nmcli的介绍,帮助读者掌握网络问题的解决方法。

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

如何搭建网络环境,如何让自己的pc可以上网冲浪,如何解决Linux系统下的连不上网的问题,我们来一一解决。

基础知识:\color{blue}{基础知识:}:

1. IP ADDRESS
ipv4 internet protocol version 4【互联网通信协议第四版】

IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(2)个地址。不过,一些地址是为特殊用途所保留的,如专用网络(约1800万个地址)和多播地址(约2.7亿个地址),这减少了可在互联网上路由的地址数量。随着地址不断被分配给最终用户,IPv4地址枯竭问题也在随之产生。

2. 子网掩码
用来划分网络区域
非0位对应ip上的数字,表示这是ip的网络位【网络位表示网络区域】
子网掩码为0位对应ip的主机位【主机位表示某个区域的某台主机】

3.ip通信判定:
网络位相同,即在同一网段,即可通信。【最简单的情况,不涉及路由】

网络检测:\color{blue}{网络检测:}:

ping: ###当我们连接网络后,或者连接其他pc后,我们可以使用ping ip地址 来确定网络是否通畅。

这里我方主机为172.25.254.111.和12这台主机在同一网段。
这里我方pc网络位和对方相同主机位为111,ping之后数据可以传输,time后数字为数据传输时间。
ping后发现会自动一直ping下去,只能ctrl+c退出,所以我们可以采用下面两条指令:

ping -c 3 ip    ###ping三次mctl 

ping -w 秒数 ip  ###设定ping等待的时间

在这里插入图片描述


ifconfig,ipaddr:\color{blue}{ifconfig,ip addr:}ifconfigipaddr:

网络查看:\color{green}{网络查看:}

常用的网络查看有以下两条指令:

ifconfig   

ip addr show   ###推荐

指令后面都可以接对应的接口,表示只查看单个网卡的网络,如:

ip addr show eth0

在这里插入图片描述
在这里插入图片描述
网络管理:\color{green}{网络管理:}

ifconfig和ip addr 还可以作为管理指令,进行添加、删除、关闭、激活网络使用。【注意,这两条指令进行网络管理时都只是临时的,重起pc后即并不会存在】

ifconfig eth0 ip/24   ###指令设定网卡
ifconfig eth0 down   ###关掉网络

ifconfig eth0 up     ###激活网络

ip addr del dev eth0 ip/24    ###删除网络【删除单个网络】
ip addr add ip/24 dev eth0    ###添加网络

ip addr flush eth0            ###刷新网络【会删除所有现有eth0中的网络配置】
ip addr add ip/24 dev eth0    ###更改网络

演示:

1.查看现有网卡配置【eth0,有一个网络172.25.254.111】,使用ip addr del将其临时删除【重起后操作无效】
在这里插入图片描述
2.为eth0这块网卡添加两个ip,ip addr show 查看。
在这里插入图片描述
3.采用 ip addr flush eth0 后发现,刚才添加的两个ip都被删除了【也可以用dev一个一个删除】
在这里插入图片描述4.ifoncfig:添加一个网络,查看结果,关闭网卡,查看结果,开启网卡,查看结果
在这里插入图片描述

###再次强调!这里的ifconfig和ip addr的网络配置都是临时的。


永久的网络配置我们之前有讲过nm−connection−editor图形模式配置\color{green}{永久的网络配置我们之前有讲过nm-connection-editor图形模式配置}nmconnectioneditor
和接下来要说的其他几种方式:\color{green}{和接下来要说的其他几种方式:}

1.nmtui非图形界面的图形网络配置:\color{blue}{1.nmtui非图形界面的图形网络配置:}1.nmtui

nmtui  ###在无图形界面时经常会使用。有图形界面也可以用,但我们有图形界面通常不用这种方法。

在这里插入图片描述

1.进入界面后,其实步骤和nm-connection-editor是一样的。上下键调整选择,回车进入。这里我们直接回车。
在这里插入图片描述
2.可以看到add添加,delete删除,edit编辑。这里我们Add进行添加。
在这里插入图片描述
3.选择Ethernet,然后我们为它添加一个DEVICE设备名称eth0,并写入IP地址,子网掩码,随后ok确定。则添加完成。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.nmcli:指令网络配置\color{blue}{2.nmcli:指令网络配置}2.nmcli

###NetworkManager 必须开启

nmcli device connect eth0    ###启用eth0接口
nmcli device disconnect eth0  ###关闭eth0接口
nmcli device show eth0       ###查看网卡信息
nmcli device status          ###查看网卡服务接口信息和状态

nmcli connection show        ###显示所有网卡
nmcli connection down ABC    ###关闭ABC连接
nmcli connection up ABC      ###开启ABC连接
nmcli connection delete ABC  ###删除ABC连接
nmcli connection add type ethernet con-name ABC ifname eth0 ip4 ip/24    ###指定一个连接名字为ABC,接口为eth0的以太网,地址为ip,子网掩码24
nmcli connection modify ABC ipv4.method auto   ###动态分配ip
nmcli connection modify ABC ipv4.method manual ###静态分配ip
nmcli connection modify ABC ipv4.addresses ip/24  ###添加网络【会更改原有连接的ip】

演示:

1.开始之前,我们用nm-connection-editor指令删除原有连接,然后查看接口状态,eth0
接口上连接是空的。即还没有添加网络连接【方便我们之后观察】

在这里插入图片描述
在这里插入图片描述
2.我们用nmcli connection add指令,添加一个连接;并用nmcli connection show指令查看连接信息
在这里插入图片描述
在这里插入图片描述
3.关闭连接,查看;开启连接,查看;删除连接,查看。【注意看DEVICE接口那一列】
在这里插入图片描述
4.修改原有连接的,重起接口【刷新】,查看接口,发现接口上的ip改变。
在这里插入图片描述
在这里插入图片描述

5.开启接口,查看接口信息;关闭接口,查看接口信息。【注意STATE和CONNECTION】
在这里插入图片描述


3.nmcli:脚本网络配置\color{blue}{3.nmcli:脚本网络配置}3.nmcli

为了更加方便地去设置网络,不用每次都编写网络文件,我们可以写一个脚本出来,每次直接使用脚本即可。

>vim /bin/set_ipaddress.sh【编写脚本文件】
  #!/bin/bash
  cat > /etc/sysconfig/network-scripts/ifcfg-$1 <<EOF
  DEVICE=$1
  ONBOOT=yes
  BOOTPROTO=none
  IPADDR=$2
  PREFIX=24
  EOF
  systemctl restart network

>chmod +x /bin/set_ipaddress.sh

>set_ipaddress.sh eth0 172.25.254.200

>ifconfig eth0

                            大大的小小阳
&lt;think&gt;好的,用户的问题是关于在Linux虚拟机中重启网络服务的命令。我需要先回忆一下相关的Linux命令。记得不同的Linux发行版可能有不同的命令,比如Ubuntu和CentOS使用的命令可能不一样。首先,常见的重启网络服务的方式有哪些呢? 我记得在基于Systemd的系统(如Ubuntu 18.04及更高版本、CentOS 7及以上)中,可以使用systemctl命令。例如,systemctl restart networking.service或者systemctl restart NetworkManager.service。不过具体服务名称可能因发行版而异,Ubuntu通常用networking,而CentOS可能用network。 另外,传统的init.d脚本方式可能还在使用,比如service networking restart或者/etc/init.d/networking restart。不过现在可能已经被systemctl替代了,但有些旧系统可能还支持。 还有使用ifdown和ifup组合命令的情况,比如先关闭再启动网络接口,比如ifdown eth0 &amp;&amp; ifup eth0,不过需要知道具体的接口名称。或者使用ip命令来重新加载配置,但可能不够直接。 此外,NetworkManager的管理工具nmcli也可以用来重启网络,比如nmcli networking off再on,不过这可能更适用于桌面环境。用户可能是在服务器环境下操作,所以可能更倾向于使用systemctl或者service命令。 另外,有些发行版有特定的命令,比如Debian/Ubuntu可能使用systemctl restart systemd-networkd.service,或者需要重启NetworkManager服务。还有可能需要重新加载网络配置而不完全重启服务,比如使用nmcli connection reload,但这可能不适用于所有情况。 还要注意,用户的问题中提到的是&ldquo;重启网络服务&rdquo;,而不是整个网络接口,所以应该推荐服务级别的命令。可能还需要提醒用户根据具体的发行版选择合适的命令,比如在CentOS中使用systemctl restart network,而在Ubuntu中使用systemctl restart networking.service或者netplan apply(如果使用netplan的话)。 另外,用户可能遇到权限问题,需要sudo权限来执行这些命令,所以应该在命令前加上sudo。例如,sudo systemctl restart networking.service。 还需要考虑网络配置是否需要重新加载,比如在修改了网络配置文件后,可能需要重启服务或者重新加载配置。例如,使用systemctl reload networking.service可能只重新加载配置而不中断服务,但可能不是所有服务都支持reload操作。 总结一下,主要的命令可能有: 1. 使用systemctl重启网络服务: - Ubuntu/Debian:sudo systemctl restart networking.service - CentOS/RHEL:sudo systemctl restart network.service 2. 使用service命令: - sudo service networking restart(Ubuntu旧版本) - sudo service network restart(CentOS旧版本) 3. 使用ifdown/ifup组合: - sudo ifdown eth0 &amp;&amp; sudo ifup eth0 4. 使用nmcli(如果使用NetworkManager): - sudo nmcli networking off &amp;&amp; sudo nmcli networking on 另外,可能需要检查网络配置是否正确,例如IP地址设置、网关、DNS等,特别是在虚拟机环境下,有时候网络配置可能需要与宿主机在同一网段,如引用[4]提到的,虚拟机的IP前三组需要与宿主机一致。 可能还需要提醒用户,在重启网络服务后,检查网络状态,使用ip a或者ifconfig查看接口状态,使用ping测试连接性。如果问题依旧,可能需要检查配置文件是否有错误,或者考虑重启虚拟机,但重启虚拟机是更彻底的操作,可以使用reboot命令(如引用[3]和[5]提到的)。 用户可能是在配置网络后需要重启服务使配置生效,比如修改了/etc/network/interfaces或/etc/sysconfig/network-scripts/ifcfg-eth0等文件后的操作。这时候正确的重启命令就很重要了。 需要确保回答中涵盖不同发行版的命令差异,并提供具体的例子,这样用户可以根据自己的系统选择合适的命令。同时,引用相关的参考资料,比如引用[3]提到的重启命令,引用[4]提到的IP配置注意事项,以增强答案的可信度。&lt;/think&gt;在Linux虚拟机中重启网络服务的具体命令需根据发行版及网络管理工具决定,常用方法如下: --- ### 一、通用方法(区分发行版) 1. **Systemd系统(Ubuntu 18.04+/CentOS 7+)** - **Ubuntu/Debian**: ```bash sudo systemctl restart networking.service # 传统网络服务 sudo systemctl restart NetworkManager.service # 若使用NetworkManager ``` - **CentOS/RHEL**: ```bash sudo systemctl restart network.service ``` 2. **SysVinit系统(旧版本)** - 使用`service`命令: ```bash sudo service networking restart # Ubuntu旧版 sudo service network restart # CentOS旧版 ``` --- ### 二、针对网络接口的操作 若需针对特定接口重启(需替换`eth0`为实际接口名): ```bash sudo ifdown eth0 &amp;&amp; sudo ifup eth0 # 传统方式 sudo ip link set eth0 down &amp;&amp; up # 使用ip命令 ``` --- ### 三、NetworkManager工具(桌面环境常用) ```bash sudo nmcli networking off &amp;&amp; sudo nmcli networking on # 完全重启 sudo nmcli connection reload # 仅重载配置 ``` --- ### 四、其他注意事项 1. **配置文件生效**: 修改网络配置(如`/etc/network/interfaces`或`/etc/sysconfig/network-scripts/`)后,需重启服务或接口使配置生效[^4]。 2. **虚拟机网络模式**: 确保虚拟机网络配置与宿主机兼容(如NAT或桥接模式),IP地址前三段需与宿主机一致以实现通信。 3. **完整重启虚拟机**: 若网络服务异常,可使用`sudo reboot`重启整个系统[^3][^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值