我想在家里的服务器上使用 juju 来了解 juju 并使用它。我有多台计算机,想从其中任何一台计算机访问服务器上的内容。当我按照教程操作时,它设置了 juju,但只向本地计算机公开了服务。我想将它们公开给整个网络。我该怎么做?
注意:我的服务器已经存在并且正在运行 12.04,我不想使用 maas 重新安装它只是为了让 juju 工作。我也不想在 ec2 或任何其他提供商的“云中”运行它,因为我想在我的网络上在我控制下的自己的机器上试用它。
编辑:-
- 没有防火墙
- 无阻塞,所有端口开放
- 是的。LAN(192.168.1.0/24)上的所有计算机都可以看到 192.168.1.2 上的服务器(homeserver.local)
- 相当标准的有线和 wifi,配有一个 DHCP 服务器,提供上述范围内的 IP 地址
- 正确设置(刚刚从头开始)并按照 Luis 指导的教程进行操作,结果如下:-http://paste.ubuntu.com/5714640/
- juju 状态显示如上。
所以,一切运行正常,但主要问题是容器的 IP 地址在服务器上本地分配,只能在服务器本身上访问。虽然我可以到处设置 ssh 端口转发以访问 192.168.1.0/24 范围内的 10.x IP 地址,但这似乎过于复杂且没有必要。我希望容器在我的 LAN 上公开。
答案1
好的,解决了!
在 /etc/network/interfaces 中设置桥接网络 br0。
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static
bridge_ports eth1
address 192.168.1.2
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
编辑 /etc/lxc/lxc.conf 并设置 lxc.network.link=br0
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
编辑 /etc/default/lxc 并根据我的 LAN(192.168.1.0/24 类型设置)适当地设置 LXC_BRIDGE、LXC_ADDR、LXC_NETMASK、LXC_NETWORK、LXC_DHCP_RANGE 和 LXC_DHCP_MAX,现在 juju 状态显示我的设备的地址为 192.168.1.0/24,我可以从另一台机器通过 LAN 访问它们
LXC_BRIDGE="br0"
LXC_ADDR="192.168.1.2"
LXC_NETMASK="255.255.255.0"
LXC_NETWORK="192.168.1.0/24"
LXC_DHCP_RANGE="192.168.1.50,192.168.1.99"
LXC_DHCP_MAX="49"
答案2
据我所知,您已安装并运行 Juju,但您想向网络上的其他计算机公开一项服务。我假设您网络上的所有计算机都可以互相看到,并且它们的 IP 地址正确。
我还猜测你正在谈论的教程是其中之一:
那么我想,如果您想让其他计算机也可以使用该服务,您可以这样做:
juju expose SERVICE
使用如何安装 Hadoop?作为示例,我将:
juju expose hadoop-master
巫术揭露-https://jujucharms.com/docs/stable/charms-exposing
juju status SERVICE
还有助于了解服务的运行方式。
当然,我需要了解一些有关网络和服务器的事情,例如:
- 服务器是否设置了防火墙(iptables、ufw......)
- 网络上是否有配置路由器来执行与阻止、转发等相关的操作,从而导致尝试访问服务器时出现问题?
- 局域网上的计算机能看到服务器吗?
- 是否存在不常见的特殊连接(无线或有线)或安全性问题,从而可能导致客户端和服务器出现问题?
- 设置 Juju 的所有步骤是否都正确完成(如所提到的教程所提供的,特别是
environments.yaml
我容易忘记或出错的部分)。 - 这是否
juju status
能让您了解问题可能出在哪里? - 您是否在文件中设置了多个环境
environments.yaml
?
如果因为 LXC 而导致服务无法对外显示,请执行以下操作(由 popey 给出的答案和大量研究提供):
在 /etc/network/interfaces 中设置桥接网络 br0
编辑
/etc/lxc/lxc.conf
并设置lxc.network.link=br0
编辑
/etc/default/lxc
并设置 LXC_BRIDGE、LXC_ADDR、LXC_NETMASK、LXC_NETWORK、LXC_DHCP_RANGE 和 LXC_DHCP_MAX 以适合 LAN(192.168.1.0/24 类型设置)现在
juju status
应该显示我的设备的 192.168.1.0/24 地址,并且可以从另一台机器通过 LAN 进行访问。