我在 VirtualBox 中将 ubuntu 服务器安装为虚拟机,然后在其中安装 Docker 来运行一些容器。在其中安装了 Portainer(这意味着虚拟机已连接到互联网)。现在我输入ifconfig
以查看我的 IP 地址,我看到了以下内容:
br-70e261a4f7c8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
inet6 fe80::42:66ff:fe9b:a3f7 prefixlen 64 scopeid 0x20<link>
ether 02:42:66:9b:a3:f7 txqueuelen 0 (Ethernet)
RX packets 211 bytes 3306540 (3.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 228 bytes 33889 (33.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:41:c6:88:8c txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:feab:bbc0 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:ab:bb:c0 txqueuelen 1000 (Ethernet)
RX packets 89848 bytes 118364599 (118.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 39603 bytes 2588176 (2.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 836 bytes 3376136 (3.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 836 bytes 3376136 (3.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethfaa59c1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::c4fd:4aff:fe13:a309 prefixlen 64 scopeid 0x20<link>
ether c6:fd:4a:13:a3:09 txqueuelen 0 (Ethernet)
RX packets 211 bytes 3309494 (3.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 215 bytes 32719 (32.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
这是我使用时得到的traceroute 8.8.8.8
:
主机操作系统是 Windows 7。这让我很困惑。我不得不说,我对 Linux 还很陌生,最近才使用 Linux Unity 大约 6 个月。
起初,我以为 10.0.2.15 是我的 IP 地址,但我无法使用它通过 PuTTY SSH 进入虚拟机。我可以使用 SSH 的唯一方法是通过虚拟机中的端口转发,然后从 PuTTY 通过该端口使用 127.0.0.1,但互联网无法通过此过程工作,并且如预期的那样,它只能在主机操作系统上运行,而不是在外部。
要打开 Portainer,我必须输入https://serverip:port
,但我的服务器 IP 是什么?为什么我无法通过 ssh 进入我的虚拟机?
PS 如果我在 Putty 中使用 10.0.2.15,它会显示连接被拒绝,而其他“inet”则显示连接超时。我甚至安装了 Openbox 和 Firefox 来检查 Portainer,并且localhost:port
运行正常……但仅限于虚拟机内部。
编辑:这就是我希望我的服务器做的(如果可能的话)
我打开电脑,运行服务器虚拟机,打开 PuTTY 并从 Windows 主机通过 SSH 进入虚拟机,但互联网连接应该在那里
拿出运行 Windows 的笔记本电脑,然后通过 PuTTY 通过 SSH 连接到我电脑上的虚拟机
在我的主机操作系统上打开浏览器并输入
https://serverip:port
,port
我的虚拟机服务器中 Portainer 的端口号在哪里拿出我的笔记本电脑,打开浏览器,按照第 3 步打开 Portainer
带着我的笔记本电脑,离家 10 公里,执行第 2 步和第 4 步
最后一步稍后再进行,但目前这些步骤都不起作用。有什么建议吗?
答案1
哇,经过这么多的修修补补,我终于能够解决第 1、2、3 和 4 个问题了。也许这是一件非常简单的事情,而我却毫无理由地把它复杂化了。无论如何,谢谢@George Uderson对于网站来说它帮助很大。以下是我所做的
1)我在虚拟机中打开网络设置并打开端口转发选项卡。输入名称并将主机 ip 设置为 127.0.0.1,端口设置为 22 或任何其他值,然后将客户机 ip 设置为 10.0.2.x(无论它是什么)并将端口设置为 22。打开 putty 并将 ip 设置为 127.0.0.1 并将端口设置为 22,然后瞧!您已进入
2)为此,最好让运行虚拟机的电脑有一个固定的 IP 地址。我在 win 7 的网络属性中很容易地更改了它。然后我们可以按照前面的步骤操作,但是在 127.0.0.1 的位置输入我们的固定 IP 地址。然后我们就可以轻松地在 putty 中使用该 IP 地址。
3) 执行与步骤 2 或 1 相同的操作,但在端口位置我们放置容器使用的端口,即 xxxx
4)与3相同,但仅具有固定IP地址。
5)不知道如何实现家庭网络的运行。
如果我哪里错了,请纠正或编辑。但这对我有用。谢谢