• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Mark的小试牛刀

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

修改服务器默认远程端口

以CentOS 7.7为例介绍如何修改Linux系统默认远程端口。

  1. 远程连接并登录到Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例。

  2. 运行以下命令备份sshd服务配置文件。

     

    cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak

  3. 修改sshd服务的端口号。运行以下命令重启sshd服务。重启sshd服务后您可以通过1022端口SSH登录到Linux实例。

    1. 运行以下命令编辑sshd_config配置文件。

       

      vim /etc/ssh/sshd_config

       

    2. 在键盘上按i键,进入编辑状态。

    3. 添加新的远程服务端口。

      本节以1022端口为例。在Port 22下输入Port 1022。新增端口

    4. 在键盘上按Esc键,输入:wq后保存并退出编辑状态。

    • CentOS 7及以上版本、Alibaba Cloud Linux 2:

       

      systemctl restart sshd

       

    • 注意:

      在安装官方版 CentOS 7 情况下,如果更改默认的 22 远程端口,然后打算用 systemctl restart sshd 命令使端口更改生效时,将会得到一个错误提示:

      Job for sshd.service failed because the control process exited with error code. See “systemctl status sshd.service” and “journalctl -xe” for details.

      而且如果此时重启,甚至连 ssh 服务都无法正常运行。

      原因

      报错原因其实是 SELinux(Security-Enhanced Linux) 所致。 SELinux 中文名为安全增强型 Linux, 是 Linux 内核的一个安全模块,提供了访问控制安全策略机制,SELinux 默认情况下限制了 ssh 的监听端口。

      既然知道了原因,解决方法也简单:

    • 直接关闭 SELinux 功能;

      解决

      关闭 SELinux

      在关闭 SELinux 前,可以用命令 getenforce 查看当前的状态,一般默认是 Enforcing,即强制模式(违法 SELinux 规则的行为将被组织并记录到日志中)。此外还有另一种状态 Permissive,即允许模式,在这个模式下违法策略的行为仅做记录。

      所以如果只做临时使用,可以简单的切换到 Permissive 模式:

      # 切换到 Permissive 允许模式,1 为强制模式;

      setenforce 0

      这个方法的优点在于无需重启便可生效,但缺点也同样明显,一旦重启即失效。所以如果想长期生效,需换一种操作,即直接关闭 SELinux 服务:

      # 打开文件

      vi /etc/selinux/config

      # 找到这一行:SELINUX=enforcing,修改为

      SELINUX=disabled

      修改完成后,保存重启即可。

  4. 配置TCP协议1022端口

    firewall-cmd --zone=public --add-port=1022/tcp --permanent

    firewall-cmd --reload

     

posted on 2023-03-16 09:47  我是天才啊  阅读(152)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3