ssh localhost 可以工作,但不能通过 ip 地址,即使防火墙允许

ssh localhost 可以工作,但不能通过 ip 地址,即使防火墙允许

我目前遇到无法远程 ssh 进入我的机器的问题。我首先尝试从配置了 OpenSSH 的 Ubuntu 18.04 机器 ssh localhost,成功了。但是,当尝试通过本机的 IP 地址访问时,它会超时。我几乎尝试了所有我看到的建议。

我可以逐步介绍我已采取的步骤:

  1. 使用详细输出登录

    OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 19: Applying options for *
    debug2: resolving "73.162.76.69" port 22
    debug2: ssh_connect_direct: needpriv 0
    debug1: Connecting to 73.162.76.69 [73.162.76.69] port 22.
    

    ...

最终它会在大约 2 分钟(120)的时间内超时——这是由配置指定的。

  1. 检查 sshd 是否处于活动状态:

    ps -A | grep sshd
    9069 ?        00:00:00 sshd
    9074 ?        00:00:00 sshd
    9114 ?        00:00:00 sshd
    9115 ?        00:00:00 sshd
    
  2. 检查防火墙策略是否允许连接:

    sudo ufw status
    Status: active
    
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       Anywhere                  
    OpenSSH                    ALLOW       Anywhere                  
    22/tcp (v6)                ALLOW       Anywhere (v6)             
    OpenSSH (v6)               ALLOW       Anywhere (v6)       
    

我也尝试过 iptables,但不太清楚如何解释它。我关闭电源、清除并重新安装了 ssh 服务器。

我还重新启动了路由器以确保问题不是出在这儿——但无济于事。

我还能尝试其他方法来解决这个问题吗?

我的最后一个选择是重新安装 Ubuntu...这台机器上没有太多东西,但恢复我需要的一切确实需要时间。

答案1

如果发生超时,则应该是防火墙规则有问题。

通过 iptables 允许它进行快速测试:

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

如果不起作用,请尝试允许输出:

iptables -I OUTPUT -p tcp --sport 22 -j ACCEPT

相关内容