Linux系统中设置IP地址和网关是网络配置的基础操作,可以通过命令行工具或修改配置文件实现,以下是详细的步骤说明及对比不同方法的特点:
临时配置(重启后失效)
适用于测试环境或短期需求,常用命令包括ifconfig
、ip
和route
。
使用ifconfig命令
- 查看当前网络接口信息:直接输入
ifconfig
可列出所有网卡的状态;若需查看特定接口(如eth0),则执行ifconfig eth0
。 - 设置静态IP与子网掩码:格式为
sudo ifconfig <接口名> <IP地址> netmask <子网掩码>
,将eth0的IP设为192.168.0.100,子网掩码为255.255.255.0时,运行sudo ifconfig eth0 192.168.0.100 netmask 255.255.255.0
。 - 优点:简单快捷;缺点是系统重启后配置丢失。
使用ip命令(现代替代方案)
- 添加IP地址:语法更严谨,推荐使用
ip addr add <CIDR格式IP>/前缀长度 dev <接口名>
,比如添加IPv4地址192.168.1.100/24到eth0,命令是sudo ip addr add 192.168.1.100/24 dev eth0
。 - 设置默认网关:通过
sudo ip route add default via <网关IP>
完成,示例:sudo ip route add default via 192.168.1.1
。 - 查看路由表:用
ip route show
替代传统的route -n
,显示结果更清晰。
配置路由表(route命令)
- 添加默认网关:执行
sudo route add default gw <网关IP>
,如sudo route add default gw 192.168.1.1
,此操作会将所有未明确匹配的流量指向该网关。 - 删除旧路由:若需调整现有策略,可用
sudo route del ...
系列参数清理无效条目。
永久生效的配置方式
文本文件编辑法(Debian/Ubuntu系)
打开/etc/network/interfaces
文件,按如下格式写入配置:
auto eth0 # 确保接口自动启动 iface eth0 inet static # 声明静态模式 address 192.168.0.252 # 目标IP netmask 255.255.255.0 # 子网掩码 gateway 192.168.0.1 # 默认网关
保存后运行sudo service network restart
使更改生效,该方法直观且兼容性强,适合传统发行版。
Red Hat家族(CentOS/RHEL)的ifcfg脚本
进入对应网卡的配置文件路径(通常位于/etc/sysconfig/network-scripts/ifcfg-ethX
),修改关键参数:
| 参数名 | 示例值 | 作用说明 |
|————–|————————|——————————|
| DEVICE | eth0 | 绑定物理设备名 |
| BOOTPROTO | none | 禁用DHCP,启用手动分配 |
| IPADDR | 172.16.129.108 | 固定IP地址 |
| NETMASK | 255.255.255.0 | 子网掩码 |
| GATEWAY | 172.16.129.254 | 默认跳转路由器 |
| ONBOOT | yes | 随系统启动自动激活该接口 |
完成编辑后执行sudo systemctl restart network
加载新配置,这种方式结构化程度高,便于批量部署。
NetworkManager图形化工具
对于桌面用户或偏好交互式的管理员,可通过CLI调用nmcli
实现自动化管理:
- 查看现有连接:
nmcli connection show
列出所有已存配置。 - 编辑指定连接:进入交互模式
nmcli connection edit ens33
(以实际接口名称替换ens33),依次输入以下指令:set ipv4.addresses "新IP/子网掩码"
→ 例:set ipv4.addresses "192.168.1.50/24"
set ipv4.gateway 新网关地址
→ 例:set ipv4.gateway 192.168.1.1
save
保存变更并退出。
- 应用更改:最后执行
sudo nmcli connection up ens33
刷新网络状态,此方法支持动态切换环境,适合多场景切换需求。
验证与故障排查
无论采用哪种方式,建议通过以下步骤确认配置正确性:
- 检查IP栈状态:使用
ip addr show
或ifconfig
核对各接口属性是否符合预期。 - 分析路由路径:借助
ip route
或route -n
查看数据包转发规则是否包含正确的下一跳地址。 - 连通性测试:尝试ping外部主机(如互联网上的公共DNS服务器),确保跨网段通信正常,若失败,优先检查网关可达性(例如能否ping通默认网关)。
FAQs
Q1: 如果执行了临时命令但未生效怎么办?
A: 可能是由于权限不足导致操作被拒绝,请确保在命令前添加sudo
以超级用户权限运行,某些安全机制会限制直接修改网络设置的行为,此时应优先检查SELinux/AppArmor的策略限制,或者改用持久化配置方案。
Q2: 永久配置文件修改后仍未改变网络行为?
A: 常见原因是没有重启相关服务,对于基于Netlink协议的工具,可能需要手动触发重载(如systemctl restart NetworkManager
);而对于传统init脚本体系,则需运行对应的service单元(如service network restart
),注意排除防火墙
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/93773.html