前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用腾讯云轻量应用服务器搭建 WHOIS 查询接口

利用腾讯云轻量应用服务器搭建 WHOIS 查询接口

原创
作者头像
Im小泽
修改2024-03-01 10:57:02
2490
修改2024-03-01 10:57:02
举报

WHOIS 是一个用于查询域名/IP/ASN 信息的协议,可以查询资源的注册信息等,本文将介绍如何利用轻量应用服务器搭建 WHOIS 查询接口。

部署轻量应用服务器

登录轻量应用服务器

  1. 打开轻量应用服务器控制台找到您的实例,并点击登录
    轻量应用服务器控制台
    轻量应用服务器控制台
  2. 点击登录登录到服务器。
    登录服务器
    登录服务器
  3. 输入sudo su切换到 root 用户,然后输入cd /root进入 root 用户的家目录。
    切换到 root 用户
    切换到 root 用户

安装 WHOIS 工具

安装依赖

1.更新软件包。

apt update && apt upgrade -y

2.在终端输入以下命令安装redis-server

apt install redis-server -y
安装 redis-server
安装 redis-server

安装 WHOIS

1.打开Releases页面,找到最新的版本,选择系统对应的版本复制下载链接,轻量应用服务器一般为amd64架构。

下载 WHOIS
下载 WHOIS

2.在终端输入以下命令下载并解压。

mkdir whois && cd whois
wget https://github.com/KincaidYang/whois/releases/download/v0.1.6/whois_0.1.6_linux_amd64.tar.gz -O whois.tar.gz
tar -xzf whois.tar.gz

3.修改配置文件。

vim config.json
修改配置文件
修改配置文件
{
    "redis": {
        "addr": "localhost:6379",
        "password": "",
        "db": 0
    },
    "cacheExpiration": 3600,
    "port": 8043,
    "rateLimit": 50
}
  • redis:Redis 服务器的地址、密码和数据库。
  • cacheExpiration:缓存过期时间,单位秒。
  • port:WHOIS 服务端口。
  • rateLimit:限制每秒请求次数,请注意该限制针对的是程序向注册局发起查询的频率,而不是用户向 WHOIS 服务发起查询的频率,如需限制用户查询频率,请在 Nginx 或其他代理中配置。

启动 WHOIS

1.在终端输入以下命令启动 WHOIS。

./whois

2.程序启动后会显示Server is listening on port 8043...

启动 WHOIS
启动 WHOIS

3.使用浏览器访问http://服务器公网IP:8043,如果显示No WHOIS or RDAP server known for TLD:则说明 WHOIS 服务已启动成功。

访问前请先前往腾讯云轻量应用服务器控制台,点击对应服务器,在防火墙中开放 8043 端口。

4.终端断开连接后 WHOIS 服务会停止,可以使用screennohup命令使其在后台运行,或参照下方教程设置进程守护

进程守护

vim /etc/systemd/system/httpwhois.service
[Unit]
[Unit]
Description=httpwhois
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/path/to/whois/whois
WorkingDirectory=/path/to/whois
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • ExecStart:程序路径。
  • WorkingDirectory:程序所在目录,请将/path/to/whois替换为实际路径。

设置完成后输入以下命令运行:

systemctl start httpwhois
systemctl enable httpwhois

Nginx 反代

如果您需要使用域名访问 WHOIS 服务,可以使用 Nginx 反代,安装Nginx的步骤本文不再赘述,您可以参考Nginx 编译开启 Quic 或 HTTP/3,下面是示例配置文件:

server {
       listen 443 ssl;
       listen [::]:443 ssl;

       # 用于支持Quic或HTTP/3
       listen 443 quic;
       listen [::]:443 quic;

       # 开启HTTP/2
       http2 on;

       # 设置域名
       server_name whois.ddnsip.cn;

       # Quic或HTTP/3响应头
       add_header Alt-Svc 'h3=":443"; ma=86400';

       # HSTS
       add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
       add_header X-Frame-Options "SAMEORIGIN";
       add_header X-Content-Type-Options "nosniff";
       add_header X-XSS-Protection "1; mode=block";
       add_header X-robot-Tag "all";
       add_header x-download-options "noopen";

       # CORS
       add_header Access-Control-Allow-Origin *;
       add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
       add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";

       # 反代
       location / {
              proxy_pass http://127.0.0.1:8043;
          }

       # SSL配置
       ssl_certificate  /etc/ssl/nginx/fullchain.crt; 
       ssl_certificate_key  /etc/ssl/nginx/private.key;
       ssl_session_timeout 5m;
       ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; 
       ssl_prefer_server_ciphers on;
    }

使用 WHOIS

WHOIS 服务支持查询域名、IP 和 ASN 的 WHOIS 信息。

  • 使用浏览器访问http://服务器公网IP:8043/example.com即可查询example.com的 WHOIS 信息。
    查询域名 WHOIS
    查询域名 WHOIS
  • 使用浏览器访问http://服务器公网IP:8043/1.1.1.1即可查询1.1.1.1的 WHOIS 信息。
    查询 IP WHOIS
    查询 IP WHOIS
  • 使用浏览器访问http://服务器公网IP:8043/AS205794即可查询AS205794的 WHOIS 信息。
    查询 ASN WHOIS
    查询 ASN WHOIS

附录

结语

QAQ 如果不想自建的话可以直接使用whois.ddnsip.cn提供的服务,如果有问题欢迎在代码仓库上提交issue,如果觉得本文对您有所帮助,欢迎去GitHub点个 star。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 部署轻量应用服务器
  • 登录轻量应用服务器
  • 安装 WHOIS 工具
    • 安装依赖
      • 安装 WHOIS
        • 启动 WHOIS
          • 进程守护
            • Nginx 反代
            • 使用 WHOIS
            • 附录
            • 结语
            相关产品与服务
            轻量应用服务器
            轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档