有没有人有关于如何在 Linux 上设置共享 tmux 会话的清晰分步指南?流浪汉vbox,我的同事(在我们本地办公室局域网上)可以通过 SSH 进入吗?我在网上找到的文章似乎只涉及从一台机器到另一台机器的设置(没有虚拟机设置),而且我不太擅长网络,所以我无法推断出解决方案……
顺便说一句,我们办公室里都运行着最新的 Mac。
这是我找到的一篇文章,但无法与 Vagrant 一起使用:http://blog.voxdolo.me/remote-pairing-with-vim-and-tmux.html
编辑:澄清一下,我真的不知道应该如何设置 Vagrant,以便我从托管 VM 的机器之外的机器通过 SSH 进入它。上面的文章建议我tunnels
在运行 VM 的物理机器上添加主机(此处称为 MBP),所以我这样做了。接下来是ProxyCommand
主机声明,我也假设它应该存在于 MBP 上。
因此接下来我尝试从客户机(我网络上的另一台独立的物理机)通过 SSH 进入 MBP,这似乎可行......但这只能让我进入 MBP,而不是在 MBP 上运行的 Vagrant 映像。
我通常通过(根据文档)在 MBP 上登录 Vagrant 映像vagrant ssh
,并且我知道如何将 Vagrant VM 上的端口转发到 MBP,但我不清楚如何将端口/SSH 从 MBP 转发到 Vagrant VM,我认为我需要这样做以便我的客户机可以通过 MBP 通过 SSH 进入我的 Vagrant 映像。
简而言之,这就是我想要实现的目标。我在 Vagrant VM 中完成开发工作,这样可以让我的 MBP 保持干净整洁,不会出现任何与开发相关的垃圾,还可以让我的开发环境完全相互隔离,但我想通过 tmux 与我的同事开始结对编程,这就是我问这个问题的原因。
如果可能的话,我希望完成所有这些操作,而无需在 MBP 上设置额外的用户帐户,或者让我的同事访问我在 MBP 上的本地用户帐户来访问我的 Vagrant VM。
更新:按照@John Whitley 的建议,我一直尝试建立桥接连接,但目前尚未成功。
我的 vagrant 映像上有一个新的网络适配器,设置为桥接,并与主机上的 AirPort 接口绑定:
然后我可以vagrant ssh
进入框并运行ifconfig
并看到它是以下 IP 10.0.2.151
:
但是当我在主机上打开一个新的终端会话并尝试 ping 该地址时,我什么也没得到:
我注意到 Vagrant 文档中有关桥接网络的部分(http://vagrantup.com/v1/docs/bridged_networking.html),似乎将桥接设备列为,eth2
并在其前面有一个省略号,表明可能还有一个eth1
具有不同 IP 的活动设备。我的ifconfig
vagrant box 没有两个单独的适配器。启动 vagrant 映像时,系统提示我:
我总是回复1
我的机场,我认为我应该这样做。有什么想法可以让这个工作吗?我的 Vagrant 盒子仍然可以与互联网通信,端口转发仍然有效......
答案1
最简单的做法是向 Vagrant VM 添加一个 Bridged 网络接口。(不要将主网络接口更改为 Bridged 接口,根据 Vagrant 文档.) NAT 接口可以访问外部网络(例如,VM 可以提取包、git repos 等),但外部网络无法访问 VM。仅 NAT 是默认的 Vagrant 网络设置。在 VirtualBox Manager GUI 中,它看起来像这样:
VirtualBox Bridged 接口在外部网络中的表现与真实物理主机一样 — 包括从本地 DHCP 服务器获取 IP,以及通过 DDNS 获取分配的域名(如果本地网络为此设置)。这意味着您只需检查虚拟机的 IP 地址(例如通过vagrant ssh -c ifconfig
)并直接通过 ssh 进入即可。再次,VB GUI 的屏幕截图:
这VirtualBox 网络文档介绍 VM 环境支持的各种“类型”接口,包括本文未介绍的一些接口。文章很短,值得一读。
最后的魔法是正确配置 VirtualBox VM。在你的 Vagrantfile 中,你需要添加如下一行:
config.vm.network :bridged
vagrant reload
更改后需要进行才能生效。请参阅Vagrant 桥接网络文档了解有关此方法的更多详细信息。
答案2
通过 NAT 你可以使用这个连接:
ssh -p 2222 vagrant@[IP address of your host machine]
如果您的主机处于代理之下,请将端口 2222 转发到 Internet。
答案3
遇到此问题的人可能都想考虑 wemux:https://github.com/zolrath/wemux
摘自自述文件:
如果你已经安装了 Homebrew,你可以使用以下相当简单的方法安装 wemux:
brew install https://github.com/downloads/zolrath/wemux/wemux.rb
安装 wemux 的用户将自动添加到 wemux 主机列表中。要更改主机或添加更多主机,请编辑 /usr/local/etc/wemux.conf 并将用户名添加到 host_list 数组。
host_list 中的用户将能够启动新的 wemux 服务器,所有其他用户将成为 wemux 客户端并加入这些服务器。
$ vim /usr/local/etc/wemux.conf
或者
$ wemux conf
host_list=(zolrath brocksamson)