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
    • 最新
    • 标签
主页 / computer / 问题 / 1689205
Accepted
Ethan Armstrong
Ethan Armstrong
Asked: 2021-11-24 17:25:29 +0800 CST2021-11-24 17:25:29 +0800 CST 2021-11-24 17:25:29 +0800 CST

域名 ddns 路由

  • 772

我正在尝试在我的家庭网络上托管一个网页,只是想确保我在正确的轨道上。

我的 ISP,没有静态 IP,它们阻止了 80 端口的入站,所以特别困难

我当前的设置使用 no-ip 为我的网络创建一个静态地址,即abc.ddns.net指向a.b.c.d

我有一个托管的网络服务器和端口转发到http://abc.ddns.net:100并且可以从外部访问它,但是我不喜欢记住端口并且发现它进入笨重。

所以我一直试图找到解决这个问题的方法,我目前的想法是有一个site.ddns.net路由到的子域,http://abc.ddns.net:100但这会在物理上改变我想避免的地址栏 No-Ip 提供了一个域屏蔽功能,它将在保持重定向的同时保持地址栏中的域名,但是这不会更新,因此两者abc.ddns.net:100/都abc.ddns.net:100/page1显示为site.ddns.net. 这不是最糟糕的解决方案,但并不理想

我还对运行 Nginx 的代理服务器进行了一些试验,这里的问题是端口80仍然被阻塞,所以流量需要通过端口路由81,也因为我没有静态 ip,所有流量都解析到a.b.c.d:81最终处理来自不同的流量子域作为相同的请求

无论如何,我的设置变得复杂了。简而言之,我希望将域名abc.ddns.net映射到my.public.ip.address:port其他子域site.ddns.net映射到my.public.ip.address:port2,同时在非静态 ip 和端口80+443上被阻止,同时不让浏览器将地址恢复为实际端口

编辑:我已经在我的网络之外设置了一个代理服务器,但我仍然无法为@user1686 澄清我说的原因

也因为我没有静态 IP,所有流量都解析为 abcd:81 最终将来自不同子域的流量视为相同的请求

是因为在 nginx 上设置阻塞时看起来像这样

server {
    listen 80;
    server_name site.ddns.net;

    location / {
        proxy_pass http://abc.ddns.net:100;
        proxy_set_header site.ddns.net;
    }   
}

流量不会转发,site.ddns.net而是将您发送到默认的 nginx 页面

但是,如果我添加

server {
    listen 80;
    server_name upload-server.ddns.net;

    location / {
        proxy_pass http://llibyddap.ddns.net:100;
        proxy_set_header upload-server.ddns.net;
    }   
}

server {
    listen 80;
    server_name a.b.c.d

    location / {
        proxy_pass http://abc.ddns.net:100;
    }   
}

它正确路由流量,我将其解释为 no-ip 在发送请求之前物理更改site.ddns.net为a.b.c.d导致它错过服务器块。虽然我不完全确定并且可能不正确。

此问题意味着代理服务器会将所有子域路由到同一点。

编辑2:让更改传播并清除我的浏览器缓存后,外部代理服务器完全按照我的意愿工作。感谢大家的帮助

networking dns
  • 2 2 个回答
  • 54 Views

2 个回答

  • Voted
  1. Best Answer
    davidgo
    2021-11-24T21:12:12+08:002021-11-24T21:12:12+08:00

    (对于网站)DNS 没有映射到特定端口的能力,HTTPS 需要是 443,HTTP 需要是 80,或者需要在 URL 中指定端口。

    在提供静态 IP 地址的 VPN 上连接您的服务器或家庭网络可能是一种可行的方法,如果它物有所值的话。(即有一些 VPN 提供商旨在为您提供设备上的静态 IP 地址,而不是提供隐私服务 - 只需 google VPN 静态 IP,您会发现很多产品)

    另一种方法是运行异地反向代理,但它可能比 VPN 路由更复杂且不便宜。

    • 2
  2. user1686
    2021-11-24T21:39:17+08:002021-11-24T21:39:17+08:00

    我也对运行 Nginx 的代理服务器做了一些试验,这里的问题是 80 端口仍然被阻塞,所以需要通过 81 端口路由流量

    然后在其他地方托管代理。如果您不希望将端口添加到 URL,这是您的最佳选择。网络服务器本身或反向代理必须位于端口 80(或 HTTPS 的 443)上。

    (这并不是说 DNS 不能有这样的机制——实际上它有几种可以指向特定端口的记录类型——但是除了通常的“地址”记录和浏览器之外,客户端还必须有意识地寻找它。由于各种原因,请勿使用它们。)

    也因为我没有静态 IP,所有流量都解析为 abcd:81 最终将来自不同子域的流量视为相同的请求

    这没有多大意义——如果 IP 地址不是静态的,DNS 和反向代理的工作方式都不会不同。

    对于反向代理,您要确保代理软件保留原始的“Host:”HTTP 标头(而不是根据代理目标添加一个)。在 Apache 中这是“ProxyPreserveHost”选项,在 Nginx 中可能是类似的。

    无论 IP 地址是静态还是非静态,DNS 都不会对 URL 产生任何影响。如果您访问一个域并实际看到地址栏中的 URL 更改为其他内容(例如更改为 IP 地址),这不是由 DNS 完成的——它是由网络服务器明确发出 HTTP 级重定向到新 URL 完成的。(或者有时是 HTML 重定向。)

    • 1

相关问题

  • 需要验证 firebaseapp.com 子域

  • NAT 后面的 NAT 如何工作(路由器的 NAT 和 ISP 的 NAT)?

  • Win10 1803:如何让移动热点成为专用网络?

  • 迁移 Windows Server 2008

  • nc如何识别服务名称

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve