V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sakisaki
V2EX  ›  问与答

关于网页浏览过程的疑惑

  •  
  •   sakisaki · 2021-05-07 16:30:29 +08:00 · 741 次点击
    这是一个创建于 1304 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前搭建博客的时候,为了隐藏 vps 的 IP 地址,会套上 CDN 然后在 nginx 的配置里禁止通过 IP 地址直接浏览。

    突然又想到,访问网页的过程就是客户端先通过 DNS 解析域名获得目标 IP,然后在要发送的数据包上标注源 IP 与目标 IP,路由器会将数据包送达。

    服务器是怎么知道发送这个数据包的人是否正在通过 IP 地址直接访问网页呢?

    IvanLi127
        1
    IvanLi127  
       2021-05-07 16:34:13 +08:00   ❤️ 1
    HTTP 请求头里有个叫 Host 的字段,web 服务器靠它区分同一 IP 下不同的站点。
    also24
        2
    also24  
       2021-05-07 16:34:32 +08:00   ❤️ 1
    『在 nginx 的配置里禁止通过 IP 地址直接浏览』指什么操作?

    是想说指定 server_name ?

    https://nginx.org/en/docs/http/server_names.html
    https://tengine.taobao.org/nginx_docs/cn/docs/http/request_processing.html
    huxins
        3
    huxins  
       2021-05-07 16:36:04 +08:00   ❤️ 1
    host,sni
    XIU2
        4
    XIU2  
       2021-05-07 16:47:48 +08:00   ❤️ 1
    @also24 #2 server 中加入下面这段代码,允许 CDN IP 段访问该网站,剩下都一律拒绝。
    allow 127.0.0.0/8;
    deny all;

    另外还需要给服务器 IP 自签证书来避免别人扫描证书泄露域名真实 IP (当通过 HTTPS 访问 IP 或指向一个不存在的域名来访问时,Nginx 会泄露服务器上其他网站用的 SSL 证书,通过该证书可以得知该 IP 是哪个藏在 CDN 后域名的真实 IP )。
    sakisaki
        5
    sakisaki  
    OP
       2021-05-07 16:52:59 +08:00
    @IvanLi127 @huxins 多谢解答,我没有想到包里的其他字段会有我的答案…
    also24
        6
    also24  
       2021-05-07 16:54:04 +08:00
    @XIU2 #4
    这又是从哪里复制来的……

    首先你回复的这段,和我问的那段完全不相关;
    其次,只 allow 127.0.0.0/8 是认真的么? CDN IP 段在 127.0.0.0/8 么……
    sakisaki
        7
    sakisaki  
    OP
       2021-05-07 16:58:40 +08:00
    @also24 我当时的方法是类似
    server {
    listen 80 default;
    server_name _;
    return 403;
    }
    also24
        8
    also24  
       2021-05-07 17:01:15 +08:00
    @sakisaki #7
    那么看我附的文档,理解一下 server_name 的作用原理就明白了。
    ysc3839
        9
    ysc3839  
       2021-05-08 05:40:06 +08:00
    @XIU2 关于你说的证书的问题,从 nginx 1.19.4 开始可以使用 ssl_reject_handshake 。
    http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_reject_handshake
    XIU2
        10
    XIU2  
       2021-05-08 09:09:07 +08:00
    @ysc3839 #9 这么多年了,Nginx 终于把这个问题给解决了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2631 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.