我还尝试将“ 127.0.0.1”放入Putty中的主机名中,并仅获得“ Connection Refused”。请注意,我已经在Oracle VM中完成了SSH和HTTP的端口转发,因此我对如何使其运行感到迷茫。
#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中安装
ssh
:sudo apt install ssh
。 ii。从主机通过SSH进入虚拟机:
ssh <username>@192.168.56.2
。评论
谢谢,保存了我的一天!
–anber
19-10-9在14:25
评论
FWIW桥接/主机仅对我不起作用,但实际上,我可以通过以下方法来解决此问题:仅SSH“退出”(毕竟,scp可以双向执行),因此我不需要SSH访问在来宾之内。