这是我的状态:
$ sudo ufw status verbose
Status: active
Logging: on (medium)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
22 ALLOW IN Anywhere
所有传出流量均被允许。现在当我这样做时:
$ wget www.google.com
--2013-07-30 14:28:00-- http://www.google.com/
Resolving www.google.com... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'
我在 /var/log/kern.log 中看到流量确实被阻止了:
Jul 30 14:11:27 XXXXXX kernel: [2207680.256415] [UFW BLOCK] IN=lo OUT= MAC=XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=62240 DF PROTO=UDP SPT=35323 DPT=53 LEN=40
这是我的 ufw 版本:
$ sudo ufw version
ufw 0.29.3-1
Copyright 2008-2009 Canonical Ltd.
明确允许传出流量还不够吗?如何解决?我应该添加允许环回接口的规则吗?如何做?
答案1
您需要允许已建立的流量重新进入。
目前,您的机器正在尝试对 www.google.com 进行 DNS 查找,但由于从 DNS 服务器返回的流量被阻止,因此它始终无法获得结果。
答案2
此命令帮助我解决了该问题sudo ufw allow 53/udp
。端口 53 是 DNS 端口。