我有一个IP 1.0.0.5/24的服务器。 这是服务器的主要IP地址,现在我有两个服务器的其他IP地址,它们是1.0.2.30/24和1.0.2.31/24。 我想让一个VirtualBox运行另一个可以通过Internet访问的操作系统,只允许指定的IP到达虚拟盒子。
我是iptables的新手,因此我需要一些基本的帮助和入门信息。
托pipe服务提供商不允许在每个交换机端口上使用超过MAC地址的数据,这意味着据我所知,我无法build立桥接。
此外,我希望主机拒绝额外的IP,因此它只有在额外IPS上接受请求的VirtualBox /虚拟机。
我没有testing过,但这是我想要的。
用brctl在主机上创build一个新的桥
brctl addbr br0
使用连接到该网桥的桥接networkingconfiguration虚拟机
为该桥分配一个私有子网,并为该主机分配一个IP
ip addr add 192.168.1.1/24 dev br0 ip route add 192.168.1.0/24 dev br0
可以在此范围内静态configuration虚拟机(例如192.168.1.2)的IP或在主机上设置DHCP服务器(例如dnsmasq或VirtualBox的dhcpserver )。
将静态IP连接到主机上的eth0
ip addr add 1.0.2.30/24 dev eth0
检查是否可以从外部连接到附加IP上的主机
在主机上启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
将iptablesconfiguration为来自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
检查虚拟机是否连接到互联网
configurationiptables到DNAT数据包到VM的附加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
检查是否可以从外部连接到附加IP上的VM