我是 Linux 新手,我想设置一个 Virtualbox 网络服务器来保持 OSX 清洁。
我已经使用 Apache2、Avahi 和 ssh 设置了无头 Debian 服务器。
我希望服务器执行以下操作:
- 无论有没有本地网络(即没有路由器)都可以访问
- 不需要对主机上的 hosts 文件进行任何修改。
- 能够解析任一子域名dev-vm.local或者dev-vm.com例如。
现在如何运作
- Apache 默认响应192.168.2.13和dev-vm.local
- 我可以访问子域名,如果我添加192.168.2.13到我的 OSX 主机文件,但我想避免这种情况。
- 我可以通过 ssh 连接到192.168.2.13但不是vboxnet0IP(10.0.0.20)。
如果我输入dev-vm.local在我的浏览器中,我获得了服务器根目录,这很好,但如果我尝试访问测试.dev-vm.本地域名无法解析。
我的 ghost 文件如下
<VirtualHost *:80>
DocumentRoot /var/www/test
ServerName test.dev-vm.local
ServerAlias tester.dev-vm.local
ServerAlias test.vm.dev
<Directory /var/www/test/>
Options +FollowSymLinks Indexes
AllowOverride All
order allow,deny
allow from all
</Directory>
正如所说,它响应测试.vm.dev如果我添加
192.168.2.13 test.vm.dev
到 OSX 的主机文件。
确实如此不是回应测试.dev-vm.本地也不测试器.dev-vm.local. 我更喜欢后者。
Virtualbox 设置了
- eth0 上的桥接适配器(混杂模式:拒绝)
- eth1 上的 vboxnet0(混杂模式:全部允许)
在 Virtualbox 设置下,vboxnet0 具有以下属性
Adapter:
IPv4Adress 10.0.0.2
IPv4 Network Mask 255.255.255.0
DHCP Server:
Server Address: 10.0.0.1
Server Mask: 255.255.255.0
Lower Address Bound 10.0.0.20
Upper Address Bound 10.0.0.20
在来宾 Web 服务器上我有以下设置:
在 /etc/网络/接口:
# The loopback network interface
auto lo eth0 eth1
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
iface eth1 inet dhcp
/etc/apache2/apache2.conf 添加了以下内容:
ServerName localhost
抱歉,如果有什么不清楚,但由于我是新手,我不知道是否包含了必要的信息。
但如果有人能给我指明正确的方向我将不胜感激!
答案1
为了让您的 Web 服务器能够处理子域请求,查询应该能够到达它。但是,据我所知,您只是将 Web 服务器的主机名添加到您的 hosts 文件中。因此,带有子域地址的请求不会被定向到虚拟机。您有两个选择。您应该将所有子域添加到您的 hosts 文件中,这可能是一个简短而简单的解决方案,或者设置一个 DNS 服务器来处理所有虚拟环境地址。如果您只有一个虚拟机,那么 DNS 解决方案会更昂贵,但如果您有许多具有大量子域地址的虚拟机,那么这可能是一个解决方案