我需要保持哪些端口开放才能使用非默认端口访问我的 SSH 服务器

我需要保持哪些端口开放才能使用非默认端口访问我的 SSH 服务器

我没有使用 22 端口来连接 SSH,而是在 47000 以上的某个端口上
安装了 ufw(简易防火墙),并且解除了对“ssh”和“http”的阻止。

当我查看当前的 ufw 状态时,他表示端口 22 和端口 80 允许从任何地方访问。我通过 SSH 配置了此东西

我的 SSH 连接没有被它中断。尽管我没有使用端口 22 进行 SSH。但我也为 47000+ 解锁了那个特殊端口。现在我在 IPv4 和 IPv6 上都打开了两个端口

我是否需要同时解锁两者?我可以删除端口 22 吗?如果我的 SSH 连接崩溃了,我就不会问这个问题,但现在我很困惑 SSH 端口到底使用了什么

47000+ 端口是否仅用于握手?
抱歉,我问了这个问题(几乎不相关),但我担心如果防火墙配置错误,我可能永远无法再通过 SSH 连接到我的服务器

答案1

我是否需要将两者全部解锁?

不。

我可以删除端口 22 吗?

是的。

如果我的 SSH 连接崩溃了,我就不会问这个问题了,但现在我很困惑 SSH 端口到底用在什么地方

通常,您现有的连接不会受到影响。我们必须查看您生成的 iptables 规则集才能确定,但​​您现有的/相关的 tcp 连接应该会绕过关闭端口检查。您可以通过尝试建立新的 ssh 会话来验证(如 @Joes 的评论所述)。

47000+端口仅用于握手吗?

否。该端口将用于所有 SSH 流量。

答案2

为了使 SSH 正常工作,您至少需要设置一些东西,然后此配置会根据您要执行的操作而发生变化。

现在让我们假设所有事情,您在自己的内部网络上,并且保留所有值的默认值,直到我们知道这有效。然后我们将继续进行高级配置。

目前,不需要端口转发,这是最后一步。现在我们只需要知道服务是否已启用、远程计算机的 IP 是什么、ssh-server 守护进程在哪个端口上监听,以及远程防火墙是否阻止了传入的 SSH 请求。

步骤 1 - 安装并启用 openSSH-server 服务(在远程机器上)

第 2 步 - 禁用防火墙(在远程计算机上)

如果您不能 100% 确定是否禁用了远程防火墙,请执行以下操作:

sudo 服务 ufw 状态

您将在那里看到它的状态,当它处于活动状态时,让我们暂时禁用它。

sudo 服务 ufw 禁用

如果您刚刚安装了 openssh-server 并且没有更改配置,则默认端口设置为 22。如果您已将 SSH 配置更改为监听另一个端口,则需要重新启动 ssh-server 服务。生成的 SSH 进程仍缓存在内存中,并且只有在生成新的 SSH-server 守护进程时才会开始在不同端口上提供服务。

因此,请执行以下操作:

sudo 服务 ssh 重启

现在转到客户端 PC。对远程机器执行 ping 操作。这是基本连接的第一步,但 ping 不适合用于测试协议或服务问题。它们存在于不同的 OSI 层。现在打开您的 ssh 客户端,可以是 putty 或其他东西,或者只是 Linux 中的终端窗口也可以。

完成上述步骤后,应该可以成功连接,如果不行,请重复前面的步骤或提出更多问题。

如果您保留默认设置,并且它正常工作,那么现在是时候切换 ssh 端口了(如果需要)。例如,假设您在远程计算机上的 ssh-server 配置中将端口从 22 更改为 2200,下一步就是在远程计算机上启用防火墙,但这次要添加一些规则。加载规则并启用防火墙后,请重新启动 ufw 服务和 ssh 服务,然后尝试连接。

如果你将 SSH 端口从 22 更改为 2200,则必须

允许来自任何地址的端口 2200 的 TCP 规则

它将自动为 ipv6 添加相同的规则。

如果您愿意暂时关闭远程机器上的 UFW,那也是可以的。

现在 SSH 已在您的本地网络上运行,您可以开始配置远程访问。每个路由器的配置都不同,但过程大致相同。

在调制解调器/路由器的菜单中找到端口转发类别,通常在防火墙/互联网或 IP 配置下。找到端口转发后,您要做的就是转发外部端口(可以是任何端口,取决于个人偏好和安全性),例如随机端口 8422。这将是我们在外面时连接的远程端口。我们将此端口转发到我们在机器上设置的内部端口 2200。

因此,我们现在不再使用内部 IP 和端口,而是使用外部 IP 地址和外部端口。现在已将其配置为直接隧道连接到内部网络上的 2200 端口,并且应该可以访问。如果最后一步出现问题,请完全重新启动调制解调器/路由器和远程服务器。如果这仍然不起作用,但内部 ssh 起作用,则可以肯定配置尚不正确。权限被拒绝错误听起来就像您试图在错误的端口上访问 SSH。因此您可以访问该机器,但请求的 SSH 端口不提供该端口,因此权限被拒绝。

希望这有帮助。

相关内容