今天群里的小伙伴讨论如何禁止ip直接访问网站,又被我偷学了一招,立马给代码狗安排上。现在通过ip+端口访问本站将不能看到内容,有效防止恶意解析的情况发生。
以下教程在宝塔环境中实现,不是宝塔也能实现。使用的是Nginx网站环境。
先说下原理:简单来说就是设置一个默认的网站,当访问名称无匹配时返回默认网站内容。一般来说Nginx都自带了默认的静态网站,默认网站目录绑定的Nginx的安装目录下的html文件夹。这里使用宝塔的,就不多讨论别的环境了。
使用过Nginx的站长都应该看到过这样的一句配置。
复制
listen 80; server_name daimadog.org;
其中 server_name就是用户访问时的服务名称,如果我们把这个名称改成ip地址,那么将只能通过ip访问,别的名称匹配不了。
于是我们可以将Nginx的默认网站配置文件修改成监听 server_name 为我们进制的ip地址,这样用户通过ip地址访问就会进入到我们设置的默认网站中。当然你也可以直接通过Nginx配置给他返回错误代码。
如果你的网站启用了ssl证书,那么你还需要监听443端口,配置参考下面的:
复制
server { listen 80; listen 443 ssl; server_name _; # DEFAULT SSL CONFIG ssl_certificate /www/server/panel/vhost/cert/0.default/fullchain.pem; ssl_certificate_key /www/server/panel/vhost/cert/0.default/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers off; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; add_header Strict-Transport-Security "max-age=31536000"; index index.html; root /www/server/nginx/html; }
证书随便搞一个,错误的也行。
如果你使用的是宝塔,那么可以直接将上面的代码复制,然后覆盖/www/server/panel/vhost/nginx/0.default.conf
文件,如果你使用的宝塔版本支持设置https防窜站,那么只需要点击一下防窜站功能就行了。
评论 (0)