我已经设置了一个简单的 LAMP 和 OpenSSH 服务器,它运行正常。也就是说,从内网。从我的网络外部无法访问网页/ssh。
我确信我已经在路由器上正确设置了端口转发。我之前在 Steam、Minecraft 和其他几款游戏中都成功设置了端口转发。我的服务器可以访问互联网,我可以检索包并顺利 ping Google。我还测试了 13124 等奇数端口,以确保不是我的 ISP 阻止了端口。
我已经尝试设置 iptables(尽管据我所知,所有端口默认都是开放的):
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt
ACCEPT tcp -- anywhere anywhere tcp dpt:13124
ACCEPT tcp -- anywhere anywhere tcp dpt:24113
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我尝试使用 tcpdump 记录数据包,但发现这些端口上没有收到来自外部源的任何信息。这让我想起了我的路由器,我可能做错了什么?
这是来自 ifconfig 的无线网络信息:
wlan0 Link encap:Ethernet HWaddr 00:14:a5:8c:1b:26
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::214:a5ff:fe8c:1b26/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11658 errors:0 dropped:0 overruns:0 frame:0
TX packets:5339 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1769099 (1.7 MB) TX bytes:6433857 (6.4 MB)
以及我的网络接口配置:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# WhiteBox
auto wlan0
iface wlan0 inet dhcp
gateway 192.168.1.100
wireless-essid WhiteBox
wireless-key XXXXXXXXXX
dns-nameservers 8.8.8.8 192.168.1.100
我的路由器端口转发(DLink DIR-615 B2,固件 V 2.25):
是什么原因导致入站连接永远无法到达我的服务器?我该怎么做才能进一步调试我的服务器和路由器之间的设置?任何帮助都非常感谢。
答案1
我终于弄清楚了这个问题,答案是,根据提供的信息,我做的一切都是正确的。
问题是我的网络有问题。我的路由器连接到调制解调器,大多数网络可能都是这样。但是,我的调制解调器兼作路由器。发生的情况是所有端口都被我的“调制解调器”阻止了。我将调制解调器上的所有端口转发到我的实际路由器,现在一切运行正常。我还修复了许多与此相关的其他问题。
感谢你们尽力帮助大家,我真的很感激。我很抱歉问了这样一个无法解决的问题。(版主:我对 Stack Exchange 还很陌生,所以我不确定是否应该删除这个问题,因为它不会帮助其他人,或者其他什么。我不确定在不损害社区的情况下前进的最佳方式是什么,如果这有意义的话。)
答案2
您是否碰巧使用的是住宅 ISP?他们往往会阻止此类端口。如果是这样,您可以致电他们,但我不知道他们是否会打开端口。您还可以将内容切换到常规 Web 服务器等范围之外的端口,这样可能不会被阻止。