我正在尝试在本地计算机(Windows 7 32 位)上打开端口 22。我使用网络工具检查我的端口是否打开。它说端口 22 已关闭。所以我禁用了防火墙,看看是否会导致端口被阻止。即使禁用了防火墙,端口 22 仍然处于关闭状态。
我直接连接有线网络,没有使用无线路由器。可能是什么问题?
更新我正在尝试使用 SSH 连接到服务器(Linux - CentOS 版本 4.5)。我在我的机器(Windows 7)上使用 Putty 客户端。当我尝试连接时,连接超时。我运行命令telnet mysite.com 22
来查明是否可以通过端口 22 连接,结果收到“连接超时”消息。
更新 2搞清楚了。除了本地计算机上的防火墙外,服务器上还有一个防火墙,只向某些 IP 开放端口 22。因此,即使端口 22 已开放,但对我的 IP 却不开放。
答案1
除了防火墙规则之外,您还需要一个监听端口 22 的应用程序才能使其正常工作。端口 22 通常用于 SSH 服务器。您的 Win 7 机器上运行了其中一个吗?
运行netstat -ab | find ":22"
将验证是否有任何东西在监听。
如果您没有任何东西监听该端口,则检查端口可用性的服务将无法连接到它们,这将导致您看到的结果。我建议您花几分钟时间收集一些关于入门级网络概念的书籍并阅读它们。
编辑以解决您的评论:
当你从你的机器启动 SSH 连接时,它会不是源端口为 22,目标端口也是 22。默认情况下,Windows 防火墙不会阻止任何出站流量。如果您尝试从 Win 7 计算机连接到 SSH 服务器,则您无需对端口 22 进行任何操作,SSH 服务器的人员会进行操作。
也就是说,如果他们说他们已经打开了 22 个,但你仍然无法连接,那么中间可能存在某种阻碍连接的情况。你的 ISP、服务器数据中心的硬件防火墙或任何其他因素都可能是罪魁祸首。
您应该使用网络工具查看端口 22 是否打开在远程服务器上,而不是您的桌面。如果是,那么您应该尝试致电您的 ISP,看看他们是否过滤它。
答案2
听起来您已经在防火墙上启用了出站过滤。打开“高级安全 Windows 防火墙”,右键单击左侧窗格中树中的根节点,选择属性。您将看到每个配置文件的选项卡,将每个选项卡上的出站设置为“允许”是“正常”的(除非您处于非常高安全性的环境中)。
如果这些已经设置好了,我会尝试连接到另一个 SSH 服务器(例如shell.sourceforge.net
)。如果你能连接,那么问题就不在你这边。
答案3
当有人提到某个端口“关闭”时,通常是指服务器上的侦听端口。当您谈到尝试在 Windows 计算机上打开端口 22 时,您是在暗示要在该计算机上运行 ssh 守护程序。
您应该从基础层面开始,然后逐步向上。第一个问题是您是否可以访问您尝试连接的服务器。您可以 ping 它或访问那里的其他服务吗?
如果您可以访问服务器,请尝试连接到另一台计算机上的 ssh。只需抛出一些东西,使用login.toolserver.org
-- 它会立即断开您的连接,因为您没有授权的登录密钥,但它会确认您是否可以在 tcp/22 上发送和接收流量。
按照这些步骤操作,然后留下评论告诉我哪些有效,哪些无效,然后我们从那里开始。