这篇文章来说一下宝塔Linux面板怎么操作禁止通过IP来直接访问网站,并且防止恶意解析。

这里分为两个版本方法:一个是 Nginx 的操作方法 和 Apache 的操作方法。

Nginx操作步骤

1、首先需要绑定一个默认的站点,也就是找一个空闲不用的站点,所有未在面板设置中绑定的域名都会访问到这个默认站点

宝塔面板设置禁止通过IP直接访问网站防止恶意解析 第1张

宝塔面板设置禁止通过IP直接访问网站防止恶意解析 第2张

2、绑定好默认站点之后,修改默认站点的的配置文件

宝塔面板设置禁止通过IP直接访问网站防止恶意解析 第3张

添加 return 403; 可以把403改成404或502等错误码,为了防止使用https访问,我们在添加一个 server_name 把它写上服务器的IP地址,同时监听443端口 listen 443;

server
{
    listen 80 default_server;
    #监听https 443端口
    listen 443;
    #xxx.xxx.xxx.xxx为你服务器的IP地址
    server_name xxx.xxx.xxx.xxx;
    #错误码
    return 403;

按照上方代码修改保存配置文件后,然后我们再使用IP访问看一下效果

宝塔面板设置禁止通过IP直接访问网站防止恶意解析 第4张

同时,为了更安全起见,你可以打开HTTPS防窜站

宝塔面板设置禁止通过IP直接访问网站防止恶意解析 第5张

Apache操作步骤

如果你的Apache开通了虚拟主机,则需要修改 conf/extra/httpd-vhosts.conf 文件

如何判断Apache是否开通了虚拟主机,在配置文件 httpd.conf 中搜索,若有类似如下的选项的,则开启了虚拟主机,#为注释

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

若是开通了虚拟主机,则需要在 httpd-vhosts.conf 中修改配置如下,若没有开通虚拟主机,则可以直接在 httpd.conf 文件最后面,加入以下代码:

NameVirtualHost XXX.XXX.XXX.XXX
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName  XXX.XXX.XXX.XXX
<Directory />
Order Allow,Deny
Deny from all
</Directory>
</virtualhost>
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName  demo.demo.demo
DocumentRoot  /home/wwwroot/
</virtualhost>

其中XXX.XXX.XXX.XXX为你的IP地址,第一处 virtualhost 配置为拒绝IP的任何访问请求,返回403错误

第二处的 virtualhost 配置为允许通过demo.demo.demo这个域名访问,网站主目录为/home/wwwroot/

当然还可以新建一个虚拟主机配置,将来自IP的访问Rewrite到一个自定义的PHP页面,利用Apache的Rewrite和PHP实现400错误