外部无法访问网站,内部可以访问

外部无法访问网站,内部可以访问

情况如下。可以访问基于 Apache 的站点内部(从其服务器内)via curl,但无法访问外在地(除了 之外,没有任何ping方法有效:我已经尝试过curl浏览器访问) - 它超时。我尝试使用netcatnetstattracerouteiptables按照上的建议确定问题的根源这一页),但无济于事。

这是iptables配置(请注意,我的活动网络接口是eth1):

iptables -L -nv
Chain INPUT (policy DROP 108K packets, 18M bytes)
 pkts bytes target     prot opt in     out     source               destination
 4575  394K fail2ban-ssh  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22
11433 3923K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
 5262  481K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    3   156 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:389
    0     0 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
    0     0 ACCEPT     tcp  --  venet0 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:830:831
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1170
    3   180 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  venet0 *       10.0.0.0/8           0.0.0.0/0
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED,DNAT
    0     0 ACCEPT     tcp  --  venet0 eth0    0.0.0.0/0            0.0.0.0/0            tcp dpts:830:831
    0     0 ACCEPT     tcp  --  venet0 eth0    0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  venet0 eth0    0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     udp  --  venet0 eth0    0.0.0.0/0            0.0.0.0/0            udp dpt:53

Chain OUTPUT (policy ACCEPT 15571 packets, 4718K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain fail2ban-ssh (1 references)
 pkts bytes target     prot opt in     out     source               destination
 4575  394K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

答案1

首先尝试禁用服务器上的 iptables 并尝试访问该页面,

    #service iptables stop

对于Debian:

    #iptables -F

这将刷新所有规则

如果端口号不是默认的 80,还要用 ip 指定端口号。还要尝试将 selinux 设置为宽容模式。

   #setenforce 0

如果网页服务服务器位于 virtualbox 内,您还需要进行端口转发。

我想你所说的外部是指本地局域网。

在 apache 配置文件(httpd.conf、apache2.conf、listen.conf...)中搜索 LISTEN 指令,如果您看到 localhost 或 127.0.0.1,则需要用您的服务器 IP 覆盖。

  listen 192.168.1.15:80

如果您在发现这是一个selinux问题后想要启用selinux,那么您应该在selinux中允许httpd,

      # setsebool -P httpd_can_network_connect=1

如果您发现这是 iptables 问题,并且想要启用 ip 表并继续访问该页面,则在防火墙中允许端口 80。

要在 debian iptables 中允许 http 和 https,请参阅此链接:

https://github.com/iahmad-khan/system-admin/blob/master/iptables-debian

相关内容