外网可以访问服务器,但局域网内不能访问

外网可以访问服务器,但局域网内不能访问

我有一台服务器,其静态 IP 为 192.168.1.5。如果我从 LAN 外部访问该服务器,一切正常,但我无法在 LAN 内部使用该服务器。

如果我在网络外输入主机名 (bbb.scotia.ie),它可以正确解析,但在 LAN 内会出现超时。我可以使用网络内的 IP 地址输入。

我究竟做错了什么?

/etc/network/interfaces以下是和的输出/etc/resolv.conf

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback
        post-up ip addr add 93.107.237.199/32 dev lo
        pre-down ip addr del 93.107.237.199/32 dev lo
# The primary network interface
auto eno1
iface eno1 inet static
        address 192.168.1.5
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8

有人能帮忙吗?我猜是 DNS 问题,但不知道如何解决。

运行 Ubuntu 16.04

答案1

欢迎来到 Ask Ubuntu。您的问题可以在这里得到解答,但这不是 Ubuntu 特有的问题。它确实属于服务器故障

如果我理解正确的话,您的 LAN 上有此服务器,并且您在路由器上将端口从 WAN 转发到内部地址?您的问题是,只有当您的其他计算机位于 LAN 之外时(或使用内部 IP),它们才能看到服务器?

如果是这样,那么任何内部计算机请求解析“bbb.scotia.ie”的 DNS 名称都会得到答案93.107.237.199, 哪个不是内部 IP 地址。它会将您的请求发送到 LAN 之外,但由于您的传出 IP 也是您请求的 IP,因此它不会发送到任何地方。这就是它无法在您的 LAN 内工作的原因。

您有以下几种选择:

1.NAT反射:如果您的网关/路由器支持此功能,请启用它。pfSense 对此有很好的支持(pfSense 手册

2. 拆分 DNS(推荐):创建您自己的内部 DNS 服务器,所有内部计算机将首先查询该服务器。设置内部 DNS 服务器,以便它为内部计算机提供 192.168.1.5 而不是 93.107.237.199。您的路由器可能也有 DNS 缓存,也可能用于此目的。

3.写入每台电脑的主机文件:初始工作量最少!但会让你绊倒!您可以在每台计算机上编辑主机文件,以指示 bbb.scotia.ie 应该是 192.168.1.5。但我们知道,如果您离开 LAN,您将需要禁用该条目才能再次从外部访问它!

相关内容