小编pla*_*nor的帖子

iptables:filter 和 mangle 有什么区别

我正在使用 iptables 来标记包并希望根据标记进行路由。

首先我添加了ip规则:

sudo ip rule add fwmark 1 prohibit
Run Code Online (Sandbox Code Playgroud)

(“禁止”仅用于测试,稍后我将其更改为某个路由表。)

然后我开始标记包裹:

sudo iptables -A OUTPUT -d 192.168.1.0/24 -j MARK --set-mark 1
Run Code Online (Sandbox Code Playgroud)

但是电脑仍然可以访问192.168.1.0/24网络。

经过长时间的谷歌搜索和挣扎,我尝试过:

sudo iptables -t mangle -A OUTPUT -d 192.168.1.0/24 -j MARK --set-mark 1
Run Code Online (Sandbox Code Playgroud)

它有效并且连接被阻止。

在第一种情况下,使用过滤器的默认表。所以我的问题是 mangle table 和 filter table 之间有什么区别?在什么情况下应该使用哪一个?据我了解,所有这些表都会在路由策略之前进行查询,那么为什么过滤表不能正常工作呢?

linux routing iptables iproute

3
推荐指数
1
解决办法
6014
查看次数

case 语句中的管道字符“x|y)”是什么?

/etc/network/if-up.d/avahi-autoipd我系统的脚本中,我找到了这样的语句:

case "$ADDRFAM" in
  inet|NetworkManager) ;;
  *) exit 0
esac

case "$METHOD" in
static|dhcp|NetworkManager) ;;
*) exit 0
esac
Run Code Online (Sandbox Code Playgroud)

管道字符|看起来像逻辑“或”,但我在指南中找不到这个规则。我只能找到|用作命令管道和算术整数的“按位或”。

谁能告诉我在这种情况下有什么用途?

linux shell-script

2
推荐指数
1
解决办法
2378
查看次数

标签 统计

linux ×2

iproute ×1

iptables ×1

routing ×1

shell-script ×1