Linux如何通过命令行修改IP地址配置?

Linux系统中,通过命令修改IP地址是网络管理的基础操作,无论是临时调整网络配置还是永久修改IP,都需要根据具体需求选择合适的方法,Linux发行版众多(如CentOS、Ubuntu、Debian等),网络配置工具和文件位置可能存在差异,但核心逻辑一致,本文将详细介绍不同场景下修改IP地址的命令方法,涵盖临时修改、永久配置、多IP设置及验证步骤,并针对常见问题提供解决方案。

linux如何用命令修改ip

基础准备:查看当前网络接口信息

在修改IP前,需先确认系统的网络接口名称(如eth0、ens33、enp0s3等)及当前配置,可通过以下命令查看:

  • 查看网络接口列表ip aifconfig(需安装net-tools包,Ubuntu/Debian可通过sudo apt install net-tools安装)
    输出示例:

    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000  
      link/ether 00:0c:29:1a:2b:3c brd ff:ff:ff:ff:ff:ff  
      inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33  
         valid_lft forever preferred_lft forever  
      inet6 fe80::20c:29ff:fe1a:2b3c/64 scope link  
         valid_lft forever preferred_lft forever  

    其中ens33是接口名称,inet行显示当前IPv4地址、子网掩码(以/24表示,即255.255.255.0)和广播地址。

临时修改IP地址(重启后失效)

临时修改适用于测试场景,无需重启网络服务,但系统重启后会恢复原配置。

使用ip命令(推荐,现代Linux通用)

  • 添加IP地址
    sudo ip addr add 192.168.1.200/24 dev ens33  # 添加IP 192.168.1.200,子网掩码255.255.255.0
  • 启用接口(若接口未UP):
    sudo ip link set ens33 up
  • 删除临时IP
    sudo ip addr del 192.168.1.200/24 dev ens33

使用ifconfig命令(传统工具,需安装net-tools

  • 添加IP地址
    sudo ifconfig ens33 192.168.1.200 netmask 255.255.255.0 up
  • 删除临时IP(需先删除所有别名,再设置原IP):
    sudo ifconfig ens33 down
    sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0 up  # 恢复原IP

临时修改网关和DNS

  • 添加默认网关
    sudo ip route add default via 192.168.1.1 dev ens33
  • 临时修改DNS(直接编辑/etc/resolv.conf,重启后失效):
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    echo "nameserver 114.114.114.114" | sudo tee -a /etc/resolv.conf

永久修改IP地址(重启后保留)

永久修改需编辑系统网络配置文件,不同发行版配置方式差异较大,以下分主流系统说明。

CentOS/RHEL 7及以后(使用NetworkManager)

NetworkManager是默认网络管理工具,可通过配置文件或nmcli命令修改。

(1)编辑ifcfg配置文件

配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33(文件名需与接口名称一致)。

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下参数:

linux如何用命令修改ip

TYPE=Ethernet
BOOTPROTO=static       # 静态IP,若为DHCP则改为"dhcp"
NAME=ens33
DEVICE=ens33
ONBOOT=yes             # 开机启用网络
IPADDR=192.168.1.200   # 目标IP
NETMASK=255.255.255.0   # 子网掩码
GATEWAY=192.168.1.1    # 默认网关
DNS1=8.8.8.8           # 主DNS
DNS2=114.114.114.114   # 辅助DNS

保存后重启网络服务:

sudo systemctl restart network

(2)使用nmcli命令(推荐)

# 查看当前连接名称
nmcli connection show
# 修改连接属性(假设连接名为"ens33")
sudo nmcli connection modify "ens33" ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 114.114.114.114"
# 激活连接
sudo nmcli connection up "ens33"

Ubuntu 18.04及以后(使用Netplan)

Netplan通过YAML配置文件管理网络,文件路径通常为/etc/netplan/下的.yaml文件(如01-netcfg.yaml)。

(1)编辑Netplan配置文件

sudo vim /etc/netplan/01-netcfg.yaml

配置示例(静态IP):

network:
  version: 2
  renderer: networkd  # 或使用NetworkManager(需安装)
  ethernets:
    ens33:
      dhcp4: no        # 禁用DHCP
      addresses:
        - 192.168.1.200/24  # IP地址/子网掩码
      gateway4: 192.168.1.1  # 默认网关
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]
        search: [localdomain]  # 可选,域名后缀

保存后应用配置:

sudo netplan apply

