我今天配置了 iptables,遇到了一些我还无法解决的问题。因此,如果有人可以验证或回答以下问题来澄清,那就太好了:
- 每个接口都可以单独配置为 ipv4 或/和 ipv6。 iptables 规则如下
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
适用于所有接口(仅在 ipv4 上)? - A单连接(如所示
netstat -na
)总是仅使用一个接口? - 这接口由 IP 地址自动选择。例如,当有类似的东西时
*:~$ ip 地址 1: lo: mtu 65536 qdisc noqueue 状态 UNKNOWN 组默认值 链接/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 范围主机 lo 永远有效_lft 永远首选_lft 2: eth0: mtu 1500 qdisc pfifo_fast 状态 UP 组默认 qlen 1000 链接/以太 * brd ff:ff:ff:ff:ff:ff inet 128.176.123.45 brd * 范围全局 eth0 永远有效_lft 永远首选_lft
127.0.0.1
从到 的 所有 IP 都127.255.255.255
将通过接口罗,**其余由以太网0(如果有可能的路由;可以通过 看到netstat -r
)? 情况:服务器和客户端(对于某些软件)运行在同一台计算机上,并且它们相互通信。所以机器与自身通信。服务器监听某个端口。我们可以使用
netstat -na
来查看连接,例如连接:Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 128.176.123.45:60471 128.176.123.45:50010 ESTABLISHED
是什么之间的区别地址是:外部IP(就像现在一样),本地网络ip(如 192.168.1.4),127.0.0.1?是以太网0用于前两个和罗只为最后一个?
- 是与 127.0.0.1 通信只能从那里到达机器本身?
- 是与 192.168.1.4 通信只能从机器本身和 LAN?
- 是与 128.176.123.45 通信只能从机器本身、LAN 和互联网/GAN?
- 是个以太网0除 127.0.0.1 情况外,始终使用接口(因此与 128.176.123.45 通信以便与机器本身对话)以太网0以及)?
- 0.0.0.0 是通配符绑定端口时,所有命名选项都可以连接到该端口吗?它接受来自所有接口的连接并为每个构建的连接获取具体的本地地址?
- 当我阻止除以下端口之外的所有端口罗界面(没有其他规则)像这样:
iptables -P 输入丢弃 iptables -P 输出下降 iptables -P 转发丢弃 iptables -A 输入 -i lo -j 接受 iptables -A 输出 -o lo -j 接受
我能ping 到 192.168.1.4 到机器本身,但我明确地将其配置为以太网0界面?
答案1
是的,该规则没有接口说明符,因此适用于所有接口(除非有像
-i lo -j RETURN
上面这样的其他规则)。不,如果您正在进行流量路由,连接使用的接口可能会动态变化。 (严格来说,它可能仍然绑定到特定接口,因为那是地址所在,但内核可能根据路由表将流量发送到不同的接口)。
源地址是最常见的选择器,但不是唯一的选择器。您需要考虑路由策略数据库(RPDB)
ip rule
,因为它可以包含比简单的源地址复杂得多的规则,包括多个路由表。3.a.每个现代 Linux 系统实际上至少有 3 个路由表,以
ip rule
;开头。它通常包含from all lookup $X
,$X
其中local
,main
,default
。3.b.
ip route show table local
应该显示具有链接或主机范围的所有路由。您将在此处看到所有本地 IP。3.c.
ip route show table main
这是您看到的正常路由表如果目标地址是机器本地的(请参阅本地路由表),内核实际上将通过该表实现这一点,并通过环回接口发送它,而不是
eth0
。4.1.是的
4.2.取决于网络中的路由,如果有 DNAT 或其他路由,则可以比 LAN 更远的地方进行访问。
4.3.你说本地+LAN+WAN,除了这个还有什么?
0.0.0.0 被称为INADDR_ANY,通配符将主机上的所有 IP 绑定到该地址。
看看我上面写的,如果地址是本地的,它会通过路由表进行环回,而不是通过 eth0。