我有一个本地 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 放在网络上不是默认网关的机器上,那么您将不知道如何访问它。