Articles of iptables

如何解决“iptables:无链/目标/匹配的名称”?

我在我的linuxembedded式系统上构build并安装了iptables。 如果我列出所有的规则,一切工作正常: #iptables –list Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 但是,如果我添加一个新的规则来阻止icmp ping,我会得到follwing错误: iptables -A INPUT -i eth0 -p icmp –icmp-type any -s 0/0 -d 10.20.3.179 -m state –state NEW,ESTABLISHED,RELATED -j DROP iptables: No chain/target/match […]

UDP数据包被networking堆栈丢弃的原因是什么?

我看到UDP数据包到达我的Linux机器上(通过tcpdump),目标端口设置为25555.但是: nc -l -u 25555 没有显示交通。 我已经检查过了: iptables已closures 目的MAC地址与入接口匹配 目标IP地址与传入的接口匹配 IP校验和是可以的 UDP校验和是可以的 而且, 所有的数据包都被丢弃了,所以这并不是rx缓冲区溢出的问题。 任何想法还有什么可能会导致帕克丢弃?

如何使我的Docker容器通过第二个接口与另一个节点通信?

我正在努力执行一个可悲的testing,其中涉及到sandbox01networking中的服务器与在“Docker Host”服务器中运行的Docker容器之间的通信(该计算机与sandbox01networking中的其他节点位于同一个子网中。即在10. *地址/范围内有一个名为ens34的接口,在9 *networking上还有一个eth0接口,允许它访问外部世界:下载软件包,docker图像等等。 )。 无论如何,这里有一个图来说明我有什么: 问题:无法在sandbox01子网(10. *networking)中的节点和容器之间进行通信。 例如,someserver.sandbox01→mydocker2:ens34 :: docker0 :: vethXXX→容器只有当我停止iptables,这使得事情真的很神秘! 只是想知道如果你面临任何类似的问题..任何想法将不胜感激。 谜题:经过多次testing,确认容器不能与10. *networking中的任何其他节点进行通信 – 它的行为不如预期:它应该通过其网关docker0(172.17 .0.1),并通过docker主机中的路由表find与“someserver.sandbox01”(10.1.21.59)进行通信的path。 它只在我们让它在iptables中处理MASQUARADE时才起作用。 但是,Docker会自动添加这个规则: -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -c 0 0 -j MASQUERADE -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -c 0 0 -j MASQUERADE **请注意那里的“!-o docker0”,所以Docker不希望我们掩盖发送请求的IP地址? 不知何故,这是在搞乱沟通 容器响应任何通过IP 9的通信。*(eth0) – 即,我可以从我的笔记本电脑发送请求 – 但从来没有通过10. *(ens34)。 […]

如何检查iptables中每条规则的命中次数?

我想知道我可以从使用iptables创build的访问列表中找出访问哪个规则以及多less次。 我的防火墙在iptbales中有超过1000个input和输出规则; 我想找出他们每个人被访问了多less。 例如,假设我有以下规则 iptables -A INPUT -i eth0 -p tcp –dport 22 -m state –state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p […]

dynamic侦听Docker容器内的端口

我有一个应用程序,使用其默认端口进行一些连接后,开始打开(监听)新的RANDOM端口来处理现有的连接,然后丢弃它们(video通话)。 它还在通讯协议内部交换了它的IP地址和端口,我能解决IP地址的问题,但是仍然无法find一种方法来dynamic地告诉主机的IPTABLES在Docker里面打开时打开相同的端口容器,有人有什么想法吗?

如何在linux中使用iptables将http和httpsstream量转发到透明代理

我有一个Ubuntu的Linux系统作为一个网关系统上有两个接口。 一个接口用于本地networking,一个接口用于互联网。 我能够通过它路由stream量,没有任何问题。 我使用两个iptables规则来转发来自内部接口的出站stream量: iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE iptables –append FORWARD –in-interface eth1 -j ACCEPT 我现在需要创build一个iptables规则,过滤掉并redirect所有通过eth1接口离开我的networking的tcp端口80和443stream量,并将其发送到位于tcp端口9090上的回送接口上的代理服务器。 我一直在search,但我一直没能find一个有效的例子。 有没有一个有效的方法来做到这一点?

如何为每个进程路由使用Linuxnetworking命名空间?

我想通过浏览器抓取网页,并存储每个URL的networkingstream量(不仅HTTP,而且udp,rtmp等)我遇到这种解决scheme,使用Linuxnetworking名称空间为每个进程路由。 以下是我遵循的步骤,但无法浏览网页。 ip netns add test 创build一对虚拟networking接口(veth-a和veth-b): ip link add veth-a type veth peer name veth-b 改变veth-a接口的活动命名空间: ip link set veth-a netns test configuration虚拟接口的IP地址 ip netns exec test ifconfig veth-a up 192.168.163.1 netmask 255.255.255.0 ifconfig veth-b up 192.168.163.254 netmask 255.255.255.0 在testing命名空间中configuration路由: ip netns exec test route add default gw 192.168.163.254 dev veth-a sudo bash -c […]

如何使用iptablesredirectip地址

我有5台电脑的小本地networking。 我的提供商给了我真正的IP地址(194.187 …),但networking中的计算机无法看到它。 所以我必须redirect我的路由器(与Linux系统),这将redirect真正的IP地址(194.187 …)到我在提供商的networking(10.12.205.26)的IP地址。 我如何在我的路由器上使用iptables执行此操作。 谢谢。

如何获取redirectUDP消息的原始目的端口?

使用这个东西,我可以获得socket(PF_INET, SOCK_DGRAM, 0)套接字的原始目标IP地址。 如何获得原始目标端口?

Linux Bash:设置iptables规则以允许主动和被动FTP

我有一台安装有FTP服务器的PC。 我想设置iptables规则,以允许主动和被动的FTP。 我试过下面的代码,人们报告工作,但它似乎阻止我的所有stream量(网页将不再加载等) #!/bin/bash IPT=/sbin/iptables $IPT -F $IPT -X $IPT -t nat -F $IPT -t nat -X $IPT -t mangle -F $IPT -t mangle -X /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp # Setting default filter policy $IPT -P INPUT DROP $IPT -P OUTPUT ACCEPT # Allow FTP connections @ port 21 $IPT -A INPUT -p tcp –sport […]