Name: Anything you want. example for ssh, say “ssh"
Protocol: Type of protocol [ for ssh: TCP ]
Host IP: provide hostname from which host you want to connect to [ over here: 127.0.0.1 ]
Host Port: On what port of that Host you want to connect to remote port [ example: 60022 ]
Guest IP: Leave it Blank
Guest Port: To what port you want to connect from the above host. [ for ssh, the default 22 ]
所以我有这些参数,例如我想进行 SSH 连接,我想转到 22 端口,所以当我调用 localhost:22 时,虚拟机将监听该端口,然后必须进行连接。但事实并非如此。这是我的VM 设置这是结果。
#Wants password, I key in right, but it tell that it's incorrect
PS C:\Users\User> ssh -p 22 hodini@localhost
hodini@localhost's password:
Permission denied, please try again.
#Also there is no such user at all but it still require from me password?
PS C:\Users\User> ssh -p 22 not_existing_user@localhost
not_existing_user@localhost's password:
Permission denied, please try again.
#Switched host's port to 2222
PS C:\Users\User> ssh -p 2222 hodini@localhost
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 6.5.0-26-generic x86_64)
我认为是的,因为它的工作原理与我想象的不一样。例如主机上有 22 个端口,但是由于主机和客户机都在一台 PC 上,我们不能将单个端口分配给两个设备吗?
我听说有 NAT 连接,通过此连接,访客看不到主机,主机也看不到访客,两者都可以访问全球互联网。但我不明白为什么这样做。我们成为路由器,访客在本地网络上?如果有人能用手指解释为什么会这样,而不是给出一些复杂的措辞等等,那就太好了,这里有一些简单的例子
我还听说还有其他类型的连接,您可以通过某种方式直接链接主机和客户机,但这与 NAT 无关。
我想在主机和客户机上调用 22 端口和 22 端口,但我认为这不是我所期望的......
答案1
您已经在端口 22 上运行了一项服务,因此无法成功绑定到您的虚拟机。第一种情况是现有服务收集了您的登录请求。在第三种情况下,端口转发到您的虚拟机已接受您的登录请求 - 这显然符合您的预期。
我的猜测您的 Windows 主机已经在端口 22 上运行 SSH 作为服务。您可以通过运行SERVICES.MSC
、搜索OpenSSH SSH Server
并查看它是否为 来检查这Running
一点。您还可以通过将端口转发保留在备用 2222 来检查,并查看在连接到端口 22 时是否收到密码提示。(如果是,那么它显然不是您预期的端口转发服务,因为它正在其他地方监听。)