无法访问 LAN 外的我们的服务器

无法访问 LAN 外的我们的服务器

我希望这不超出 ServerFault 的范围。如果问题在这里不起作用,一些指导会有所帮助。

我们有一台带有 2 个网卡的 Ubuntu 开发服务器。一个具有公共 IP,另一个是内部 IP。无论我们将主机文件设置为使用内部 IP 还是公共 IP,内部一切都运行良好。GoDaddy 的 DNS 设置在我们看来是准确的,但我们无法从网络外部访问我们的网站。我们尝试了几种 iptables 方法,但都无济于事。/var/log/nginx/error.log 中没有显示任何内容。现在,我们正在使用 iptables-persistant,如果我们运行iptables -L -n -v,我们会得到以下内容:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 6300 5345K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
  446 19640 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    8   480 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    4   220 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
   23  1264 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:80
    8   416 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:443
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:6081
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:8080
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:8000
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:225
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1581
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:2123
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:2124
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:32869
 435K   43M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 7064 packets, 2805K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            64.224.199.0/27      tcp dpt:1500
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            69.0.166.0/27        tcp dpt:1500
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            66.40.60.0/27        tcp dpt:1500
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            83.222.224.32/28     tcp dpt:1500
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            209.15.255.224/27    tcp dpt:1500

答案1

由于您的 iptables 规则均不基于接口匹配,因此很容易排除这种可能性……您会从内部看到相同的问题。您的问题不在于 iptables。

请注意,您发布的输出仅来自 filter 表,还有 nat 和 mangle 表。您可以使用以下命令检查它们:

iptables -L -v -n -t mangle
iptables -L -v -n -t nat

下一步是检查问题是否出在来自外部的数据包或对它们的响应。添加(在结尾之前)一个 iptables 规则,该规则只会匹配它们,但不执行任何操作。然后,您可以检查计数器(最左边的列)以查看数据包是否进入:

iptables -I -i eth0 -p tcp --dport 22

其中 eth0 是面向互联网的接口的名称。

顺便说一句,这些 OUTPUT 规则看起来有点奇怪。您明确允许流量选择具有目标端口 1500 的 tcp 流量的子网,然后也允许所有其他流量... 您将获得与拥有空的 OUTPUT 表相同的效果(工作量更少)。

相关内容