我有一台华硕路由器正在运行DD-WRT v24-sp2 (03/25/13) giga
。上周的某个时候,我无法通过标准 HTTP(端口 80)访问远程站点。端口 443 上的 HTTPS 可以正常工作。一个复杂的因素是我正在远程配置和故障排除 - 我夏天不在家,无法物理访问路由器。我正在通过 telnet 配置路由器,该 telnet 会话本身位于远程 SSH 会话中,进入我的服务器。我本应该已经重置了我的路由器,但我依靠克隆的 MAC 地址进行 WAN 连接,重置它会阻止我完全在外面连接。
我还应该指出,在我重新配置某些东西后,这个问题并没有出现——我几乎可以肯定这是一夜之间发生的事情。不过,也可能是我无意中做了一些事情。不确定那是什么。
以 root 身份登录后,直接在路由器终端上运行这些命令:
root@sharksterrirory:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=59 time=5.613 ms
64 bytes from 8.8.8.8: seq=1 ttl=59 time=7.039 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 5.613/6.326/7.039 ms
root@sharksterrirory:~# ping google.com
PING google.com (216.58.217.206): 56 data bytes
64 bytes from 216.58.217.206: seq=0 ttl=56 time=4.763 ms
64 bytes from 216.58.217.206: seq=1 ttl=56 time=5.606 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 4.763/5.184/5.606 ms
root@sharksterrirory:~#
root@sharksterrirory:~# wget http://google.com/
Connecting to google.com (172.217.5.206:80)
wget: can't connect to remote host (172.217.5.206): Connection timed out
这些命令以我的普通用户身份登录并在我的服务器上运行Ubuntu 16.04.2 LTS
。
taylor@nas:~ > curl http://google.com/
curl: (7) Failed to connect to google.com port 80: Connection timed out
taylor@nas:~ > curl https://google.com/
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
我不太确定我应该在这里提供什么其他相关内容,但我相当有信心地说我的问题与 IPv6 或 DNS 无关,因为我的很多搜索都让我找到了答案。鉴于问题发生在路由器级别,我尝试查看转发设置以确保我没有对端口 80 进行任何异常操作,但禁用除端口 22 上的 SSH 之外的所有端口转发并没有解决任何问题。这是iptables -L
我的路由器上的输出:
root@sharksterrirory:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere tcp dpt:ssh
DROP tcp -- anywhere anywhere tcp dpt:telnet
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere nas tcp dpt:32400
ACCEPT tcp -- anywhere sharksterrirory tcp dpt:webcache
lan2wan 0 -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
ACCEPT 0 -- anywhere anywhere
ACCEPT tcp -- anywhere nas tcp dpt:33919
ACCEPT udp -- anywhere nas udp dpt:33919
ACCEPT tcp -- anywhere nas tcp dpt:32400
ACCEPT tcp -- anywhere nas tcp dpt:ssh
ACCEPT udp -- anywhere nas udp dpt:ssh
TRIGGER 0 -- anywhere anywhere TRIGGER type:in match:0 relate:0
trigger_out 0 -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere state NEW
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain advgrp_1 (0 references)
target prot opt source destination
Chain advgrp_10 (0 references)
target prot opt source destination
Chain advgrp_2 (0 references)
target prot opt source destination
Chain advgrp_3 (0 references)
target prot opt source destination
Chain advgrp_4 (0 references)
target prot opt source destination
Chain advgrp_5 (0 references)
target prot opt source destination
Chain advgrp_6 (0 references)
target prot opt source destination
Chain advgrp_7 (0 references)
target prot opt source destination
Chain advgrp_8 (0 references)
target prot opt source destination
Chain advgrp_9 (0 references)
target prot opt source destination
Chain grp_1 (0 references)
target prot opt source destination
Chain grp_10 (0 references)
target prot opt source destination
Chain grp_2 (0 references)
target prot opt source destination
Chain grp_3 (0 references)
target prot opt source destination
Chain grp_4 (0 references)
target prot opt source destination
Chain grp_5 (0 references)
target prot opt source destination
Chain grp_6 (0 references)
target prot opt source destination
Chain grp_7 (0 references)
target prot opt source destination
Chain grp_8 (0 references)
target prot opt source destination
Chain grp_9 (0 references)
target prot opt source destination
Chain lan2wan (1 references)
target prot opt source destination
Chain logaccept (0 references)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
Chain logdrop (0 references)
target prot opt source destination
DROP 0 -- anywhere anywhere
Chain logreject (0 references)
target prot opt source destination
REJECT tcp -- anywhere anywhere reject-with tcp-reset
Chain trigger_out (1 references)
target prot opt source destination
此外,我使用此启动脚本打开端口 8080,以便通过我的域进行远程 Web 界面访问。我可能可以将它们移到实际的端口转发规则中,但我还没有这样做。
iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.1.1:8080
iptables -I FORWARD -p tcp -d 192.168.1.1 --dport 8080 -j ACCEPT
如果您有任何疑问或需要我提供任何其他信息,我将不胜感激。谢谢!
答案1
乍一看,我看不出您的防火墙配置中有任何可以实现您所描述的功能。您说的是在家中浏览网页,对吗?而不是在家中提供网页。那会有所不同。
连接超时可能表示某处的防火墙将数据包丢弃(而不是礼貌地拒绝它们)。
可能是您的上游有人(例如您的 ISP)阻止了您。您可能需要检查 spamhaus(或类似网站)以查看您的 IP 是否被列为垃圾邮件中继。
您可以 ping 和端口 443,这意味着 IP 层一切正常,所以它看起来像是防火墙问题。
希望这能有所帮助 -Dylan
答案2
Frontier 因未付款而“停用了我的服务”。我忘了支付账单,而他们所谓的“停用服务”就是禁用传入端口 80。要么是他们太懒,要么是因为他们无法轻易将光纤线路从他们的网络物理断开。