我在托管服务处有一台虚拟机,并使用 nftables 安装了一个基本防火墙。但是,当它处于活动状态时,所有出站流量似乎都被阻止了。例如,当尝试 ping 时google.com
,我收到No route to host
错误。我尝试 ping 的任何主机都会发生这种情况。
这是我的(非常基本的)配置:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# allow connection from loopback
iifname lo accept;
# established/related connections
ct state {established, related} accept;
# drop invalid connections
ct state invalid drop;
# allow ping
ip protocol icmp icmp type echo-request accept;
icmpv6 type echo-request accept;
# allow ssh connection on port 22
tcp dport 22 accept;
log flags all;
}
chain forward {
type filter hook forward priority 0;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
我就是不知道我的问题出在哪里。
编辑:经过更多的尝试之后,我设置了来自不同提供商的第二台虚拟机,但遇到了同样的问题。
此外,在我启用防火墙后,有一段短暂的时间,像mtr
和这样的命令ping
需要更长的时间来执行。就 mtr 而言,我首先能够在大约 10 秒内到达我的目标。然后,我开始在跟踪中遇到丢失,然后No route
在一段时间后收到错误。有时我Temporary failure in name resolution
在尝试执行命令时也会收到错误。我不确定到底是什么原因造成的。