需要 Nat 配置的基本帮助

需要 Nat 配置的基本帮助

我有一台 IP 为 1.0.0.5/24 的服务器。这是服务器的主 IP 地址,现在我还有另外两个服务器 IP 地址,分别是 1.0.2.30/24 和 1.0.2.31/24。我想让运行另一个操作系统的 VirtualBox 可通过互联网访问,并且只允许指定的 IP 访问该虚拟盒。

我是 iptables 的新手,因此我需要一些有关此的基本帮助和入门信息。

托管服务提供商不允许每个交换机端口有多个 MAC 地址,这意味着据我所知我无法建立桥接。

此外,我希望主机拒绝额外的 IP,因此只有 VirtualBox/虚拟机才能接受额外 IPS 上的请求。

答案1

我还没有测试过,但我会尝试一下。

  1. 使用以下命令在主机上创建新网桥brctl

    brctl addbr br0
    
  2. 使用以下配置虚拟机桥接网络连接到这座桥

  3. 为网桥分配一个私有子网,并为主机分配一个 IP

    ip addr add 192.168.1.1/24 dev br0
    ip route add 192.168.1.0/24 dev br0
    
  4. 要么静态地为虚拟机配置一个该范围内的 IP(例如 192.168.1.2),要么在主机上设置 DHCP 服务器(例如域名系统或 VirtualBox 的DHCP服务器)。

  5. 检查主机是否可以通过私有 IP 访问虚拟机,反之亦然
  6. 将静态 IP 附加到主机上的 eth0

    ip addr add 1.0.2.30/24 dev eth0
    
  7. 检查是否可以从外部连接到附加 IP 上的主机

  8. 在主机上启用 IP 转发

    echo 1 > /proc/sys/net/ipv4/ip_forward
    
  9. 配置 iptables 以对来自 VM 的传出数据包进行 SNAT

    iptables --table nat --append POSTROUTING --source 192.168.1.0/24 --jump SNAT --to 1.0.2.30
    iptables --append FORWARD --source 192.168.1.0/24 --jump ACCEPT
    
  10. 检查虚拟机是否已连接到 Internet

  11. 配置 iptables 以将数据包 DNAT 到虚拟机的附加 IP

    iptables --table nat --append PREROUTING --destination 1.0.2.30 --to-destination 192.168.1.2
    iptables --append FORWARD --destination 192.168.1.2 --jump ACCEPT
    
  12. 检查是否可以从外部连接到附加 IP 上的虚拟机

相关内容