将Nginx服务器名称修改为任意名字

2022-08-13 16:25:11 浏览数 (1)

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。小z博客也正好使用的Nginx作为WEB服务器,为了装逼,我们来将nginx服务器名称修改为其它名字。

下载nginx

nginx官方下载地址为:http://nginx.org/en/download.html ,找到最新稳定版本将源码下载到本地。

修改nginx源码

将下载后的nginx源码解压,需要对以下几个文件做出修改。这里我们演示将nginx服务器名称修改为XCDN

文件一:src/core/nginx.h

代码语言:javascript复制
#define NGINX_VER          "nginx/" NGINX_VERSION
//修改为
#define NGINX_VER          "xcdn/" NGINX_VERSION

#define NGINX_VAR          "NGINX"
//修改为
#define NGINX_VAR          "XCDN"

文件二:src/http/ngx_http_header_filter_module.c

代码语言:javascript复制
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
//修改为
static u_char ngx_http_server_string[] = "Server: xcdn" CRLF;

文件三:src/http/ngx_http_special_response.c

代码语言:javascript复制
"<hr><center>nginx</center>" CRLF
//修改为
"<hr><center>xcdn</center>" CRLF

文件四:src/http/v2/ngx_http_v2_filter_module.c

代码语言:javascript复制
"http2 output header: "server: nginx"");
//修改为
"http2 output header: "server: xcdn"");

通过修改上面4个文件,我们已将nginx服务器名修改为了xcdn,如果不想去找到文件一个一个修改,也可以使用sed命令直接替换:

代码语言:javascript复制
#执行更名操作
sed -i "s#"NGINX"#"xcdn"#" src/core/nginx.h
sed -i "s#"nginx/"#"xcdn/"#" src/core/nginx.h
sed -i "s#Server: nginx#Server: xcdn#" src/http/ngx_http_header_filter_module.c
sed -i "s#"<hr><center>nginx</center>"#"<hr><center>xcdn</center>"#" src/http/ngx_http_special_response.c
sed -i "s#server: nginx#server: xcdn#"

测试

修改完毕后,需要将源码重新编译,如何编译nginx这篇文章不做描述,具体请网上搜索。我们可以使用curl命令来测试是否修改成功,执行测试命令curl -I https://www.xiaoz.me返回的结果如下,可以看到Server那里已经变为xcdn

总结

修改Nginx服务器名称其实不单为了装逼,也能起到一定防护作用,nginx曾爆出过漏洞,修改服务器名称后机器人扫描到服务器名称不是nginx可能就绕过了,从而达到欺骗手段。

此文部分内容参考了:如何修改Nginx服务内部默认名称为任意名字

0 人点赞