为什么删除 iptables 会“破坏”我的网络访问?

Sly*_*lyx 7 yum rhel package-management

要删除 iptables,我使用 yum :

# yum remove iptables -y
Run Code Online (Sandbox Code Playgroud)

但这删除了很多包:

Remove      262 Package(s)

Installed size: 710 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Erasing    : xorg-x11-drivers-7.3-13.4.el6.x86_64                                                                                                                                                                    1/262 
  Erasing    : ipa-client-3.0.0-37.el6.x86_64                                                                                                                                                                          2/262 
  Erasing    : firstboot-1.110.15-1.el6.x86_64                                                                                                                                                                         3/262 
  Erasing    : system-config-date-docs-1.0.11-1.el6.noarch                                                                                                                                                             4/262 
  Erasing    : system-config-date-1.9.60-2.el6.centos.noarch                                                                                                                                                           5/262 
  Erasing    : system-config-kdump-2.0.5-15.el6.noarch                                                                                                                                                                 6/262 
  Erasing    : system-config-network-tui-1.6.0.el6.2-1.el6.noarch                                                                                                                                                      7/262 
  Erasing    : dmraid-1.0.0.rc16-11.el6.x86_64                                                                                                                                                                         8/262 
  Erasing    : dmraid-events-1.0.0.rc16-11.el6.x86_64                                                                                                                                                                  9/262 
  Erasing    : compiz-gnome-0.8.2-24.el6.x86_64                                                                                                                                                                       10/262 
  Erasing    : gnome-disk-utility-2.30.1-2.el6.x86_64                                                                                                                                                                 11/262 
  Erasing    : compiz-0.8.2-24.el6.x86_64                                                                                                                                                                             12/262 
  Erasing    : xorg-x11-drv-ati-7.1.0-3.el6.x86_64                                                                                                                                                                    13/262 
  Erasing    : pulseaudio-module-bluetooth-0.9.21-14.el6_3.x86_64                                                                                                                                                     14/262 
  Erasing    : gnome-bluetooth-2.28.6-8.el6.x86_64                                                                                                                                                                    15/262 
  Erasing    : bluez-4.66-1.el6.x86_64                                                                                                                                                                                16/262 
  Erasing    : gnome-power-manager-2.28.3-7.el6_4.x86_64                                                                                                                                                              17/262 
  Erasing    : rhythmbox-0.12.8-1.el6.x86_64                                                                                                                                                                          18/262 
  Erasing    : xorg-x11-glamor-0.5.0-6.20130401git81aadb8.el6.x86_64                                                                                                                                                  19/262 
  Erasing    : mesa-libEGL-9.2-0.5.el6.x86_64                                                                                                                                                                         20/262 
  Erasing    : kexec-tools-2.0.0-273.el6.x86_64                                                                                                                                                                       21/262 
  Erasing    : xorg-x11-drv-modesetting-0.5.0-1.el6.x86_64                                                                                                                                                            22/262 
  Erasing    : 1:xorg-x11-drv-nouveau-1.0.1-4.el6.x86_64                                                                                                                                                              23/262 
  Erasing    : xorg-x11-drv-synaptics-1.6.2-13.el6.x86_64                                                                                                                                                             24/262 
...
Run Code Online (Sandbox Code Playgroud)

很多包丢失了,我无法再使用ssh! 我的命令行出了什么问题?

gol*_*cks 14

我的命令行出了什么问题?

没有。它完成了你要求它做的事情——删除了 iptables,并通过推断,删除了所有依赖于它的东西。一切取决于这些事情等等。

正如 Kiwy 指出的那样,在remove -y没有首先考虑可能发生的情况的情况下运行 a 是非常鲁莽的。关于 iptables,我在背后的故事中感觉到了一些挫败感?无论如何,为了将来参考,据我所知,iptables 是默认安装的,但没有定义任何规则,所以如果你不想搞砸它,就不要做任何事情,它也不会。

提出一个问题,“为什么它依赖于这么多东西?”,对此我没有答案;我不认为这是因为真正的必要性,但由于默认情况下它是无牙的并且被认为是任何普通 linux 系统上的标准基本设备,因此这样做可能有一些优势。

repoquery --whatrequires iptables
Run Code Online (Sandbox Code Playgroud)

需要一两分钟(虽然依赖项是正常包元数据的一部分,但“依赖项”不是,所以这个查询需要一些工作)并显示一个相当可观的列表(我在 Fedora 20 上大约有 50 个包)。考虑到与这些事物相关的一系列事物(“删除 262 个包裹...”),您的系统处于半瘫痪状态也就不足为奇了。

无论如何,您可以从高级软件包开始重新安装其中的许多东西。有用的在这方面是一样的命令yum searchyum providesrepquery --list。要取回您的 ssh 客户端:

yum install openssh-clients
Run Code Online (Sandbox Code Playgroud)

当然,您需要通过其他方式访问该系统,希望它不在冰岛的农场上,否则您将不得不拨打一些电话。你也失去了 X 的外观,所以当你插入屏幕和键盘时不要对此感到惊讶。

我们都时不时地、不经意地做些蠢事。