默认情况下,Ubuntu不使用防火墙过滤传入的连接尝试。因此,除非您在Ubuntu中更改了防火墙设置,否则尝试打开与任何TCP端口(从1到65535)的连接将是:
LAN端指定的端口是否正确?也就是说,假设您尚未更改SSH服务器的配置,WAN侧的端口57757是否设置为转发到OpenSSH服务器的端口22?(您可能需要仔细检查。)
您选择的特定端口可能有问题(57757)。尝试另一种,看看是否更好。
(如果没有,请按照以下说明进行操作,将其改回或将下面的“ 57757”替换为新的数字。)
尝试重新启动OpenSSH服务器。如果存在网络问题,这可能会有所帮助。如果那没有帮助,请尝试重新启动路由器和电缆/ DSL / ISDN调制解调器。
如果由于某种原因您无法重新启动所有三个设备,我建议您尽一切可能重新启动。如果您无法重新启动OpenSSH服务,至少您可以重新启动该服务,并(更可能解决此问题)将接口关闭并重新启动。
要重新启动OpenSSH服务器:
sudo restart ssh
要关闭网络接口,首先要弄清楚它在哪个接口上:
ifconfig
通常,对于具有单个以太网卡和/或单个无线卡的机器,以太网为eth0
,无线为wlan0
。
如果要断开并重新启动有线以太网连接,请运行:
sudo ifdown eth0
然后运行:
sudo ifup eth0
或者,您可以运行:
sudo ifconfig eth0 down
其次是:
sudo ifconfig eth0 up
如果机器使用NetworkManager来管理运行OpenSSH服务器的接口,我仍然建议尝试上述方法,但是您也可以尝试在NetworkManager中断开连接并重新连接。
对于以太网连接,也请尝试拔下电缆,然后重新插入。对于无线连接,请尝试使用硬件开关(如果有)将其关闭,然后再次打开。
这里发生了一些奇怪的事情,所有这些都不会花费很长时间-在进行更多艰苦的故障排除步骤之前,有必要进行深入研究。
您如何尝试从WAN端访问它?如果您正在LAN上使用计算机执行此操作(仅从LAN连接到路由器的WAN IP),则仅某些路由器支持此功能。毕竟,路由器的工作是在WAN和LAN端之间路由流量,而不是将流量从一侧路由到自身。尽管从很多家庭/办公室路由器确实具有此功能,但实际上支持从LAN内部连接到WAN IP上的转发端口实际上是例外,而不是规则。
因此,如果您不是从WAN端的主机转发测试端口,则应该这样做。您为此选择:
从WAN端连接自己。如果您可以访问那里的计算机,例如通过SSH访问学校,公司,朋友家或类似地方的远程计算机,则此方法有效。
连接测试机之间的路由器和任何提供的互联网连接。如果您具有带有以太网端口的电缆/ DSL / ISDN调制解调器,并且路由器已插入该端口,则可以将交换机连接到调制解调器,然后将路由器连接到交换机。将计算机连接到交换机。首先查看该机器是否可以访问Internet-如今,许多ISP提供了两个或多个单独的IP地址。如果不是,请转到路由器的设置页面并检查其WAN IP和WAN子网掩码,然后将IP地址静态分配给同一子网内的已连接交换机的计算机。
这种方法有一些缺点。真痛苦!同样,从理论上讲,ISP可能会错误地配置其网络,以使连接到交换机的测试计算机可以访问Internet。(除非您的ISP打算让您连接多个WAN IP 和您恰好为您的ISP分配给您的测试计算机选择了WAN IP,它与真实WAN主机之间的流量应被ISP阻止/丢弃。但是某些ISP的做法很怪异,所以谁知道呢?)如果发生这种情况,它就不会给任何人造成严重的问题(即使这样,您最多只能连接几分钟)。但是,可能会将其视为试图获得超出订阅范围的其他访问权限的尝试,而且更重要的是,如果另一个用户拥有相同的IP,则可能会干扰他们的连接。因此,如果您想尝试这种方法,请勿尝试从测试机访问Internet,如果发现测试机可以访问Internet,请立即停止,并且如果您的ISP禁止或建议您不要尝试这样做。(如果路由器的WAN端是办公室LAN,则不要使用此功能,而无需先咨询您的网络管理员。这不是ISP,并且没有假设已调配了资源来防止意外访问。)
这种技术有时会更合适一些。您的路由器可能得到它的连接信息- IP地址,子网掩码,网关(路由器)的IP地址,在WAN上是它使用时,它不知道在哪里送点东西,以及有关的DNS服务器-从ISP通过DHCP,通过电缆/ DSL / ISDN调制解调器。这就是为什么必须将路由器插入调制解调器以进行必要的配置,以使WAN端测试的结果有意义的原因。但是路由器通常会记住此信息,只要它实际上已连接到WAN侧的网络即可。因此,您可以连接路由器,调制解调器和测试计算机,但是随后可以快速,除了确保交换机将其视为已连接外,在使用测试机进行任何操作之前,请断开调制解调器的连接。
使用Internet上的免费服务来测试您的端口。由于在路由器的WAN接口和Internet之间插入测试机非常重要(如上所述),而且即使由于ISP的阻塞而无法访问该端口,该端口也会显示该端口可访问(这对于连接到局域网中的路由器WAN IP)-通常最好使用基于Web的端口扫描服务。
有许多端口扫描服务。(有些人用“检查防火墙”这个词来形容大多数人试图阻止而不是方便访问。)这就是一个。如果选择使用该端口,请单击“ 继续”,在文本框中键入57757,然后单击“ 使用指定的自定义端口探测器”。为了使服务器运行,您希望它是“开放的”。“关闭”表示该端口可访问,但服务器未运行(因此连接尝试被拒绝)。“隐身”表示该端口不可访问-好像那里没有机器(或者好像该端口被转发到没有机器的地方)。
好的,因此您已经确定实际上无法从Internet访问它。您可能可以扫描它(理想情况下是从WAN端)以获取详细信息,尽管通常这不会提供有用的信息。
如果要执行此操作,则可以在WAN端运行:
sudo nmap -sS -sV -p57757 -vv WAN-IP
如果端口显示为已过滤,则表明该端口发送的数据包可能无处可走(或在途中被阻塞/丢弃)。
值得检查该问题是否是由于暴露给WAN的端口与服务器实际侦听的端口不同而引起的。将WAN上的端口55757转发到LAN机器上的端口22应该可以正常工作,但是也许某个地方(服务器,客户端)从服务器和客户端的角度假设端口号相同。
大概您不能通过路由器转发端口22。也许您的ISP阻止了该端口。但是,如果可以做到,那就做到!
否则,您可以使OpenSSH服务器实际在端口57757上进行侦听。
为此,请备份服务器配置文件:
cd /etc/ssh
sudo cp sshd_config sshd_config.old
然后编辑它:
gksu gedit sshd_config
如果计算机没有GUI,则使用控制台文本编辑器:
sudo nano -w sshd_config
在文件顶部附近,出现以下文本块:
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
只需更改Port 22
顶部的行即可Port 57757
。
保存文件,退出文本编辑器,然后使用以下命令重新启动SSH服务器:
sudo restart ssh
现在更改路由器上的端口转发,以便将端口57757转发到OpenSSH服务器上的端口57757(不是22),并查看是否可以从Internet进行访问。
如果仍然无法正常工作,请查看Ubuntu防火墙是否实际上阻止了来自LAN外部的流量。
(如果您自己未以这种方式配置它,这是不太可能的,但是,如果所有设置正确,并且以上步骤均未显示任何有关此问题的信息,则值得进行检查。)
跑:
sudo iptables -L
默认情况下,在Ubuntu中,输出如下所示:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
这是一个简单的宽松策略,实质上等同于不运行防火墙。(实际上,如果未将netfilter防火墙模块编译到内核中,则系统的行为将与上述设置相同,尽管iptables
查询netfilter
设置的命令当然不会起作用。)
如果您的配置看起来不是这样,请阅读man iptables
以弄清楚他们在做什么,和/或编辑您的问题(或者,如果您是遇到类似问题的其他人,请阅读新问题)以包括他们。请注意,您的iptables
规则可能会泄露有关您配置的敏感信息。实际上,通常不是这种情况-可能有关于特定主机被阻止的规则的例外,或者如果您的配置非常糟糕/不安全-通常,此信息对攻击者(尤其是对于计算机上的攻击者)很有用NAT路由器后面的家庭/办公室LAN最少。