目前,我已使用 cygwin 上的 openSSH 设置了 ssh。我将端口从路由器转发到计算机,并在 Windows 防火墙上为端口 22 添加了例外。我有免费的 AVG,我认为它没有与之关联的防火墙。
当我使用运行 ubuntu 的 VMWare 登录 ssh 时,我可以使用我的 LAN IP 登录到我的服务器,但无法使用我的外部 IP 登录。我在端口 22 上收到“连接被拒绝”信息。
奇怪的是:我在 canyouseeme.org 上扫描了我的端口 22,结果显示端口 22 可见。但是,当我通过外部 IP 对端口 22 进行 nmap 时,结果显示端口 22 未打开。
我对 ssh 不是很有经验,所以任何帮助都非常有用!谢谢!
我尝试过的一些方法:
netstat -a | grep ssh
不返回任何内容
-vvv 详细...
me@ubuntu:~/Desktop$ ssh -v -v -v me@mycomp
OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to myexternalIP port 22.
debug1: connect to address myexternalIP port 22: Connection refused
ssh: connect to host myexternalIP port 22: Connection refused
Telnet... telnet localhost 22 尝试 ::1... 尝试 127.0.0.1... telnet:无法连接到远程主机:连接被拒绝
我可以使用我的内部 IP 登录... me@ubuntu:~/Desktop$ ssh me@myInternalIP me@myInternalIp 的密码:
me@myInternalIp /cygdrive/c/Program Files (x86)/ICW/var
$
我使用的路由器是 Verizon GT04-WG-B
答案1
听起来您的路由器不支持(或未启用)“routeback”(抱歉,这可能是供应商特定的术语)。基本上,您的路由器不支持(或不允许)接收您的 SSH 连接,然后将该连接转发回 LAN 到您的 Windows 计算机,其设计目的是转发 LAN 到 WAN 或 WAN 到 LAN,而不是 LAN 到 LAN。
不幸的是,我无法帮助您为路由器启用此功能(除非您的路由器是运行 Shorewall 的 Linux 机器),但您实际上不需要这样做——只需在网络内部使用您的 LAN IP 即可。canyouseeme.org 说您的端口 22 从外部打开是一个好兆头;下一步是尝试通过 SSH 连接到您的外部 IP来自您的网络之外以确保它确实在工作。我一点也不担心您无法从 LAN 内部通过 SSH 连接到外部 IP。