我有一个Ubuntu虚拟机运行在我的Windows 7机器上。我如何设置它,以便我可以通过SSH从外部访问web服务器?

我发现步骤(在VirtualBox主机和客户虚拟机之间设置SSH访问)能够从我的主机SSH到我的客户,但这仍然留给我通过路由器访问它的问题。

我想我可以在我的Windows机器上安装一个SSH服务器,然后隧道几次(虽然我不是100%确定在本地,动态等方面使用什么,或者如何设置多个隧道?),但是有没有一种方法可以让虚拟机直接访问我的路由器,这样我就可以直接端口转发到它?


当前回答

优麒麟 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

在安全网络上,将网络设置为网桥可能不起作用。管理员只能允许每个端口有一个mac地址,如果交换机在一个端口上检测到多个mac地址,则阻塞端口。

在我看来,最好的解决方案是设置额外的网络接口来处理您希望在计算机上运行的额外服务。所以我有一个桥接接口,当我把我的笔记本电脑带回家时,我可以从我网络上的其他设备SSH到它,当我想从我的笔记本电脑SSH到我的VM时,当我连接到校园的eduroam wifi网络时,我有一个主机适配器。

对于Windows主机,您可以:

在virtualbox管理器中: 在virtualbox管理器中选择ctrl+G, 然后进入网络面板 添加专用网络 确保“激活DHCP”未选中 网管(windows) 选择新创建的virtualbox主机专用适配器和物理网卡 右键选择“制作桥” 享受

VirtualBox文档中有一个关于如何配置NAT端口转发的很好的解释: http://www.virtualbox.org/manual/ch06.html#natforward

简单地将网络设置设置为桥接就可以了。

当你这样做时,你的IP会改变。然而,在我的情况下,它并没有立即改变。Ifconfig返回相同的ip。我重启了虚拟机,然后砰的一声,ip设置为1,从192开始。*我立即被允许ssh访问。