weixin_43674800 2024-05-20 16:35 采纳率: 93.4%
浏览 32
已结题

SSH升级9.7版本后,系统重启后无法连接

系统centos7.9, SSH升级版本9.7后,重启系统,发现SSH端口20109不通了,VNC登录查看iptable规则,如下图

img

20109端口是存在的,这个端口的iptable规则是写在/etc/rc.local中的,开机自启,如下图

img

在服务器里执行 telnet 127.0.0.1 20109 也是通的

img

但是从外部访问20109就是不通,除非清空iptable规则,执行 iptables -F ,20109端口就通了,不知道为什么?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-20 16:39
    关注

    引自免费微信小程序:皆我百晓生

    看起来您的问题可能在于新的SSH版本(OpenSSH 9.7)与现有的iptables防火墙规则之间存在冲突。您可以通过检查SSH的日志文件来获取更多关于连接失败的具体信息。通常情况下,日志文件位于 /var/log/auth.log/var/log/secure

    首先,确认SSH服务是否正在运行,并且配置正确监听20109端口。您可以使用以下命令检查:

    systemctl status sshd
    

    接下来,检查SSH配置文件,确保它监听了20109端口。编辑配置文件 /etc/ssh/sshd_config,找到 Port 行并确认其值为20109:

    Port 20109
    

    然后,重新加载SSH配置以应用更改:

    systemctl reload sshd
    

    如果配置看起来没有问题,那么可能是新版本的OpenSSH在处理某些特定的连接时有所不同,这可能导致iptables规则无法正常工作。在这种情况下,您可以尝试更新iptables规则以适应新的SSH版本。将以下规则添加到您的iptables脚本中,替换您之前添加的规则:

    iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 20109
    

    这行命令会将所有发往默认SSH端口22的流量重定向到20109端口。然后,删除旧的规则,只保留接受20109端口的规则:

    iptables -D INPUT -p tcp --dport 22 -j ACCEPT
    

    保存更改并重启iptables以应用新规则:

    systemctl restart iptables
    

    最后,再次尝试从外部访问20109端口,看看问题是否解决。如果还是无法连接,请检查日志文件 /var/log/auth.log/var/log/secure,寻找有关连接失败的详细信息,这些信息可能会提供更多的线索。

    如果问题依然存在,您也可以考虑暂时禁用iptables防火墙,以确定它是否是导致连接问题的原因。但请注意,这样做会使您的系统暴露于未授权的网络访问风险。要临时禁用iptables,请执行:

    systemctl stop iptables
    

    然后再次尝试从外部访问20109端口。如果此时可以连接,那么问题确实出在iptables上。您可能需要进一步调整规则或在不违反安全策略的前提下允许必要的连接。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月29日
  • 已采纳回答 5月21日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题