如何禁用以太网适配器的TCP / IP?


8

我在具有两个以太网适配器的(虚拟)计算机上运行CentOS 6.3。我的eth0连接到TCP / IP LAN,而eth1连接到DSL调制解调器。该系统旨在用作专用路由器/防火墙,并已设置iptables以执行SNAT,DNAT和所需的过滤。

这工作得很好,但是我更换了DSL调制解调器,不幸的是,新的(更快的)调制解调器经过了傻瓜认证,因此NAT自动进行,并且不允许我将公共IP传递给eth1。我不能容忍双重NAT,因此我进行了一些研究,并读到可以通过在计算机上执行PPPoE来“诱骗”该调制解调器为我的计算机提供公用IP。

因此,我将pppd设置为使用eth1,创建了ppp0连接,然后在自定义iptables配置脚本​​中替换了eth1。这似乎在一定程度上可以正常工作,但是我必须打开防火墙才能使其正常工作,而且它很脆弱。

我想完全排除所有TCP / IP流量直接路由到eth1的可能性,在此我的“友好”调制解调器会很乐意对其进行NAT,这部分是为了排除故障。

据我所知,PPPoE位于物理接口之下,而不是IP之上,它直接以以太网帧进行交易。因此,为了使pppd正常工作,我什至不必在eth1上配置IP网络,因此在eth1上运行的IP网络只会使事情变得不必要。

这是我发现的地方,愚蠢的我,我不知道如何在Linux上禁用TCP / IP堆栈!我知道在Windows框上,您可以仅取消选中适配器属性中的TCP / IP协议,但是在这里,我正在运行纯文本的CentOS,但我不知道该怎么做。

显然,这不是一个很普遍的愿望,因为我一直在搜索互联网无济于事。以太网适配器 TCP / IP连接似乎是一个固定的假设。好吧,通常...

谢谢你的帮助!凯文

Answers:


6

只需使用ip addr flush dev eth1和删除IPv4和IPv6地址ip -6 addr flush dev eth1


谢谢您的回答-这确实有效(并且在我的配置中暴露了其他问题)。但是,在我看来,就像Linux中的一个设计缺陷一样,没有任何明确的控制可以将哪些第3层协议绑定到给定的网络接口。
凯文(Kevin)

你什么意思?IP地址是IP堆栈中接口的挂钩。要告诉IP堆栈(在这种情况下谈论TCP没有意义),只是不要给它提供IP地址,它就这么简单,并且在包括MS Windows在内的每个OS中都一样。
斯特凡Chazelas

从工程的角度来看,告诉协议本身没有地址和告诉操作系统协议不应该绑定到给定的网络适配器之间是有区别的。也许效果相同,但后者更安全,清晰和统一。在Windows中,适配器属性中有一个清单,用于确定将哪些协议绑定到适配器。实际上,这是解除IP绑定的唯一方法,因为仅尝试删除IP地址就会显示一条错误消息The adapter requires at least one IP address. Please enter one.
凯文(Kevin)

0

您不能禁用TCP / IP,但可以禁用接口:只需ip link set eth1 down在控制台中运行即可。

/etc/sysconfig/network-scripts/ifcfg-eth1仅保留ONBOOT=no内部以使更改持久。

还要检查如何在CentOS中禁用NIC?

PD:作为gertvdijk指出,这也将禁止运行的能力pppd通过eth1


1
禁用NIC还将停止传递PPPoE所需的Layer2帧。
gertvdijk 2012年

@gertvdijk对,答案已编辑。
mmoya
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.