我查看了之前的相关答案并且认为我已经接近确定了...
我可以从我的机器通过 ssh 连接到互联网上的其他服务器。当我尝试通过 ssh 返回我的机器时,连接被拒绝。我正在使用 Ubuntu 10.4。
我发现在我的无线路由器设置中,所有入站流量都被阻止了。然后我将 SHH 和 FTP 添加到白名单中。我现在可以看到私有和公共 IP 地址。重新启动我的机器和路由器(也是调制解调器)后,问题仍未解决。
有什么想法吗?谢谢!
最后一条评论 - 当我运行 ssh 时,我使用的是在 wlan 下看到的 inet 地址;这是正确的吗?当我尝试从我的机器 ssh 到我的机器时,它甚至会失败。
更新:我可以在我的路由器页面上看到以下内容:
|device: allowed apps: app type: protocol : port #: public ip|
my-laptop : SSH Server : - : TCP : 22: 108...
我正在尝试从互联网连接,并使用 WAN IP。如何检查路由器是否将入站连接转发到我的本地 IP 地址?
解决方案
要做两件事:
a. 我使用了错误的 IP 地址。inet 地址是私有的。路由器分配了另一个未使用 ifconfig 列出的公共地址。需要转到路由器设置并找到它。更简单的是,访问 www.whatismyip.com 查找正确的 IP。
b. 另外,需要检查 Ubuntu 是否阻止入站流量。我不知道默认设置是什么,因为我从命令行使用它,我可能会改变一些东西。无论如何,Ubunutu 似乎有一个防火墙,我认为叫做 ufw;它维护着一个叫做 iptables 的东西,其中包含入站和出站访问的规则。更新它的最简单方法是安装 gufw(防火墙的一个非常直观的 gui),并允许所有入站流量或仅允许端口 22 上的某些服务,如 ssh。
谢谢您的帮助!
答案1
本地计算机是否正确配置以接受 SSH 连接?
您是否尝试从同一本地网络上的另一台机器进行连接来检查这一点?如果您无法本地连接,则必须先解决该问题,然后才能继续。
这似乎很明显,但显然会阻止所有其他措施发挥任何作用——计算机不需要在您需要的端口上设置防火墙连接和必须正确配置并运行相关的应用程序/服务/守护程序才能接受连接。
抱歉,我第一次读到这个问题时没有注意到相关的评论,否则我一开始会这么说,但是由于你无法通过 SSH 从机器连接到自身,这很可能表明该区域存在问题(假设您正在连接到其 LAN IP 或本地主机,而不是 WAN IP)。
您的路由器是否将端口转发到正确的内部 IP?
从您的问题中无法立即清楚地看出这一点,因此我想检查一下。
如果您从同一个 LAN 内连接,则需要连接到计算机的本地 IP。
如果您从互联网连接,则需要连接到路由器的 WAN IP,并且必须将路由器配置为接受相关端口上的连接,并将这些端口上的入站连接转发到您计算机的本地 IP 地址。
你的ISP是否封锁了相关端口?
一些 ISP 会阻止“家庭”用户到某些端口的入站连接,以阻止“家庭”用户将其连接用于商业目的。
不确定你会如何检查这一点(阅读你的 ISP 的政策可能是一个好的开始),但如果他们是阻止端口,您将需要使用不同的端口(未被阻止的端口),并根据需要从路由器转发该端口。