我已经设置了Ubuntu服务器的VM,已经安装了OpenSSH,现在正尝试使用Putty连接到它。在Putty中,在“主机名”下,放置“ Ubuntu”,因为这是我在设置VM时以为的名称。但是,我只是收到错误:“连接超时”。

我还尝试将“ 127.0.0.1”放入Putty中的主机名中,并仅获得“ Connection Refused”。请注意,我已经在Oracle VM中完成了SSH和HTTP的端口转发,因此我对如何使其运行感到迷茫。

评论

FWIW桥接/主机仅对我不起作用,但实际上,我可以通过以下方法来解决此问题:仅SSH“退出”(毕竟,scp可以双向执行),因此我不需要SSH访问在来宾之内。

#1 楼

VirtualBox将创建一个专用网络(10.0.2.x),该网络将使用NAT连接到您的主机网络。 (除非另有配置。)

这意味着您不能从主机网络直接访问专用网络的任何主机。为此,您需要一些端口转发。例如,在VM的网络首选项中,可以将VirtualBox配置为打开127.0.1.1(主机的回送地址)上的端口22,并将所有流量转发到10.0.2.1的端口22(VM的内部地址)。

这样,您可以将腻子指向127.0.1.1的端口22,VirtualBox会将此连接重定向到您的VM,在此ssh守护程序将在该VM应答它,从而允许您登录。

评论


谢谢,这对我有用。现在可以从cygwin ssh输入username@127.0.1.1,然后进入。您需要的面板是“设置”->“网络”->“端口转发”,而我的面板如下所示:imgur.com/BjGh3N2

–user7543
2015年5月1日15:26

如果您已经在主机上运行了ssh,这将无法工作,因为端口重叠。将端口127.0.1.1:2222重定向到10.0.2.X:22,然后从主机运行'ssh 127.0.1.1 -p 2222'

– dzlatkov
2015年5月29日7:10

另外,请确保在客户端操作系统上安装了openssh-server。 sudo apt-get install openssh-server

–光明会
16-09-3在13:29



我自己遇到了这个问题-感谢您的解释。我基本上听了你说的话。我去了设置,我的连接显示为“ NAT”。我单击了屏幕底部的“端口转发”选项。我给它起了一个名字'PuTTY-port-fwd',协议是TCP,主机IP 127.0.0.1主机端口2222来宾IP 10.0.2.15来宾端口22。然后启动PuTTY并将其设置为127.0.0.1端口2222并连接到我的OpenSUSE虚拟机。谢谢大家,希望这对以后的任何人都有帮助;-)

–BubbleMonster
16年3月3日17:00

尽管我必须告诉VirtualBox打开127.0.0.1的端口2222,这对我有用。然后我能够使用ssh -p 2222 user@127.0.0.1登录

–m81
17年1月25日在15:24

#2 楼

我想用油灰在虚拟盒子上连接到我的ubuntu(出于舒适原因,VB太奇怪了。除非它在正确的终端上,否则我不能工作)。
无论如何,


确保ssh客户端已安装在Linux上。如果不是,请安装sudo apt install ssh
关闭操作系统的电源。
现在在VB上转到Settings -> Network ->,选择Adapter 1->单击Host-only adapter
现在启动操作系统。运行OK;现在inet地址就是您的IP。
使用它并在腻子上运行它。使用您的凭据登录。

使用仅主机适配器的唯一缺点是来宾OS无法访问更广泛的网络(例如Internet)。

如果您还需要VM可以访问Internet,请将适配器1保留为NAT,并启用适配器2,将其配置为仅主机适配器。这将允许您的VM使用NAT连接到Internet,以及使用仅主机的主机建立本地连接。

评论


“桥接”将把IP放在您的本地界面上,并桥接对更大互联网的访问

–公爵
16-10-11在2:37

如此处所述,通过桥接使用两个接口的优点是,您不必依赖本地dhcp服务器来接受请求。公共场所中的大多数dhcp服务器(飞机场,飞机,旅馆,甚至大多数公司网络)都不会通过同一wifi适配器提供第二个ip,因此桥接的VM在这些环境中将无法工作。以下是有关如何设置此特定配置的非常好的分步说明:christophermaier.name/2010/09/01/…

–伊夫·多夫斯曼(Yves Dorfsman)
17年6月30日在13:37

像魅力一样工作,但是您应该将Adapter 2放在第三个选项上,这样人们就不用管NAT了。

–user3502626
19年1月13日在5:20

非常感谢。

–卢克
19年5月15日在11:17

非常感谢。但是当我将Ubuntu网络设置从NAT更改为仅主机适配器时,它不再可以连接到Internet,有什么解决方案吗?

–卢克
19年5月15日在11:23

#3 楼

首先,您需要确定您的VM是通过网桥连接还是通过NAT连接到主机,但是以太方式,您需要将VM IP地址放入腻子才能连接到IP,在VM终端中运行此命令向您显示计算机的IP地址
(并且127.0.0.1不是计算机的IP地址)

VM # ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
       valid_lft forever preferred_lft forever


在这种情况下,我的IP地址将在10.0.2.15之前,

首先尝试确保可以与VM进行基本通信,打开主机上的终端窗口,然后尝试ping VM。

HOST # ping 10.0.2.15

PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms


如果得到结果,请确保在VM上以根用户身份在VM类型的终端上运行ssh服务。

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd


这表明我们有一个名为sshd(OpenSSH守护程序)的PID(2361)服务/进程,监听端口22。

