为机器提供 IP

为机器提供 IP

我有一台安装了 VirtualBox 的 Ubuntu 14.04 台式机。我制作了两台虚拟机,一台是 Ubuntu 服务器,另一台是 Lubuntu 客户端。默认设置允许我通过连接到主机的 3G 调制解调器从客户机连接到 Internet,因为客户机默认使用 NAT,但我无法从客户端连接到服务器。

我想把两个客户机放在独立的网络中,让客户机服务器通过另一个网络接口的 NAT 连接到互联网,并让客户机客户端通过客户机服务器连接到互联网。

我做了以下事情:

  • 在客户服务器上我添加了两个网络接口,一个用于本地网络,另一个用于 NAT。
  • 在来宾客户端上我只添加了本地网络接口。

我应该怎么做才能让客户服务器访问互联网,然后让客户客户端也通过客户服务器访问互联网?

答案1

你有一个VirtualBox 网络模式列表在其文档中。

两个系统上都需要的是内部网络。您必须给它起一个名字,您可以在此模式下创建多个网络。VirtualBox 将在同一内部网络中连接所有客户机,因此两个虚拟机上的名称必须匹配。默认设置应该开箱即用。

服务器需要内部网络在你的情况下,使用相同的名称和另一个连接到世界的名称NAT

现在,来宾服务器应该能够通过NAT界面。

为机器提供 IP

为了使客户端和服务器能够互相访问,必须配置它们的接口在同一网络中。您可以手动执行(静态地址)或配置DHCP 服务器在服务器机器上。

以下是手动执行的步骤:

root@server:~# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
root@client:~# ifconfig eth0 192.168.1.5 netmask 255.255.255.0

你可以设置任意 IP,但必须位于同一网络。此处的eth0服务器计算机是指内部的接口,如果将接口 1 设置为内部的和 2 作为NAT,上述命令将正常工作。

现在你们应该可以ping互相通信了,但是来自客户端的数据包将无法传输通过服务器机器,仅服务器。

笔记:这些更改将在下次重启时丢失,要使更改永久生效,您必须编辑和配置 /etc/network/interfaces。如果您从桌面使用 GUI 配置客户端,请跳过 CLI 配置。

配置转发

你需要配置转发.你可以简单地做

root@server:~# echo 1 > /proc/sys/net/ipv4/ip_forward

但这只有在您重新启动机器之前才会起作用。您需要编辑/etc/sysctl.conf并取消注释#net.ipv4.ip_forward=1 ,使其看起来像:

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

这将配置服务器机器以转发数据包(下次重启时)。

启用伪装

这将配置服务器执行IP伪装

root@server:~# modprobe iptable_nat
root@server:~# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
root@server:~# iptables -A FORWARD -i eth0 -j ACCEPT

注意eth0eth1,这里第二行必须是-o NAT_interface和第三行-i Internal_interface

配置客户端通过服务器

此设置应该已设置,无论是在 GUI 助手中还是通过编辑/etc/network/interfaces/。 为了防止未应用,请通过服务器计算机添加默认路由:

root@client:~# route add default gw 192.168.1.1

配置 DNS

现在您应该能够从客户端计算机进行通信,但是如果您手动配置了 IP 地址,则仍然需要提供 DNS 服务器以便解析名称。

编辑/etc/resolv.conf并添加您喜欢的服务器:

nameserver 4.2.2.1
nameserver 4.2.2.2
nameserver 8.8.8.8
nameserver 8.8.4.4

如果您在服务器机器中配置了 DHCP,那么您应该已经告诉 DHCP 服务器要使用哪个 DNS 服务器(如果没有,请现在就这样做)。

再次,如果您使用 GUI 助手配置了客户端,只需确保 DNS 有效并跳过此部分。

相关内容