在 LAN 中无法访问具有外部 IP 的本地服务器

在 LAN 中无法访问具有外部 IP 的本地服务器

我有一个本地 Debain 服务器,有外部 IP 和自己的域名。但我遇到了以下问题:

  • 使用 LAN 外部的 DNS/外部 IP:有效
  • 使用 LAN 内部的本地 IP:有效
  • 从内部使用 DNS/外部 IP:不起作用 -> 超时

使用 telnet 连接到域时,我没有收到任何消息。但 ping 和 traceroute 确实有效。通过浏览器访问时没有显示任何消息。由于服务器没有记录任何内容,我不知道从哪里开始搜索。

下面是我的一个 nginx 配置:

server {
    listen 443;
    ssl on;
    server_name wiki.*;
    ssl_certificate     /etc/letsencrypt/live/admin.domain.de    /fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/admin.domain.de/privkey.pem;

    set $root_path "/home/wiki/dokuwiki";
    root $root_path;

    access_log /var/log/nginx/dokuwiki-access.log;
    error_log /var/log/nginx/dokuwiki-error.log;

    index index.php index.html doku.php;
    location ~ /(data|conf|bin|inc)/ {
         deny all;
    }
    location ~ /\.ht {
         deny  all;
    }
    location ~ \.php {
         fastcgi_index index.php;
         fastcgi_split_path_info ^(.+\.php)(.*)$;
         include /etc/nginx/fastcgi_params;
         fastcgi_pass unix:/var/run/php5-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
 }

谢谢你!

答案1

您的路由器要么不支持发夹式 NAT,要么支持但未启用。

答案2

听起来您还没有在 LAN 内设置到公共 IP 的路由。默认网关/路由作为私有 IP 通常会覆盖它,因为数据包将转到私有 IP 进行路由,并且机器将在路由表中查找下一个路由数据包的位置,并且由于公共 IP 是网关上的本地接口 IP,因此它将直接路由到该接口。如果机器不是您的默认路由,那么您应该在网关或单个客户端上为公共 IP 添加静态路由,作为具有相关公共 IP 的机器的私有 IP。您还需要启用 IP 转发。

如果您确定这不是防火墙问题,那么这通常是首先要查看的地方。“是否有到 IP 的路由?”如果您只是将公共 IP 放在网络上不是默认网关的机器上,那么您将不知道如何访问它。

相关内容