您可以通过尝试ssh来测试服务是否正常工作可以从VM自身访问它,

VM # ssh 127.0.0.1


接下来,您需要确保您没有在防火墙/ iptables中阻止端口22,我无法相信,但是无论如何都要检查一下。在VM中,键入以下命令以向您显示iptables,在输出中应具有如下所示的行:

VM # iptables -nvL INPUT


评论


尝试了一下,显然我的IP地址是10.0.2.15。我尝试将其输入到Putty中,只是再次出现连接超时错误。我还尝试了您提到的nvL命令,并获得了(因为缺少更好的单词)内容的负载-Chain INPUT(策略接受...,chain FORWARD .....等)

–wickywills
14年7月22日在21:03

我重写了我的回答,还有几点要检查的内容,请告诉我。

–拉宾
2014年7月23日下午6:37

如果ping 10.0.2.15超时怎么办?我使用NAT。

– Dan Dascalescu
2014年12月1日11:20



端口转发是答案。

– Dan Dascalescu
2014年12月1日上午11:25

为方便起见:iptables -A INPUT -p tcp --dport ssh -j如果您在iptables中看不到tcp,ACCEPT将允许传入流量。

–埃里克·霍金斯(Eric Hodgins)
19年4月6日在17:06

#4 楼

我的分辨率与Roman T相似,但是我需要添加一些额外的步骤。就我而言,我在Windows 2008域中的Windows 8桌面上运行Ubuntu Server 14 VM。如果我尝试使用NAT或Bridge,则可以访问Internet,但无法通过SSH连接。

如果尝试了Host Only Adapter,则可以使用SSH进行计算机连接,但无法访问Internet。

我也尝试了端口转发,没有任何乐趣。打开Wireshark并没有找到VM。

所以我的解决方案是添加第二个网络适配器。

方法

使用VM关闭电源


单击“设置”>“网络”,单击“适配器1”,然后选择“桥接适配器”,
,单击“适配器2”,然后选择“仅主机适配器”,
单击“文件”>“首选项”>“ NAT网络下的网络”。如果您没有看到NAT网络,请单击+图标以添加NAT网络。
如果没有看到仅主机的网络,请单击+仅主机的网络,请单击+图标以添加一个

启动VM



要查看网络适配器,您需要输入

ifconfig -a


您可能会看到是否为网络适配器添加了mac地址但没有IP?

如果是,那么您需要编辑/ etc / network / interfaces以配置DHCP。以下示例使用VI / VIM,但您可以使用自己选择的编辑器

sudo vi /etc/network/interfaces



添加行

auto eth1
iface eth1 inet dhcp


保存并退出文件。

然后尝试使用以下命令重新启动网络服务

sudo service networking restart


,如果失败,则重新启动VM 。

一旦重新启动,请在下面键入以下内容以查看是否已为eth1分配IP地址

ifconfig -a


如果是,那么请查看是否可以在SSH上到VM


评论


我已经尝试过您的解决方案,但尚未将IP分配给新接口。而且我在VBox中启用了DHCP。

–阿斯兰
16年2月21日在22:21

#5 楼

以下说明适用于Ubuntu 14.04和Oracle VirtualBox 4.3.30。

在VirtualBox中执行此操作:


右键单击虚拟机,选择“设置” ,然后选择“网络”。
在“附加到”旁边,选择“仅主机适配器”。另外,“桥接适配器”也可以使用,请查看VirtualBox文档以获取有关每个选项的更多详细信息。

在虚拟机中执行此操作:


通过打开终端并键入ifconfig来查找网络IP地址。观察“ inet addr”下eth0旁边显示的IP地址。如果您单击桌面右上角的“网络”图标,然后选择“连接信息”,那么您也可以看到IP地址。

通过在终端上键入以下内容来安装openssh-server :

sudo apt-get install openssh-server


以防万一,请重新启动虚拟机。

现在您可以使用上面步骤1的IP地址从PuTTY连接,然后端口22。

#6 楼

对于Ubuntu 18.04和VirtualBox 5.2:



创建主机网络接口
i。在Virtualbox上,单击File / Host Network Manager

ii。如果还没有主机网络适配器(默认为vboxnet0),请单击Create


为VM

i启用仅主机适配器设置。在Virtualbox上,右键单击您的VM,然后选择Settings

ii。单击Network并选择Adapter 2

iii。点击Enable Network Adapter

iv。在Attached to:下选择Host-only Adapter。应该出现在步骤1中创建的适配器的名称(默认为vboxnet0)。


在VM

i中配置网络设置。启动您的VM并检查添加了哪个接口:ip a。查找没有inet地址的接口。在我的身上,是enp0s8

ii。编辑/etc/netplan/01-netcfg.yaml。例如sudo vi /etc/netplan/01-netcfg.yaml

iii。在原始适配器的设置下,添加配置详细信息:

enp0s8:
    addresses: [192.168.56.2/24]
    gateway4: 192.168.56.1
    dhcp4: no


这为您的VM分配了一个静态IP地址,以方便SSH。如果要让dhcp处理该地址,则省去地址和网关配置,并将dhcp4设置为yes

iv。重新加载配置文件:sudo netplan apply


SSH到您的VM

i。如果尚未在VM中安装sshsudo apt install ssh

ii。从主机通过SSH进入虚拟机:ssh <username>@192.168.56.2



评论


谢谢,保存了我的一天!

–anber
19-10-9在14:25