当前位置: 首页 > news >正文

告别DHCP!手把手教你为VMware里的RockyLinux 9配置固定IP,实现稳定SSH连接

告别DHCP!手把手教你为VMware里的RockyLinux 9配置固定IP,实现稳定SSH连接

在虚拟化环境中,IP地址的频繁变动常常让开发者头疼不已。想象一下,当你正在通过SSH连接进行重要操作时,突然因为DHCP租约到期导致IP变更,连接中断,所有工作被迫暂停——这种体验无疑令人沮丧。RockyLinux 9作为RHEL的替代品,继承了其稳定性和企业级特性,但在默认安装后,网络配置往往采用DHCP动态分配,这对于需要长期稳定连接的开发环境显然不够理想。

本文将聚焦于解决这一痛点,详细介绍如何在VMware的NAT模式下,为RockyLinux 9配置静态IP地址。不同于简单的命令罗列,我们会深入理解每个配置参数的含义,确保你不仅能完成设置,还能在遇到问题时自主排查。无论你是Linux初学者还是有一定经验的运维人员,这篇指南都将帮助你建立一个可靠的开发环境。

1. 为什么需要固定IP:动态分配的局限性

在开始配置之前,理解为什么需要固定IP至关重要。DHCP(动态主机配置协议)虽然简化了网络管理,但在开发环境中却可能带来诸多不便:

  • 连接稳定性:SSH、FTP等远程服务依赖IP地址建立连接,IP变更会导致会话中断
  • 服务依赖:本地搭建的Web服务、数据库等需要固定IP供其他应用调用
  • 调试困难:日志中的IP地址频繁变化会增加问题追踪的复杂度
  • 安全策略:防火墙规则通常基于IP设置,动态IP会破坏这些规则

VMware的NAT模式为虚拟机提供了与主机共享IP的能力,同时允许虚拟机访问外部网络。在这种模式下配置静态IP,既能保持网络连通性,又能确保地址不变,是开发环境的理想选择。

提示:虽然桥接模式也可以配置静态IP,但NAT模式更适合个人开发环境,它能避免与局域网中其他设备的IP冲突。

2. 环境准备:确认网络配置

在修改任何网络设置前,我们需要先了解当前的网络状态。打开RockyLinux 9的终端,执行以下命令收集必要信息:

# 查看网络接口信息 ip addr # 检查当前网络连接状态 nmcli connection show # 查看路由信息 ip route

典型的输出可能如下(以ens160网卡为例):

1: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:3a:5b:7c brd ff:ff:ff:ff:ff:ff inet 192.168.122.128/24 brd 192.168.122.255 scope global dynamic noprefixroute ens160 valid_lft 3456sec preferred_lft 3456sec inet6 fe80::20c:29ff:fe3a:5b7c/64 scope link noprefixroute valid_lft forever preferred_lft forever

关键信息包括:

  • 网卡名称:本例为ens160(可能是ens33、eth0等)
  • 当前IP:192.168.122.128
  • 子网掩码:/24表示255.255.255.0
  • 分配方式:dynamic表示DHCP分配

同时,我们需要记录VMware的NAT网络配置:

  1. 在VMware中,点击"编辑"→"虚拟网络编辑器"
  2. 选择NAT模式对应的网络(通常是VMnet8)
  3. 记录子网IP和子网掩码(如192.168.122.0/24)
  4. 点击"NAT设置"记录网关IP(如192.168.122.2)

3. 配置静态IP:NetworkManager详解

RockyLinux 9使用NetworkManager管理网络连接,我们将通过修改配置文件来设置静态IP。以下是详细步骤:

3.1 定位并备份配置文件

NetworkManager的连接配置文件通常位于:

/etc/NetworkManager/system-connections/

找到对应网卡的配置文件(如ens160.nmconnection),首先创建备份:

sudo cp /etc/NetworkManager/system-connections/ens160.nmconnection ~/ens160.nmconnection.bak

3.2 编辑网络配置文件

