我有一台运行 Ubuntu Server 18.04.02 LTS 的机器,并且安装了 lighttpd,在端口 80 上运行。
当我从本地网络中的另一台计算机使用端口 80 连接到该机器时,我可以看到 lighttpd 的 Web 界面。但是,当我尝试连接到运行 lighttpd 的机器的外部 IP 地址时(并在路由器中正确进行端口转发后),该机器不会回复任何连接。
这是本地连接的 tcpdump(工作正常):
19:32:44.738145 IP sitecom.router.64601 > homeserver.http: Flags [S], seq 4216620690, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
19:32:44.738207 IP homeserver.http > sitecom.router.64601: Flags [S.], seq 102829168, ack 4216620691, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
现在这里是远程连接的 tcpdump(不工作):
19:33:20.001892 IP google-proxy-66-249-81-103.google.com.61995 > homeserver.http: Flags [S], seq 3678483043, win 62920, options [mss 1430,sackOK,TS val 1150615851 ecr 0,nop,wscale 8], length 0
19:33:21.000315 IP google-proxy-66-249-81-103.google.com.61995 > homeserver.http: Flags [S], seq 3678483043, win 62920, options [mss 1430,sackOK,TS val 1150616851 ecr 0,nop,wscale 8], length 0
19:33:21.017192 IP google-proxy-66-249-81-103.google.com.39536 > homeserver.http: Flags [S], seq 144332281, win 62920, options [mss 1430,sackOK,TS val 1150616868 ecr 0,nop,wscale 8], length 0
19:33:22.017517 IP google-proxy-66-249-81-103.google.com.39536 > homeserver.http: Flags [S], seq 144332281, win 62920, options [mss 1430,sackOK,TS val 1150617868 ecr 0,nop,wscale 8], length 0
19:33:22.999945 IP google-proxy-66-249-81-103.google.com.61995 > homeserver.http: Flags [S], seq 3678483043, win 62920, options [mss 1430,sackOK,TS val 1150618851 ecr 0,nop,wscale 8], length 0
19:33:24.018853 IP google-proxy-66-249-81-103.google.com.39536 > homeserver.http: Flags [S], seq 144332281, win 62920, options [mss 1430,sackOK,TS val 1150619868 ecr 0,nop,wscale 8], length 0
19:33:25.043043 IP [MY-EXTERNAL-IP].38736 > homeserver.http: Flags [S], seq 3115771267, win 65535, options [mss 1460,sackOK,TS val 24063591 ecr 0,nop,wscale 7], length 0
19:33:26.052905 IP [MY-EXTERNAL-IP].38736 > homeserver.http: Flags [S], seq 3115771267, win 65535, options [mss 1460,sackOK,TS val 24063841 ecr 0,nop,wscale 7], length 0
19:33:27.000064 IP google-proxy-66-249-81-103.google.com.61995 > homeserver.http: Flags [S], seq 3678483043, win 62920, options [mss 1430,sackOK,TS val 1150622851 ecr 0,nop,wscale 8], length 0
19:33:28.017512 IP google-proxy-66-249-81-103.google.com.39536 > homeserver.http: Flags [S], seq 144332281, win 62920, options [mss 1430,sackOK,TS val 1150623868 ecr 0,nop,wscale 8], length 0
19:33:28.092087 IP [MY-EXTERNAL-IP].38736 > homeserver.http: Flags [S], seq 3115771267, win 65535, options [mss 1460,sackOK,TS val 24064342 ecr 0,nop,wscale 7], length 0
我尝试使用“iptables -F”清除 iptables 并使用“ufw disable”禁用防火墙,但似乎没有任何效果。
有人知道这里可能出了什么问题吗?
谢谢!
编辑:
该命令route -n
产生以下输出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.57.10.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp2s0
10.57.10.1 10.57.10.5 255.255.255.255 UGH 0 0 0 tun0
10.57.10.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
[SOME-EXTERNAL-IP] 192.168.0.1 255.255.255.255 UGH 0 0 0 enp2s0
128.0.0.0 10.57.10.5 128.0.0.0 UG 0 0 0 tun0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-79cc7 752b6ff
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.0.1 0.0.0.0 255.255.255.255 UH 100 0 0 enp2s0
答案1
我找到了这个问题的罪魁祸首,感谢@HagenvonEitzen。
运行后route -n
,我发现有一个名为 tun0 的隧道。由于我不需要这个隧道,所以我决定使用 删除它ip link set dev tun0 down
。我想我可能是在使用 OpenVPN 时意外创建了这个隧道。
此后,隧道从route -n
输出中消失,我能够从本地网络外部正常访问 Web 服务器。
再次感谢!