我正在运行 3 个装有 Fedora 19 的虚拟机。机器 B 设置了两个网络适配器,并在机器 A 和机器 C 之间提供队列通道。
机器 A 的 IP 设置为192.168.1.1
,机器 C 的 IP 设置为 ,172.16.1.1
在机器 BI 上有一个适配器的 IP 为192.168.1.254
,还有另一个适配器的 IP 为172.16.1.254
。
iptables
在对三台机器进行冲洗后,我可以ping
毫无问题地访问所有网络。
问题是当我192.168.1.3
使用命令将机器 A 更改为ifconfig p2p1 192.168.1.3
从此刻起,我无法再从机器 C ping 机器 A。
我究竟做错了什么?
我ifuo p2p1
在机器A上执行完之后,它又回到了之前的IP,也就是说,192.168.1.1
现在我可以从机器C ping 机器A
答案1
更改 IP 地址后,您需要重新添加所需的所有路由。您可能丢失了默认路由。
答案2
虽然如果删除用于默认路由的 IP 地址(已作为答案发布),您始终需要更新路由表,但您也应该停止混合各种级别的命令。
控制 Linux 内核网络配置的最佳方法是ip
使用路由或者iproute2包。它是内核网络的低级接口,主要用于测试和调试。您正在使用的ifconfig
类似(尽管已弃用)的包,因为它也直接与内核对话,但在此基础上执行了一些神奇的操作,但在某些情况下会严重失败。到目前为止一切顺利。
ifup
但是,除非您将命令放入相应的脚本中,否则将低级工具与发行版混合使用并不是一个好主意。该ifup
命令控制网络配置工具,例如/etc/sysconfig/network
,/etc/network/interfaces
或NetworkManager
将用户配置从磁盘文件(以及可能的内存状态)转移到内核。
因此,虽然重新添加路线是一个有效的答案,但不清楚您是想使用低级工具来了解网络,还是想使用发行版的网络配置解决方案。
对于后一种情况,忽略ifconfig
以及ip
(除了检查最终结果)并执行以下步骤:
- 编辑您的网络配置文件。
- 告诉相应的工具重新加载(并应用)配置。
在 Fedora 19 中,配置文件位于/etc/sysconfig/network-scripts
并可以与传统的网络脚本(/etc/init.d/network
)或网络管理器如果该服务已安装并正在运行。您可以分别通过service network restart
或service NetworkManager restart
(或使用systemctl
对应项)重新启动该服务。
答案3
你重启服务了吗?
/etc/init.d/networking 重启
最好的