You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Nginx响应特定SSH子域名并限制主域名SSH访问

嘿,这两个问题其实都可以通过配置调整轻松解决,我分两部分给你拆解:

一、阻止Nginx在SSH子域名上提供网站服务

要让ssh.yourdomain.com完全不提供HTTP/HTTPS服务,你需要给Nginx加一个专门的配置,直接拒绝这个子域名的所有Web请求:

  1. 登录服务器,找到Nginx的配置目录(通常是/etc/nginx/sites-available/或/etc/nginx/conf.d/)。
  2. 创建一个新的配置文件(比如ssh-subdomain.conf),或者修改现有配置,添加下面的server块:
    # 处理HTTP请求
    server {
        listen 80;
        listen [::]:80;
        server_name ssh.yourdomain.com;
    
        # Nginx特有的444状态码,直接关闭TCP连接,不给任何Web响应
        return 444;
    }
    
    # 如果你的服务器启用了HTTPS,必须加上这个块处理HTTPS请求
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name ssh.yourdomain.com;
    
        # 可以用任意SSL证书(哪怕是自签的),或者如果不需要SSL握手,也可以直接返回444
        ssl_certificate /path/to/your/cert.pem;
        ssl_certificate_key /path/to/your/key.pem;
    
        return 444;
    }
    
  3. 测试配置是否合法:sudo nginx -t,如果输出test is successful,就重启Nginx生效:sudo systemctl restart nginx。

⚠️ 注意:如果你的Nginx有泛域名配置(比如server_name *.yourdomain.com;),一定要让这个ssh子域名的配置优先加载(比如放在泛域名配置文件前面),因为Nginx会匹配最具体的server_name。

二、拒绝主域名的SSH访问

这部分分两种情况,取决于你的主域名和SSH子域名是否指向同一个IP:

情况1:主域名和SSH子域名用不同IP

这种情况最省心,直接让SSH服务只监听SSH子域名的IP:

  1. 打开SSH配置文件:sudo nano /etc/ssh/sshd_config
  2. 找到ListenAddress选项,注释掉原有内容,添加你的SSH子域名IP:
    ListenAddress 192.168.1.100  # 替换成ssh.yourdomain.com对应的IP
    
  3. 保存后重启SSH服务:sudo systemctl restart sshd
    这样主域名的IP上不会有SSH监听,自然就无法通过主域名连接了。

情况2:主域名和SSH子域名用同一个IP

这种情况下需要通过主机名过滤来限制,有两种可靠方法:

方法A:用SSH的Match规则

在/etc/ssh/sshd_config末尾添加:

# 拒绝所有非ssh子域名的SSH连接
Match Host !ssh.yourdomain.com
    DenyUsers *

⚠️ 注意:这个方法依赖客户端IP的**反向解析(PTR记录)**正确映射到ssh.yourdomain.com,如果反向解析不稳定,建议用方法B。

方法B:用TCP Wrappers(hosts.allow/deny)

  1. 编辑/etc/hosts.allow,添加:
    sshd: ssh.yourdomain.com
    
  2. 编辑/etc/hosts.deny,添加:
    sshd: ALL
    

这样只有来自ssh.yourdomain.com的请求会被允许,其他全部拒绝,同样需要反向解析正常工作。

内容的提问来源于stack exchange,提问作者Kiyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:22:31