使用文本编辑器(如nano或vim)修改配置文件:

sudo vim /etc/NetworkManager/system-connections/ens160.nmconnection

找到[ipv4]部分,将其从DHCP模式修改为手动配置。以下是完整的配置示例:

[connection] id=ens160 uuid=1a8c3d7e-2b4f-4c9d-a1b2-3c4d5e6f7a8b type=ethernet interface-name=ens160 [ipv4] address1=192.168.122.150/24,192.168.122.2 dns=8.8.8.8;8.8.4.4 method=manual [ipv6] addr-gen-mode=stable-privacy method=auto

关键参数说明:

  • address1:格式为IP地址/子网前缀,网关(如192.168.122.150/24,192.168.122.2)
  • dns:指定DNS服务器,多个用分号分隔
  • method:ipv4设为manual表示静态IP,ipv6通常保持auto

注意:IP地址应选择与当前DHCP分配范围不冲突的地址,避免可能的IP冲突。可以在VMware的DHCP设置中查看分配范围。

3.3 应用配置更改

保存文件后,需要重新加载网络配置:

# 重新加载配置文件 sudo nmcli connection reload ens160 # 重启网络连接 sudo nmcli connection down ens160 && sudo nmcli connection up ens160 # 验证配置 ip addr show ens160

如果一切顺利,你应该能看到ens160网卡已经使用了指定的静态IP地址。

4. 验证与故障排除

配置完成后,需要进行全面测试以确保网络功能正常:

4.1 基础连通性测试

# 测试网关连通性 ping 192.168.122.2 -c 4 # 测试外部网络 ping 8.8.8.8 -c 4 # 测试DNS解析 ping google.com -c 4

4.2 常见问题解决

如果遇到连接问题,可以按照以下步骤排查:

  1. 无法ping通网关

    • 检查IP地址和子网掩码是否与VMware NAT设置匹配
    • 确认虚拟机网络适配器设置为NAT模式
    • 在VMware中重置虚拟网络(编辑→虚拟网络编辑器→恢复默认)
  2. 能ping通IP但无法解析域名

    • 检查/etc/resolv.conf是否包含正确的DNS服务器
    • 尝试使用不同的DNS(如114.114.114.114)
  3. 配置不生效

    • 确保没有语法错误(特别是逗号、分号的使用)
    • 检查NetworkManager服务状态:systemctl status NetworkManager

4.3 持久性验证

重启虚拟机后再次检查IP地址,确认静态配置仍然有效:

sudo reboot ip addr show ens160

5. 高级配置与优化

对于需要更精细控制的用户,可以考虑以下增强配置:

5.1 多IP地址绑定

有时一个网卡需要绑定多个IP地址,可以在address1后继续添加:

[ipv4] address1=192.168.122.150/24,192.168.122.2 address2=192.168.122.151/24 method=manual

5.2 自定义DNS配置

除了在NetworkManager配置中指定DNS,还可以修改resolv.conf:

sudo vim /etc/resolv.conf

添加如下内容:

nameserver 8.8.8.8 nameserver 8.8.4.4 options timeout:1 attempts:1

为防止NetworkManager覆盖此文件,可以禁用自动更新:

sudo vim /etc/NetworkManager/NetworkManager.conf

在[main]部分添加:

dns=none

然后重启NetworkManager:

sudo systemctl restart NetworkManager

5.3 防火墙配置

确保SSH端口(默认22)在防火墙中开放:

# 查看当前防火墙规则 sudo firewall-cmd --list-all # 永久开放SSH端口 sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload

6. SSH连接最佳实践

配置好静态IP后,SSH连接将变得更加可靠。以下是一些优化建议:

6.1 使用密钥认证

相比密码认证,SSH密钥更安全且方便:

# 在客户端生成密钥对(如果尚未生成) ssh-keygen -t ed25519 # 将公钥复制到RockyLinux服务器 ssh-copy-id root@192.168.122.150

6.2 客户端配置优化

在本地SSH客户端(如~/.ssh/config)中添加以下配置:

