我有一个Ubuntu虚拟机运行在我的Windows 7机器上。我如何设置它,以便我可以通过SSH从外部访问web服务器?
我发现步骤(在VirtualBox主机和客户虚拟机之间设置SSH访问)能够从我的主机SSH到我的客户,但这仍然留给我通过路由器访问它的问题。
我想我可以在我的Windows机器上安装一个SSH服务器,然后隧道几次(虽然我不是100%确定在本地,动态等方面使用什么,或者如何设置多个隧道?),但是有没有一种方法可以让虚拟机直接访问我的路由器,这样我就可以直接端口转发到它?
我有一个Ubuntu虚拟机运行在我的Windows 7机器上。我如何设置它,以便我可以通过SSH从外部访问web服务器?
我发现步骤(在VirtualBox主机和客户虚拟机之间设置SSH访问)能够从我的主机SSH到我的客户,但这仍然留给我通过路由器访问它的问题。
我想我可以在我的Windows机器上安装一个SSH服务器,然后隧道几次(虽然我不是100%确定在本地,动态等方面使用什么,或者如何设置多个隧道?),但是有没有一种方法可以让虚拟机直接访问我的路由器,这样我就可以直接端口转发到它?
当前回答
VirtualBox文档中有一个关于如何配置NAT端口转发的很好的解释: http://www.virtualbox.org/manual/ch06.html#natforward
其他回答
VirtualBox文档中有一个关于如何配置NAT端口转发的很好的解释: http://www.virtualbox.org/manual/ch06.html#natforward
优麒麟 18.04 LTS
配置桥接以查看服务器ip,并且连接时没有“端口转发”
VirtualBox >右键单击服务器>设置> Network > enable适配器2 > select " bridging " >混杂模式:允许所有>检查>启动服务器连接的线缆
在ubuntu服务器上编辑sudo nano /etc/netplan/*init.yaml文件,
我的示例文件:
network:
ethernets:
enp0s3:
addresses: []
dhcp4: true
enp0s8:
addresses: [192.168.0.200/24]
dhcp4: no
dhcp6: no
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
version: 2
这些命令将帮助你
nano /etc/netplan/file.yaml # file to specify the rules of network
reboot now # restart ubuntu server right now
netplan apply # do after edited *.yaml, to apply changes
ifconfig -a # show interfaces with ip, netmask, broadcast, etc...
ping google.com # to see if there is internet
在Ubuntu 18.04 LTS服务器上配置静态IP地址-使用NetPlan
为了从您的主机上ssh到运行在VirtualBox中的Ubuntu VM,您需要为VM设置两个网络适配器。
首先,如果尚未关闭,请关闭虚拟机。
然后选择虚拟机,在VirtualBox工具栏中单击“设置”菜单:
设置适配器1
设置适配器2
(注意:不需要设置端口转发)
就是这样。设置完成后,就可以启动VM了。在你的虚拟机中,网络配置如下所示,你也可以上网:
同样在你的主机上,你可以ssh到你的VM:
确保虚拟机中已安装并运行SSH服务器。
$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D
如果没有,请安装:
$ sudo apt-get install openssh-server
另外供您参考:
我的VirtualBox版本:5.2.6 r120293 (Qt5.6.2), 2018 我的Ubuntu版本:Ubuntu 16.04.3 LTS 我的主机:Windows 10
登录Linux VirtualBox虚拟机的最佳方式是端口转发。缺省情况下,您应该已经有一个正在使用NAT的接口。然后进入“网络设置”,单击“端口转发”按钮。添加一个新规则。插入“ssh”作为规则名。作为“主机端口”,插入3022。作为“来宾端口”,插入22。规则的其他部分可以留空。
或者从命令行
VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"
其中“myserver”是创建的虚拟机名称。查看已添加的规则:
VBoxManage showvminfo myserver | grep 'Rule'
这是所有!请确保您不要忘记在虚拟机中安装SSH服务器:
sudo apt-get install openssh-server
SSH进入客户虚拟机,如下所示:
ssh -p 3022 user@127.0.0.1
其中user是您在虚拟机中的用户名。
保留NAT适配器并添加第二个仅限主机的适配器效果非常好,而且对于笔记本电脑(外部网络总是在变化)至关重要。
http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/
记住要在virtualbox本身中创建一个主机专用网络(GUI -> settings -> network),否则您无法在客户端上创建主机专用接口。