所以我按照Vagrant的“入门”文档设置了一个Linux虚拟机 - 它正在运行Ubuntu Precise。其他一切工作正常,但我无法通过浏览器从我的主机(我的Macbook)访问它。最终,我想从VM运行RStudio Server,因此这很重要。
我在Mac上设置了端口转发,但我不确定它是否配置正确。要更详细地解释:
1 - 我的pfctl配置文件位于/ etc /文件夹中。看起来像这样
# /etc/pf-vagrant.conf
# sudo pfctl -ef /etc/pf-vagrant.conf
rdr-anchor "forwarding"
load anchor "forwarding" from "/etc/pf.anchors/vagrant.apache.forwarding"
2 - 我的锚文件位于/etc/pf.anchors文件夹中
rdr pass on lo0 inet proto tcp from any to port 80 -> 127.0.0.1 port 8080
rdr pass on lo0 inet proto tcp from any to port 443 -> 127.0.0.1 port 8443
3 - 当我测试我的锚文件的有效性时,一切似乎都很好
$ sudo pfctl -vnf /etc/pf.anchors/vagrant.apache.forwarding
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.
rdr pass on lo0 inet proto tcp from any to any port = 80 -> 127.0.0.1 port 8080
rdr pass on lo0 inet proto tcp from any to any port = 443 -> 127.0.0.1 port 8443
4 - 然后当我从终端执行pfctl命令时,我收到以下错误:
sudo pfctl -ef /etc/pf-vagrant.conf
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.
No ALTQ support in kernel
ALTQ related functions disabled
/etc/pf-vagrant.conf:5: syntax error
pfctl: Syntax error in config file: pf rules not loaded
5 - 当我输入
时,终端显示拒绝连接$ nc -v 127.0.0.1 80
nc: connectx to 127.0.0.1 port 80 (tcp) failed: Connection refused
6 - 当我在进入Ubuntu之后做同样的事情时,我得到了
vagrant@precise64:~$ nc -v 90.254.170.192 80
Connection to <MY IP ADDRESS> 80 port [tcp/http] succeeded!
7 - 我尝试使用以下命令的变体从我的主机允许连接。
sudo ufw allow 80
非常感谢任何帮助。我正在慢慢地试图让它发挥作用。
更新#1 - 我的Vagrantfile
当然,在这里。谢谢你的帮助。
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 443, host: 8443
config.vm.network "public_network"
end