AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1079731
Accepted
manoll0
manoll0
Asked: 2021-10-07 03:49:22 +0800 CST2021-10-07 03:49:22 +0800 CST 2021-10-07 03:49:22 +0800 CST

Fritz!Box 和 Ubuntu:使用 Apache Httpd 和 Bind 在 LAN 中公开 URL

  • 772

我希望有人可以帮助我完成这个 - 我想 - 简单的任务。

情况:

在我的私有 LAN 上,我运行一个 Internet 路由器(“Fritz!Box”)和一个带有 Ubuntu 20.04 LTS 的 Raspberry Pi。我为私人目的开发了一个小型 Spring Boot Web-App,我只想在我的 LAN 中使用它(或者可能通过 VPN 从外部访问)。Web-App 的本机 URL 是“http://ubuntu:8080”,因为我的 Raspberry 被称为“ubuntu”并且应用程序在 Tomcat-Server 上运行。现在我想在局域网内公开一个 URL,例如“http://thats-my.app”,并将其用作应用程序的基本 URL。目前,ubuntu 上的 curl 可以访问它,我的其他 PC 不能。

更好的是 FQDN“http://wow.thats-my.app”(带有子域),这样我就可以对所有应用程序使用相同的域和顶级域,并且只改变子域,例如“http ://super.thats-my.app" 等等.. 免责声明:由于我通过 SSH 工作,所有配置都是仅在终端完成的。请考虑我不使用 Ubuntu 的桌面表面。

提前感谢您的时间,并希望您的帮助!

这是我对 ubuntu 系统所做的设置。此处未显示的内容被注释掉!:

ufw

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 9090/tcp                   ALLOW IN    Anywhere                   # UBUNTU-COCKPIT
[ 2] 3306/tcp                   ALLOW IN    Anywhere                   # MYSQL
[ 3] Apache Full                ALLOW IN    Anywhere                   # :80,:443
[ 4] Bind9                      ALLOW IN    Anywhere                   # :53
[ 5] OpenSSH                    ALLOW IN    Anywhere                   # :22
[ 6] 8080:8090/tcp              ALLOW IN    Anywhere                   # TOMCAT
[ 7] 9090/tcp (v6)              ALLOW IN    Anywhere (v6)              # UBUNTU-COCKPIT
[ 8] 3306/tcp (v6)              ALLOW IN    Anywhere (v6)              # MYSQL
[ 9] Apache Full (v6)           ALLOW IN    Anywhere (v6)              # :80,:443
[10] Bind9 (v6)                 ALLOW IN    Anywhere (v6)              # :53
[11] OpenSSH (v6)               ALLOW IN    Anywhere (v6)              # :22
[12] 8080:8090/tcp (v6)         ALLOW IN    Anywhere (v6)              # TOMCAT

/etc/hosts

127.0.0.1 localhost.localdomain localhost
127.0.1.1 ubuntu
127.0.1.1 thats-my.app

(--> 没有 IPv6 条目)

/etc/apache2/sites-available/thats-my.conf

<VirtualHost *:80>
        ServerName thats-my.app
        ServerAlias thats-my
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass               / http://localhost:8080/
        ProxyPassReverse        / http://localhost:8080/
</VirtualHost>

--> 指向启用站点的目录的符号链接

/etc/bind/named.conf.local

zone "thats-my.app" IN {
        type master;
        file "/etc/bind/forward.thats-my.app.db";
        allow-update { none; };
};

zone "178.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/reverse.thats-my.app.db";
        allow-update { none; };
};

/etc/bind/named.conf.options

options {
        directory "/var/cache/bind";
        forwarders {
        1.1.1.1;
        1.0.0.1;
        8.8.8.8;
        8.8.4.4;
        };
        dnssec-validation auto;
        listen-on-v6 { any; };
        allow-query { any; };
};

/etc/bind/forward.thats-my.app.db

$TTL    604800
@       IN      SOA     ns1.thats-my.app. admin.ns1.thats-my.app. (
                              5         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.thats-my.app.
ns1     IN      A       192.168.178.23

/etc/bind/reverse.thats-my.app.db

$TTL    604800
@       IN      SOA     thats-my.app. admin.thats-my.app. (
                              4         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.thats-my.app.
ns1     IN      A       192.168.178.23
23      IN      PTR     ns1.thats-my.app.

--> 终端输入:

sudo systemctl restart named
sudo systemctl restart apache2
sudo systemctl restart bind9

--> 路由器中的 DNS 配置

将 DNS IPv4 IP 设置为 192.168.178.23(主要和次要)

将DNS IPv6 IP设置为ubuntu机器的IPv6地址(主要和次要)

这是我得到的:

在本地 Ubuntu-Server 上

$ curl thats-my.app -> OK
$ dig thats-my.app -> status: NOERROR   *but*  SERVER 1.1.1.1#53 ???
$ dig thats-my.app @127.0.1.1 -> "connection timed out!"
$ dig thats-my.app @192.198.178.23 -> "connections timed out!"

在 LAN 上 Windows-PC PowerShell

curl thats-my.app -> cannot be resolved

局域网上 Windows-PC Chrome 浏览器

http://thats-my.app -> 网站无法访问/DNS_PROBE_FINISHED_NXDOMAIN

如果您查看“挖掘”结果,我会发现 Bind9 在这里不起作用。你怎么看?

谢谢!

url bind local-area-network apache-2.4 ubuntu-20.04
  • 1 1 个回答
  • 160 Views

1 个回答

  • Voted
  1. Best Answer
    manoll0
    2021-10-10T11:54:27+08:002021-10-10T11:54:27+08:00

    我终于找到了一个解决方案:路由器(“AVM Fritz!Box”,在德国很常见)具有安全功能“DNS-Rebind-Protection”,可以防止 LAN 内的 DNS 请求发送到 LAN 内的另一台主机。当您通过在文本框中输入例如 TLD“lan”或在上面的“app”的情况下设置例外时,您的本地 DNS 服务器可以正常工作。您可以删除转发器。

    PS:您不需要 /etc/hosts 中的条目!

    PPS:https ://bind9.readthedocs.io/en/latest/index.html

    祝你好运!

    • 0

相关问题

  • Sane Sharepoint 2007 网址

  • IIS 7 中的 URL 重写

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 如何将 URL 添加到 wiki (MediaWiki) 支持的文档?

  • 如何强制我的网址始终以 www 开头?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve