为什么我无法连接到家庭SSH(SFTP)服务器?我究竟做错了什么?


1

我是在自己的计算机上创建SFTP服务器的新手。我希望能够从另一台计算机或电话通过SFTP访问Windows XP计算机上的文件夹。

以下是我到目前为止所做的:

我已经安装了SSH Windows,并且一切都设置正确,因为我可以通过WinSCP访问它(我计算机上的文件夹)。

但是,我无法通过手机访问它。它没有连接。

该电话可以与Windows XP计算机位于同一无线网络上,但是我希望能够在不在同一网络中时访问该无线网络。

现在,根据我已阅读和理解的内容,以下是连接所需的信息:

1)主机名:这是我的计算机的IP地址,我可以通过在cmd提示符下键入ipconfig来访问它(我可以轻松地在我的计算机上访问它,因为我只需输入localhost或127.0.0.1)

2)端口号:这将是端口22(我还在端口转发部分将其添加到路由器中)。

3)用户名:这是我的Windows XP用户名。但是,这是我的全名,包括中间名首字母和句号。我想知道这是否可能导致从手机访问它时出现问题,因为该名称包含空格和标点符号(句点)。

4)密码:Windows XP计算机的密码

额外信息:当我说电话时,我指的是一部Android手机,我正在使用ftp / sftp应用程序通过手机的蜂窝网络访问我的电脑(我也尝试了无线功能,但效果不佳)。我已经尝试了多个程序。在一个程序上,它告诉我连接超时,在另一个程序上,它告诉我“超时:套接字未建立”

另外,我知道我可以使用站点noip,但是我更喜欢先以这种方式连接。另外,由于我是新手,所以我想研究一下noip到底在做什么,以及当它们从手机传输到PC时,他们是否能看到我的文件。

预先感谢您的帮助。

更新1:感谢到目前为止的答复。问题似乎是我无法打开端口22。我可以获得端口21(不久前我在Belkin路由器界面的“虚拟服务器”部分中添加了端口),但是仅当我使用已安装的名为PFPortChecker的程序时,该端口才显示为打开。如果我转到canyouseeme.org网站,它会告诉我由于连接超时而无法看到该端口。在同一站点上,我收到端口22的错误消息。使用端口检查器程序,它只是告诉我该端口未打开或无法访问。

更新2:

  • 简短版:我可以连接!!!一切正常。
  • 较长的版本:我终于可以连接了。就我而言,这是一个愚蠢的错误。在我的Belkin界面(其中一个指定要打开的端口)中,在“启用”标题下的一栏中有复选框。我出于某种原因没有进行检查,但对端口21进行了检查。我认为我也有几年前创建的两个以前的条目也未选中,因为我希望它们存在但未启用,可能使我在视觉上无法正常工作。

    最终解决的新问题:

    但是,过了一会儿,我突然无法连接了。我最终能够再次连接,但后来无法连接。在这段时间之间,我用手机将文件传输到计算机上。在不同的时间,根据上面提到的软件以及上面提到的网站以及http://www.yougetsignal.com/tools/open-ports/,端口22将打开然后关闭,这似乎更准确。软件程序和这些站点正在使用我的外部/公共IP地址检查端口是否打开。我也打开了21号端口以查看是否会遇到任何问题,有时也会显示为关闭,而其他时候则显示为打开。

    然后,我创建了一个静态IP地址。我以为我已经有一个了,但是我没有。但是,我的计算机(内部计算机)上的IP地址从未改变,但为了排除此问题,我继续创建了静态IP地址。但是我仍然无法连接。

    最后,原来是我的Windows防火墙。我以为不是这样的,因为即使我禁用了它,在user235252的建议下,我也可以再次连接,但是当我启用它时仍然可以成功连接。但是,由于手机再次传输文件,最终我又重新断开了连接,无法再次连接。

    我决定将端口22添加到“例外”列表中,瞧,我已经能够成功连接并重新连接至少24小时。

    当我与计算机无线连接到同一网络时,我将使用内部IP地址,并且可以连接到计算机。当我关闭无线网络并使用手机网络时,我使用了外部/公共IP,并且可以连接到计算机。

我很高兴能建立联系。这很酷,我第一次做这样的事情。但是,我还有很多事情要学习,尤其是在安全性方面,其中之一是限制对我计算机上其他文件夹的访问。我也希望有一天能创建一种服务器类型,以允许您托管一个网站。

感谢大家的帮助。

Answers:


2

1)主机名:这是我的计算机的IP地址,我可以通过在cmd提示符下键入ipconfig来访问它(我可以轻松地在我的计算机上访问它,因为我只需输入localhost或127.0.0.1)

不,要从蜂窝网络访问它,您需要您的公共IP地址(如果有的话)。有些网站会告诉您(例如,whatismyip.com,如果有内存的话)。

甚至还不够;这可能是您的内部路由器被伪装并连接到Internet的家庭路由器的IP地址。

您的PC将具有内部地址,例如192.168.1.5或类似的地址。

因此,您需要告诉路由器,无论何时有连接请求(指向公共地址上的端口22 / tcp(ssh))进入,都将被路由到与XP计算机相对应的内部地址。此功能通常在路由器上称为“虚拟服务器”或“反向端口映射”。

当电话和PC都连接到相同的无线访问点时,它们位于同一网络中,并且它们的地址是“相互公开的”,并且工作更容易,更快捷。

举一个(也许过于简单)的例子,这有点像在同一家酒店内打电话–您不需要国家和地区代码,只需一个房间号。但是,如果您想从酒店外面呼叫同一房间,则不能简单地拨打“ 42”-您需要酒店的公用电话号码,并且必须告知接待处的那个人将呼叫路由到适当的房间,否则它将永远不会通过。

某些设置中,您的PC 可能会暴露在Internet上,并且拥有自己的公共IP地址(您会看到带有ipconfig),但这根本不是典型的(部分是由于可用IP地址的稀缺性,但是主要是因为存在风险。您确实希望世界上的每个人都可以直接连接到您的PC,即使PC有防火墙也是如此。

通常,127.0.0.1(本地主机)是与一台机器可以说话地址本身。因此,它不能被其他任何人使用(如果我试图从我的电脑,它也将连接到自身,而不是你)。

为连接到本地网络分配了第二个IP地址,通常它类似于192.168.xy(目前有192.168.0.7)。那就是“房间号”-那里的许多PC都具有相同的地址,但是它们位于单独的酒店(网络)中,并且无法彼此通话。当手机连接到WiFi时,您想使用这种地址。最终,我的ISP向我提供了一个公共地址(例如151.38.90.44),并且地址将允许人们与我联系,并且不允许任何人(同时)拥有该地址。您将拥有自己的路由器,如果您对路由器重新上电,它可能会改变,这就是从“外部”使用的路由器。


非常感谢您的精彩解释。它有助于我更好地理解事物。不幸的是,我仍然无法连接。请查看我上面提供的更新信息,以查看是否对您有进一步的帮助。
罗洛

0

首先,在无线网络上尝试通过IP连接。真正重要的部分是使用计算机的内部地址,可能是192.168。地址。您可以ipconfig从命令行使用来获取地址。此问题中详细介绍了获取IP的其他方法。

如果可行,那么您可以尝试从网络外部访问它。为此,您需要使用外部IP和端口转发,在其中您要将指向外部IP的连接指向内部IP。我还建议您使用非标准的外部端口,以便随机扫描开放端口22不会最终连接到您的系统。

另一种建议是让您的计算机具有恒定的IP地址-我倾向于让路由器通过MAC地址静态分配。

请注意,noip.com不能解决上述任何问题。它唯一可以帮助的是,您不必使用外部IP地址,而可以使用与之关联的名称(例如,您可以连接到yourname.no-ip.org而不是169.254.123.45)。您仍然需要启用端口转发。它唯一要做的就是为您的系统创建一个DNS条目,除了用于将请求定向到何处的初始查找之外,没有流量通过它们的服务器。您正在使用SFTP的事实也会加密流量,从而最大程度地降低了风险。

更新:从更新中还不清楚您使用的是内部还是外部IP。如果您使用的是外部IP,则ISP可能会阻止低于1024的端口。这就是为什么我提到使用非标准端口,并将其转发到Intranet上的端口22的原因。尝试从1024到65535之间的某个端口转发,并在内部转发到端口22。


当我在本地无线网络上时,我也曾尝试进行连接,但这是行不通的。请确实查看上面的更新信息,以查看是否可以为您提供进一步的帮助。谢谢。另外,感谢您提供有关noip的额外信息。
罗洛

@rolo更新了我的答案
ernie

关于“使用非标准端口,并将其转发到您的Intranet上的端口22”,我该怎么做?我可以在Belkin接口的“虚拟服务器”部分的“入站端口”部分和“专用端口”部分的端口22中输入1024到65535之间的任何数字。要看到的是如何将看起来副本,请浏览此网站:portforward.com/english/routers/port_forwarding/Belkin/...或此图:en-us-support.belkin.com/euf/assets/images/answer /路由器/… 谢谢。
罗洛

0

转到控制面板并禁用防火墙。从外部IP尝试一下,如果可以使用,则可以为其设置端口的端口添加例外。


谢谢。最终,这是我的新问题的解决方案。您可以阅读上面的更新文章,以了解更多信息。谢谢你的帮助。
罗洛
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.