我有一台运行 mysql 的服务器,它使用了大量内存。我跑:
mysql > show status like '%onn%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Aborted_connects | 4 |
| Connections | 98609 |
| Max_used_connections | 20 |
| Ssl_client_connects | 0 |
| Ssl_connect_renegotiates | 0 |
| Ssl_finished_connects | 0 |
| Threads_connected | 1 |
+--------------------------+-------+
Run Code Online (Sandbox Code Playgroud)
但是,如果我以 root 用户身份运行“show processlist”,我将看不到任何内容。我为此尝试过谷歌,但它总是会出现与连接错误相关的内容。有人可以解释一下为什么我看不到连接以及如何实际进入并查看它们吗?
我在玩 IPv6 的多播功能。
$ ping ff02::2%wlp3s0
Run Code Online (Sandbox Code Playgroud)
这通常会导致来自本地网段(维基百科 - IPv6)上的所有路由器的回声回复。所以就我而言,我的家用路由器。
但是,我发现我原来的 nftables 规则阻止了回声回复:
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iifname "lo" accept
ct state { established, related } accept
ct state invalid drop
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
} …Run Code Online (Sandbox Code Playgroud) 我在 iptables 中有一个 connlimit 规则,它只允许 5 个连接到端口 80。
iptables -A FORWARD -p tcp -m tcp --syn --dport 80 -m connlimit --connlimit-above 5 --connlimit-saddr -j DROP
在我恢复 iptables 之前,此规则运行良好。恢复规则后,connlimit 计数器重新开始,客户端/攻击者可以再打开 5 个连接。
是否有可能避免这种情况?
显然,目前在 Linux 内核中的NPTv6(IPv6 网络前缀转换)的实现与连接跟踪不兼容。这非常令人失望,因为当您拥有来自 ISP 的动态 IPv6 前缀并希望拥有稳定的内部 IPv6 地址时,我觉得 NPTv6 是比 NAT66 更明智的解决方案。
我当然不想做 NAT66,但也需要有状态防火墙,特别是考虑到 NPTv6 保留端到端连接,因此连接跟踪是必须的。
我的问题是,有没有人知道任何补丁/附加组件/变通办法让我在同一主机上拥有 NPTv6 和转换流的连接跟踪?
从这个链接看来,conntrack 在连接关闭后会记住 X 秒。
有谁知道 X 有多长以及它是否可以配置?
据我所知,iptables --set-mark不会在数据包“上”添加标记。目标MARK是将标记与内核数据结构中的数据包相关联。数据包本身没有被修改。但是有没有办法查看数据包及其相关标记呢?
我们可以从 中看到ctmark(使用目标设置的连接标记CONNMARK)/proc/net/nf_conntrack。我正在寻找类似的内容以供查看nfmark(数据包标记)。
我们可以这样查看ctmark。
iptables -I OUTPUT 1 -t mangle -j CONNMARK --restore-mark
iptables -I OUTPUT 2 -t mangle -m conntrack --ctorigdst 172.30.138.151 -m mark --mark 0 -j MARK --set-mark 2
iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark
Run Code Online (Sandbox Code Playgroud)
然后我们就可以在文件中看到连接标记/proc/net/nf_conntrack。标记=2
ipv4 2 icmp 1 18 src=157.43.150.253 dst=172.30.138.151 type=8 code=0 id=54809 packets=4 bytes=336 src=172.30.138.151 dst=157.43.150.253 type=0 code=0 id=54809 packets=4 bytes=336 mark=2 zone=0 use=2 …Run Code Online (Sandbox Code Playgroud) ip-conntrack ×6
iptables ×2
ipv6 ×2
netfilter ×2
firewall ×1
linux-kernel ×1
multicast ×1
mysql ×1
nftables ×1