[英]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.