Host rocky-dev HostName 192.168.122.150 User root IdentityFile ~/.ssh/id_ed25519 Compression yes ServerAliveInterval 60

这样只需输入ssh rocky-dev即可连接,无需每次指定IP和用户。

6.3 保持SSH连接稳定

为防止连接超时,可以在服务器端修改SSH配置:

sudo vim /etc/ssh/sshd_config

添加或修改以下参数:

ClientAliveInterval 30 ClientAliveCountMax 5 TCPKeepAlive yes

然后重启SSH服务:

sudo systemctl restart sshd
http://www.jsqmd.com/news/878659/

相关文章:

  • 2026年,窄尺寸白色十字门冰箱首选!大白405值得拥有 - 品牌企业推荐师(官方)
  • Java 零基础全套教程,File 类与 IO 流,笔记 177-178
  • 内蒙古自治区霍林郭勒寄快递省钱指南|多款小众靠谱寄件渠道盘点,全国低价跨省寄送省心又划算 - 时讯资讯
  • C++开发者如何通过curl快速接入Taotoken调用多模型API
  • Gemini多模态图像解析能力全维度压力测试:覆盖OCR、图表推理、医学影像等9大场景,结果让谷歌工程师连夜修改提示词!
  • 美式橄榄球EP模型进阶:行加权、Bootstrap与催化先验解决三大挑战
  • 百福黄金回收 - 百福黄金回收
  • 防水套管技术详解:02S404 国标、刚性 / 柔性区别、密封原理 - 品牌优选官
  • 内蒙古自治区乌兰察布寄快递省钱新思路!4 款小众靠谱寄件渠道,全国发货性价比拉满 - 时讯资讯
  • 构建可信赖的MLOps系统:从数据质量到模型鲁棒性的工程实践
  • 内蒙古自治区赤峰寄快递省钱干货|全网平价靠谱寄件渠道汇总,日常寄件轻松省开销 - 时讯资讯
  • 创业团队如何用Taotoken以可控成本快速验证多个AI模型
  • Warp:AI 开发者的操作系统
  • Gemini vs GPT-4V vs Claude 3 Opus图像理解横评(2024最严标准):在细粒度物体关系推理上,Gemini竟在3项关键指标中垫底?
  • 厦门鼓浪屿靠谱婚纱照旅拍工作室 - 品牌企业推荐师(官方)
  • 厦门靠谱婚纱照店大揭秘 - 品牌企业推荐师(官方)
  • 长期项目开发中如何借助用量看板进行成本分析与优化
  • SpringBoot+Vue物流系统源码+论文
  • 使用 curl 直接测试 Taotoken API 的连通性与响应
  • 厦门鼓浪屿靠谱婚纱照旅拍工作室。 - 品牌企业推荐师(官方)
  • DeepSeek训练中断率下降92%的关键:混合精度溢出检测+梯度裁剪动态阈值算法(PyTorch 2.3源码级注释版)
  • 2026济宁数字化升级|恒钧科技深耕本土,赋能济宁企业AI精准获客新发展 - 品牌企业推荐师(官方)
  • 内蒙古自治区通辽市寄件省钱干货|不用线下跑腿询价,微信端藏着全国低价寄快递高性价比寄件渠道 - 时讯资讯
  • 亨得利中国区售后服务网络2026年全面升级:权威评测与真实体验分享 - 资讯纵览
  • 机器学习与形式论辩融合:构建可解释AI的推理骨架与数据驱动方法
  • 免费开源播放器MPC-BE:打造你的终极媒体播放解决方案
  • GetQzonehistory:你的QQ空间记忆保险箱,一键永久保存青春时光
  • 掌握数字病理分析:QuPath开源工具实战全解析
  • 商标专利注册代办获客难?GEO优化系统专业营销推广引流,GEO优化靠AI搜索大模型精准锁定企业客源 - 一点学习库
  • 使用 Node.js 和 Taotoken 为博客网站快速搭建一个智能内容摘要生成接口