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

Ubuntu Server 16.04下如何限制OpenSSH Server仅监听ssh.example.com?

如何让OpenSSH仅监听指定域名对应的IP(Ubuntu 16.04)

当然可以实现这个需求!不过得先明确一个核心点:SSH服务实际监听的是服务器的IP地址,而非域名——域名只是IP地址的映射别名。所以我们的目标是让SSH只绑定到ssh.example.com对应的那个IP上,这样只有通过该域名(或直接访问对应IP)才能发起SSH连接,example.com对应的IP则无法接收SSH请求。

步骤1:确认两个域名对应的IP地址

首先要搞清楚ssh.example.com和example.com各自指向的IP,在服务器上执行以下命令:

host ssh.example.com
host example.com

输出会类似这样:

ssh.example.com has address 192.168.1.100
example.com has address 192.168.1.101

记下ssh.example.com对应的IP(比如上面的192.168.1.100)。

步骤2:修改OpenSSH配置文件

Ubuntu 16.04的SSH服务配置文件位于/etc/ssh/sshd_config,用文本编辑器打开它:

sudo nano /etc/ssh/sshd_config

找到ListenAddress配置项(如果没有就手动添加)。默认情况下,这一行可能被注释或者设置为0.0.0.0(表示监听所有IP),现在把它改成ssh.example.com对应的IP:

ListenAddress 192.168.1.100

如果你的服务器同时使用IPv6,也可以添加对应的IPv6地址监听(格式为ListenAddress [2001:db8::1])。

步骤3:重启SSH服务使配置生效

保存并退出编辑器后,重启SSH服务:

sudo systemctl restart sshd
# 或者Ubuntu 16.04也可以用旧的service命令:
# sudo service ssh restart

步骤4:验证监听配置是否生效

执行以下命令查看SSH服务当前监听的IP:

ss -tulpn | grep sshd

如果配置成功,输出里只会显示你指定的那个IP,而不是0.0.0.0了。

注意事项

  • 静态IP要求:这个方法仅适用于服务器IP是静态的情况。如果你的服务器使用动态IP,ssh.example.com对应的IP会变化,此时配置会失效。这种场景下可以考虑用防火墙规则配合定时任务更新IP限制,但复杂度会高一些。
  • 防锁仓提醒:修改配置前务必保持一个已连接的SSH会话作为备用!重启服务后先测试新的连接是否正常,确认没问题再关闭备用会话,避免把自己锁在服务器外面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:23:06