vagrant、端口转发和 iptables

vagrant、端口转发和 iptables

背景:我是 Python 和 Django 的新手。因为我的机器是 Windows 8.1,所以我安装了带有 Precise 64 的 Vagrant。起初一切正常,然后突然间,VM 中的所有项目都不会在本地显示。更糟糕的是(至少在我看来),我的所有 3 个浏览器都给出了不同的消息。Chrome 说我有一个“空响应”,Firefox 说“连接已重置”,IE 说“无法显示页面”。我认为问题出在 Vagrant 上,因为我的第一个 Django 项目(在 Windows 上)仍然出现在浏览器中,并且三个 Vagrant 项目都有不同的数据库设置,所以问题不是数据库。

我去了 Vagrant google 小组,发现了两个类似的先前问题,但都没有得到解决。那里的一个建议是运行 iptables -L,所以我这样做了:

(fed1-venv)vagrant@precise64:/vagrant/fed1$ iptables -L
FATAL: Error inserting ip_tables (/lib/modules/3.2.0-23-generic/kernel/net/ipv4/
netfilter/ip_tables.ko): Operation not permitted
iptables v1.4.12: can't initialize iptables table `filter': Table does not exist
(do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
(fed1-venv)vagrant@precise64:/vagrant/fed1$

我不知道这些是什么意思。我甚至从未听说过 insmod。我又在 Google 上搜索了一些,但我只是迷失了方向。我想过重新安装 iptables,但后来我读到 Ubuntu 默认不启用它。这说明当本地网站在我的浏览器中运行时它不存在。我还发现这个答案但当我尝试时,我得到了:

vagrant@precise64:/home$ curl -v 'http://localhost:80'
* About to connect() to localhost port 80 (#0)
*   Trying 127.0.0.1... Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
vagrant@precise64:/home$ curl -v 'http://localhost:8000'
* About to connect() to localhost port 8000 (#0)
*   Trying 127.0.0.1... Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
vagrant@precise64:/home$ curl -v 'http://localhost:8888'
* About to connect() to localhost port 8888 (#0)
*   Trying 127.0.0.1... Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

我尝试 8000 和 8888 的原因是我的 vagrant box 已在主机上将 8000 转发到 8888。

然后我发现但即使第一个版本与答案中所写的完全一样,也无法克服语法错误:

vagrant@precise64:/home$ $ch = curl_init("http://google.com");
-bash: syntax error near unexpected token `('
vagrant@precise64:/home$ $ch = curl_init("http://google.com"); curl_setopt($ch,
CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($ch); print($data);
-bash: syntax error near unexpected token `('
vagrant@precise64:/home$ $ch = curl_init ("http://google.com"); curl_setopt($ch
, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($ch); print($data);
-bash: syntax error near unexpected token `('
vagrant@precise64:/home$

所以我不知道该怎么做,从现在起我所做的一切都只是猜测。请给点建议,好吗?谢谢。

相关内容