从外部无法访问 Vagrant 机器

当我说“来自外部”时,我的意思是来自互联网。

我的机器在路由器后面。我正在运行 vagrant 来调出 3 台机器。这是流浪文件(我删除了绒毛):

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-20.04"
  config.vm.provider :virtualbox

  mount_new_disk = <<-SCRIPT
  sudo mkdir /mnt/da
  sudo mkfs -t ext4 /dev/sdb
  sudo mount /dev/sdb /mnt/da
  SCRIPT

  config.vm.define "da1" do |da1|
    da1.vm.synced_folder ".", "/vagrant", disabled: true
      da1.vm.hostname = "da1"
      da1.vm.network "private_network", ip: "10.118.8.10"
      config.ssh.forward_agent = true
  end

  config.vm.define "da2" do |da2|
    da2.vm.synced_folder ".", "/vagrant", disabled: true
    da2.vm.disk :disk, name: "backup", size: "10GB"
      da2.vm.hostname = "da2"
      da2.vm.network "private_network", ip: "10.118.8.11"
      config.ssh.forward_agent = true
    config.vm.provision :shell, :inline => mount_new_disk
  end

  config.vm.define "da3" do |da3|
    da3.vm.synced_folder ".", "/vagrant", disabled: true
    da3.vm.disk :disk, name: "backup", size: "10GB"
    da3.vm.hostname = "da3"
    da3.vm.network "private_network", ip: "10.118.8.12"
      da3.vm.network "public_network", ip: "192.168.1.155", netmask: "255.255.255.0", bridge: "Intel(R) I211 Gigabit Network Connection"
    da3.vm.network "forwarded_port", guest: 22, host: 5555
      config.ssh.forward_agent = true
    config.vm.provision :shell, :inline => mount_new_disk
  end
end

虚拟机上的 sshd 配置:

testuser1@da3:~$ head -20 /etc/ssh/sshd_config|grep -v '#'
Include /etc/ssh/sshd_config.d/*.conf

Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

并且可以使用它的桥接 ip ( 192.168.1.155)从我计算机上的任何终端连接到它

D:\vag_rant>ssh [email protected]
[email protected]'s password:
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-58-generic x86_64)

防火墙关闭了:

testuser1@da3:~$ sudo ufw status
Status: inactive

这是ip addrvm 上的输出

testuser1@da3:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:14:86:db brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
       valid_lft 86205sec preferred_lft 86205sec
    inet6 fe80::a00:27ff:fe14:86db/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:86:38:bf brd ff:ff:ff:ff:ff:ff
    inet 10.118.8.12/24 brd 10.118.8.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe86:38bf/64 scope link
       valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:5a:fa:4c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.155/24 brd 192.168.1.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5a:fa4c/64 scope link
       valid_lft forever preferred_lft forever

port 22在路由器上打开ip 192.168.1.155

到目前为止,一切看起来都不错。我之前只用一个只有桥接网络适配器的 VM 做到了这一点,并且它工作正常。它可以从外面进入。

但这不起作用,出于某种原因。没有人可以使用我的公共 IP 从外部访问我的机器...

经过一番努力,我取得了进步,现在它只是说no route to host

编辑:发现问题。相同的端口 22 被转发到路由器上的另一台机器。当我解决了这个问题时,又出现了一个问题。vagrant 机器上的默认网关是 virtualbox 适配器的网关。我不得不将它修改为路由器的默认网关,然后它就可以工作了。

root@da3:/home/testuser1# ip route show
default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100
default via 192.168.1.254 dev eth2 proto dhcp src 192.168.1.104 metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100
10.118.8.0/24 dev eth1 proto kernel scope link src 10.118.8.12
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.104
192.168.1.254 dev eth2 proto dhcp scope link src 192.168.1.104 metric 100
root@da3:/home/testuser1# ip route del default via 10.0.2.2
root@da3:/home/testuser1# ip route show
default via 192.168.1.254 dev eth2 proto dhcp src 192.168.1.104 metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100
10.118.8.0/24 dev eth1 proto kernel scope link src 10.118.8.12
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.104
192.168.1.254 dev eth2 proto dhcp scope link src 192.168.1.104 metric 100

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

vagrant ansible 访问其他机器的IP地址

如何ssh到Vagrant机器?

从主机浏览器访问VirtualBox / Vagrant机器上的Web服务器?

为什么Ubuntu机器无法访问Github?

Pod无法访问本地机器Kubernetes服务

SQL Server Python机器学习无法访问文件系统

Android App无法访问Vagrant Homestead托管的Web API

debian 9 伸展 vagrant vm box 主机无法访问

从Vagrant机器连接到Redis Docker容器

RubyMine在Vagrant机器上列出的宝石太少

通过Ansible SSH进入Vagrant机器

Vagrant 多机-机器之间的连接

在Vagrant机器上连接到Redis

给定机器无法访问Internet,其他机器运行正常

为什么我无法从外部机器访问 kafka?

无法从Vagrant机器上对主机文件系统进行变基,存储或提交git repo:无法创建/.git/index.lock

无法从外部访问Vagrant上的Jekyll服务器

无法从主机连接到Vagrant专用网络-无法访问目标主机

无法使用ssh访问Vagrant

MS Teams 聊天机器人 - 无法访问应用程序。请重试

在本地 Docker 机器上开发的旁加载 Word JS 插件 - 无法访问插件

无法访问流浪机器上的流浪文件夹(陈旧的文件句柄)

无法访问由vagrant上的webpack-dev-server启动的网页

无法访问由vagrant创建并从主机运行tomcat的VM

vagrant + virtualbox等待机器启动时超时

对多个Vagrant机器使用相同的ssh密钥

如何在Vagrant机器上强制运行剧本?

是否可以在 Ubuntu Virtual box 机器中运行 Vagrant box?

Vagrant“等待机器启动时超时。”