簡體   English   中英

只強制域名linux

[英]Force domain name only linux

我有一個域

https://www.example.com

和我的服務器的外部 ip 地址

xxx.xxx.xxx.xxx

我可以訪問我的域和 ip 地址,這將顯示我網站的同一頁面

我的 httpd-vhosts.conf 中的“唯一”代碼是:

<virtualhost *:443>
    ServerAdmin webmaster@example.com
    DocumentRoot "/mydir/"
    ServerName www.example.com
    ServerAlias www.example.com
    ErrorLog "logs/example.com-error.log" 
    CustomLog "logs/example.com-access.log" common
    SSLEngine on
    SSLCertificateFile "etc/ssl.crt/example.crt"
    SSLCertificateKeyFile "etc/ssl.key/example.key"
</virtualhost>

現在,我想使用我的外部 ip 地址刪除對所有人的訪問權限。 我想強制訪問者使用我的域名而不是我的外部 ip。 這完全是因為我的網站有 cloudflare dns,我不希望任何人直接訪問我的 ip。

How to disable direct external ip access ?
Should I disabled all of it ports ?

TLDR:你不能。

客戶端將始終使用 IP 地址連接到服務器。 域名通過客戶端操作系統中的DNS或hosts文件翻譯成對應的IP地址。 您可以使用像 Wireshark 這樣的網絡嗅探器來查看所有 IP 數據包都使用 IP 地址。 只有 HTTP/S 內容有額外的主機信息,如域名。 但僅使用 IP 完成路由。

我已經通過將 httpd-vhosts.conf 修改為

<virtualhost *:443>
    ServerAdmin webmaster@example.com
    DocumentRoot "/mydir/"
    ServerName www.example.com
    ServerAlias www.example.com
    ErrorLog "logs/example.com-error.log" 
    CustomLog "logs/example.com-access.log" common
    SSLEngine on
    SSLCertificateFile "etc/ssl.crt/example.crt"
    SSLCertificateKeyFile "etc/ssl.key/example.key"
</virtualhost>

<virtualhost *:80>
  ServerName localhost
  Redirect 403 /
  UseCanonicalName Off
  UserDir disabled
</VirtualHost>

<virtualhost *:80>
  ServerName xxx.xxx.xxx.xxx
  Redirect 403 /
  UseCanonicalName Off
  UserDir disabled
</VirtualHost>

<virtualhost *:443>
  ServerName localhost
  Redirect 403 /
  UseCanonicalName Off
  UserDir disabled
</VirtualHost>

<virtualhost *:443>
  ServerName xxx.xxx.xxx.xxx
  Redirect 403 /
  UseCanonicalName Off
  UserDir disabled
</VirtualHost>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM