自学内容网 自学内容网

【ShuQiHere】使用域名代替 IP 地址进行 SSH 连接的完整指南*

【ShuQiHere】


目录

  1. 前言
  2. 基础知识
  3. 准备工作
  4. 详细步骤
  5. 进阶设置
  6. 常见问题解答
  7. 总结

前言

在日常的服务器管理中,我们经常需要通过 SSH(Secure Shell)协议连接到远程服务器。通常,我们使用服务器的 IP 地址进行连接,如 ssh user@123.456.78.90。然而,使用 IP 地址并不直观,尤其当 IP 地址难以记忆或经常变动时。为了解决这个问题,我们可以使用域名代替 IP 地址进行 SSH 连接,例如 ssh user@yourdomain.com

本篇博客将手把手教您如何实现这一目标,即使用域名代替 IP 地址进行 SSH 连接。即使您是初学者,也无需担心,我们将从基础知识开始,一步一步带您完成整个过程。


基础知识

什么是 SSH?

SSH,全称 Secure Shell,是一种网络协议,用于在不安全的网络中为计算机之间提供安全的通信。通过 SSH,您可以:

  • 远程登录:安全地连接到远程服务器的终端。
  • 命令执行:在远程服务器上执行命令。
  • 文件传输:安全地上传和下载文件。

什么是域名和 DNS?

  • 域名(Domain Name):域名是互联网中用于标识计算机或计算机组的名字,由一串用点分隔的名字组成,例如 yourdomain.com。域名比 IP 地址更容易记忆和使用。

  • DNS(Domain Name System):DNS 是域名系统的缩写,它的作用是将域名解析为 IP 地址,就像互联网的“电话簿”。当您在浏览器中输入一个域名时,DNS 会将其转换为对应的 IP 地址,从而找到目标服务器。


准备工作

所需工具和资源

在开始之前,您需要准备以下内容:

  1. 一台服务器
    • 可以是云服务器(如阿里云、腾讯云、AWS 等)或 VPS。
    • 服务器上需安装了 SSH 服务(大多数 Linux 发行版默认已安装)。
  2. 一个域名
    • 您需要拥有一个可用的域名,可以在域名注册商处购买。
    • 域名注册商例如阿里云、腾讯云、GoDaddy、Namecheap 等。
  3. 域名的 DNS 管理权限
    • 您需要能够添加和修改域名的 DNS 记录。
  4. 一台本地计算机
    • 用于连接到远程服务器,可以是 Windows、macOS 或 Linux 系统。

详细步骤

步骤一:获取服务器并启用 SSH 访问

1. 购买或租用服务器

如果您还没有服务器,可以在云服务提供商处购买或租用。

  • 选择操作系统:建议选择常见的 Linux 发行版,如 Ubuntu、CentOS、Debian 等。
  • 获取服务器 IP 地址:购买后,您会得到服务器的公网 IP 地址。
2. 连接到服务器

初次连接可以使用服务器提供的默认用户名和密码。

  • 在本地计算机上打开终端或命令提示符

  • 输入以下命令:

    ssh 用户名@服务器IP地址
    

    示例

    ssh root@123.456.78.90
    
  • 输入密码:根据提示输入服务器密码。

3. 更新服务器

连接成功后,首先更新服务器的软件包。

  • Ubuntu/Debian 系统

    sudo apt update && sudo apt upgrade -y
    
  • CentOS 系统

    sudo yum update -y
    
4. 确保 SSH 服务正在运行

通常,SSH 服务默认已安装并正在运行,但最好确认一下。

  • 检查 SSH 服务状态

    sudo systemctl status ssh    # Ubuntu/Debian
    sudo systemctl status sshd   # CentOS
    
  • 启动 SSH 服务(如有必要)

    sudo systemctl start ssh     # Ubuntu/Debian
    sudo systemctl start sshd    # CentOS
    

步骤二:注册一个域名

如果您还没有域名,需要向域名注册商注册。

1. 选择域名注册商