(2)Ubuntu 16.04及以前(使用/etc/network/interfaces

sudo vim /etc/network/interfaces
auto ens33
iface ens33 inet static
    address 192.168.1.200
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 114.114.114.114

保存后重启网络服务:

sudo systemctl restart networking

Debian系统(类似Ubuntu,根据版本选择Netplan或interfaces)

Debian 10及以后默认使用Netplan,配置方法同Ubuntu;Debian 9及以前使用/etc/network/interfaces,方法同Ubuntu 16.04。

不同发行版永久配置对比

发行版系列 配置工具 配置文件路径 关键参数示例
CentOS/RHEL 7+ NetworkManager /etc/sysconfig/network-scripts/ifcfg-<接口> BOOTPROTO=static, IPADDR=...
Ubuntu 18.04+ Netplan /etc/netplan/*.yaml addresses: [192.168.1.200/24]
Ubuntu 16.04及以前 ifupdown /etc/network/interfaces iface <接口> inet static

多IP地址配置(别名IP)

若需为一个接口配置多个IP(如虚拟主机场景),可通过添加“别名”实现:

linux如何用命令修改ip

临时多IP(使用ip命令)

sudo ip addr add 192.168.1.201/24 dev ens33 label ens33:0  # 别名ens33:0
sudo ip addr add 192.168.1.202/24 dev ens33 label ens33:1  # 别名ens33:1

永久多IP(CentOS ifcfg文件)

ifcfg-ens33中添加:

IPADDR2=192.168.1.201
NETMASK2=255.255.255.0
IPADDR3=192.168.1.202
NETMASK3=255.255.255.0

(数字序号需连续,重启网络服务生效)

永久多IP(Ubuntu Netplan)

01-netcfg.yamladdresses中添加多个IP:

addresses:
  - 192.168.1.200/24
  - 192.168.1.201/24
  - 192.168.1.202/24

验证IP配置修改

修改完成后,需通过以下命令确认配置是否生效:

  • 查看IP地址ip a show ens33ifconfig ens33
  • 测试网络连通性ping 192.168.1.1(网关)、ping 8.8.8.8(外网)
  • 查看路由表ip routeroute -n
  • 测试DNS解析nslookup www.baidu.com

相关问答FAQs

Q1:修改IP后无法上网,如何排查?

A:按以下步骤排查:

  1. 检查IP/子网掩码:确保IP与网段匹配,子网掩码正确(如/24对应255.255.0)。
  2. 检查网关ip route查看默认网关是否正确,若缺失需手动添加(sudo ip route add default via 网关IP dev 接口)。
  3. 检查DNScat /etc/resolv.conf确认DNS服务器是否配置,可临时替换为公共DNS(如8.8.8)测试。
  4. 检查网络服务:CentOS执行sudo systemctl status network,Ubuntu执行sudo systemctl status networking,确保服务正常运行。
  5. 检查防火墙sudo firewall-cmd --list-all查看是否阻止出站流量,临时关闭防火墙测试(sudo systemctl stop firewalld)。

Q2:如何恢复为DHCP自动获取IP?

A:根据系统类型操作:

  • CentOS/RHEL(NetworkManager)
    方法1(修改ifcfg文件):将BOOTPROTO=dhcp,删除IPADDRNETMASKGATEWAYDNS1等参数,保存后重启网络。
    方法2(nmcli命令):sudo nmcli connection modify "连接名" ipv4.method dhcp,然后sudo nmcli connection up "连接名"
  • Ubuntu(Netplan)
    修改Netplan配置文件,将dhcp4: yes(或删除addressesgateway4等字段),保存后执行sudo netplan apply
  • 通用方法:临时恢复DHCP(仅当前会话生效):sudo dhclient ens33(需安装dhclient包)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20729.html

(0)
酷番叔酷番叔
上一篇 1天前
下一篇 1天前

相关推荐

  • Linux如何永久删除sudo用户?

    方法1:仅移除sudo权限(保留用户账户)适用于需保留用户但撤销管理员权限的场景,查看用户所属组执行命令确认用户是否在sudo或wheel组(不同系统组名可能不同):groups 用户名 # groups john若输出包含sudo或wheel,则需移除,移除sudo组使用gpasswd命令从组中删除用户:su……

    2025年6月28日
    2600
  • Linux数据备份,你的安全防线够强吗?

    常用网络备份工具及操作步骤Rsync + SSH(增量备份首选)原理:仅同步变化的文件,节省带宽和时间,示例命令:rsync -avz -e "ssh -p 22" /本地目录/ 用户名@远程IP:/备份目录/-a:归档模式(保留权限、时间戳)-v:显示详细过程-z:压缩传输-e:指定SSH……

    2025年7月27日
    1400
  • linux如何打开pkg

    Linux中,可以使用dpkg-deb命令打开.deb包文件,dpkg-deb -R

    2025年8月10日
    800
  • 为什么必须用固定网络地址?

    在Linux系统中固定IP地址是服务器管理、网络配置的常见需求,尤其适用于避免DHCP动态分配导致的IP变化,确保服务稳定访问,以下是详细操作指南,涵盖主流发行版(Ubuntu/Debian/CentOS)的两种主流方法:稳定性:服务器、NAS等设备需永久地址供外部访问,端口转发:路由器需固定IP映射端口(如S……

    2025年6月23日
    3000
  • Linux日志太多?如何快速定位关键信息?

    日志文件的位置Linux日志主要存储在 /var/log 目录下,常见日志包括:系统日志:/var/log/syslog(Ubuntu/Debian)或 /var/log/messages(CentOS/RHEL)认证日志:/var/log/auth.log(记录登录、sudo操作)内核日志:/var/log……

    2025年6月20日
    3400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信