常见的域名注册商有:

  • 国内:阿里云、腾讯云、华为云等。
  • 国际:GoDaddy、Namecheap、Google Domains 等。
2. 查找并注册域名
  • 访问注册商网站
  • 搜索域名:在搜索框中输入您想要的域名,查看是否可用。
  • 选择域名后缀:常见的有 .com.net.cn 等。
  • 添加到购物车并付款:按照提示完成注册和付款流程。
  • 获取域名管理权限:注册完成后,您将能够管理该域名的 DNS 记录。

步骤三:将域名解析到服务器 IP

现在,您需要将域名与服务器的 IP 地址关联起来。

1. 登录域名注册商控制台
  • 使用您的账号登录域名注册商的网站。
  • 进入域名管理或控制面板。
2. 找到 DNS 管理或域名解析设置
  • 在域名列表中找到您的域名。
  • 进入 DNS 管理或解析设置页面。
3. 添加 DNS 记录

我们需要添加一条或多条 A 记录,将域名指向服务器的 IP 地址。

  • 添加根域名的 A 记录(可选):

    • 主机记录@
    • 记录类型A
    • 记录值:您的服务器 IP 地址(例如 123.456.78.90
    • TTL:默认即可
  • 添加子域名的 A 记录(如 sz.yourdomain.com):

    • 主机记录sz
    • 记录类型A
    • 记录值:您的服务器 IP 地址
    • TTL:默认即可
  • 保存设置:完成后,保存您的 DNS 记录。

4. 等待 DNS 解析生效
  • 生效时间:DNS 记录的更新可能需要 10 分钟到 24 小时不等,但通常几小时内即可生效。

  • 验证解析是否生效

    • 使用 ping 命令

      ping yourdomain.com
      
    • 使用 nslookup 命令

      nslookup yourdomain.com
      
    • 如果返回的 IP 地址是您的服务器 IP,说明解析已生效。

步骤四:配置服务器的 SSH 服务

确保您的服务器允许通过 SSH 连接,并且防火墙设置正确。

1. 配置防火墙

根据您的服务器操作系统,使用对应的防火墙工具。

  • Ubuntu/Debian 系统使用 UFW(Uncomplicated Firewall)

    • 安装 UFW(如未安装)

      sudo apt install ufw
      
    • 允许 SSH 端口(默认 22)

      sudo ufw allow ssh
      
    • 启用防火墙

      sudo ufw enable
      
    • 查看防火墙状态

      sudo ufw status
      
  • CentOS 系统使用 firewalld

    • 安装 firewalld(如未安装)

      sudo yum install firewalld
      
    • 启动 firewalld

      sudo systemctl start firewalld
      sudo systemctl enable firewalld
      
    • 允许 SSH 服务

      sudo firewall-cmd --permanent --add-service=ssh
      sudo firewall-cmd --reload
      
2. 检查 SSH 配置文件
  • 打开 SSH 配置文件

    sudo nano /etc/ssh/sshd_config
    
  • 确认以下设置

    • 允许根用户登录(可选,不推荐)

      PermitRootLogin yes
      
    • 密码认证

      PasswordAuthentication yes
      
  • 保存并退出:按 Ctrl + X,然后按 Y,最后按 Enter

  • 重启 SSH 服务

    sudo systemctl restart ssh    # Ubuntu/Debian
    sudo systemctl restart sshd   # CentOS
    

步骤五:使用域名进行 SSH 连接

现在,您可以使用域名来连接您的服务器。

1. 基本连接命令
ssh 用户名@您的域名

示例

ssh root@yourdomain.com
2. 使用子域名连接

如果您添加了子域名(如 sz.yourdomain.com),可以这样连接:

ssh 用户名@sz.yourdomain.com
3. 指定 SSH 端口(如非默认端口)

如果您的 SSH 服务使用非默认端口(如 14522),需要使用 -p 参数指定端口号。

ssh 用户名@您的域名 -p 端口号

示例

ssh root@yourdomain.com -p 14522

进阶设置

更改 SSH 默认端口

出于安全考虑,您可能希望更改 SSH 服务的默认端口,以防止恶意扫描。

1. 修改 SSH 配置文件
  • 打开配置文件

    sudo nano /etc/ssh/sshd_config
    
  • 找到 Port 22

    • 如果是注释状态(以 # 开头),去掉 #,然后修改端口号。
  • 修改端口号

    Port 14522
    
  • 保存并退出

2. 更新防火墙规则
  • Ubuntu/Debian 系统(UFW)

    sudo ufw allow 14522/tcp
    sudo ufw delete allow ssh
    sudo ufw reload
    
  • CentOS 系统(firewalld)

    sudo firewall-cmd --permanent --add-port=14522/tcp
    sudo firewall-cmd --permanent --remove-service=ssh
    sudo firewall-cmd --reload
    
3. 重启 SSH 服务
sudo systemctl restart ssh    # Ubuntu/Debian
sudo systemctl restart sshd   # CentOS
4. 使用新端口连接
ssh 用户名@您的域名 -p 新端口号

设置 SSH 密钥认证

使用 SSH 密钥认证可以提高安全性,避免使用密码登录。

1. 在本地生成 SSH 密钥对
ssh-keygen -t rsa -b 4096 -C "您的邮箱"
  • 按提示操作:连续按 Enter,使用默认路径和不设置密码短语。
2. 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@您的域名 -p 端口号
  • 输入服务器密码:根据提示输入。
3. 测试免密码登录
ssh 用户名@您的域名 -p 端口号
  • 如果成功登录且未要求输入密码,说明设置成功。
4. 禁用密码登录(可选)
  • 编辑 SSH 配置文件

    sudo nano /etc/ssh/sshd_config
    
  • 修改以下参数

    PasswordAuthentication no
    
  • 保存并退出

  • 重启 SSH 服务

    sudo systemctl restart ssh    # Ubuntu/Debian
    sudo systemctl restart sshd   # CentOS
    

常见问题解答

Q1:DNS 解析需要多长时间生效?

  • A:通常在 10 分钟到几小时内生效,但在极少数情况下可能需要 24-48 小时。您可以使用 pingnslookup 命令检查解析情况。

Q2:无法通过域名连接,怎么办?

  • A

    • 检查 DNS 解析是否生效:使用 pingnslookup 验证。
    • 确认防火墙设置:确保服务器防火墙允许 SSH 端口。
    • 检查 SSH 服务状态:确认 SSH 服务正在运行。
    • 确保使用正确的端口号:如果更改了 SSH 端口,连接时需要指定。

Q3:SSH 连接被拒绝,提示“Permission denied”

  • A

    • 检查用户名和密码:确认输入正确。
    • 密钥认证:如果禁用了密码登录,确保密钥配置正确。
    • 权限设置:检查服务器上 .sshauthorized_keys 文件的权限。

Q4:如何保护我的服务器安全?

  • A

    • 更改默认 SSH 端口:防止被恶意扫描。
    • 使用 SSH 密钥认证:比密码登录更安全。
    • 禁用 root 登录:创建普通用户并授予 sudo 权限。
    • 定期更新系统:安装安全补丁。
    • 安装安全工具:如 Fail2Ban,防止暴力破解。

总结

通过本篇博客的详细指导,您已经学会了如何使用域名代替 IP 地址进行 SSH 连接。这不仅使连接更加方便,也为您的服务器管理带来了更多的灵活性。我们从基础知识入手,介绍了 SSH、域名和 DNS 的概念,然后一步一步完成了从注册域名到配置服务器的全过程。

记住,安全永远是第一位的。在实际操作中,请务必遵循最佳安全实践,保护您的服务器免受潜在的威胁。

如果您有任何疑问或遇到问题,欢迎在评论区留言,我们将竭诚为您解答。

感谢您的阅读,祝您学习愉快!


原文地址:https://blog.csdn.net/wangshuqi666/article/details/142906841

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!