一个简单的实验,具体见 Internet/ConnectionSharing
说一下实验环境,两台vm虚拟机,Ubuntu 16.04
- vbox-tmp-1 enp0s3连接外网 enp0s8临时内网选internal net,tmpnet
- vbox-tmp-2 临时内网选internal net,tmpnet
也就是说,我们想让tmp2通过tmp1连接互联网。
这里的做法是让tmp1的网卡2和tmp2的网卡1在同一个网段,然后在tmp1上通过iptables完成nattmp1的网络配置
1 tmp1的网络配置
# The primary network interface nat auto enp0s3 iface enp0s3 inet dhcp # 192.168.88.* auto enp0s8 iface enp0s8 inet static address 192.168.88.1 netmask 255.255.255.0
2 tmp2的网络配置
# 192.168.88.* auto enp0s3 iface enp0s3 inet static address 192.168.88.2 netmask 255.255.255.0 gateway 192.168.88.1
3 tmp1上的iptables配置
sudo iptables -F sudo iptables -A FORWARD -o enp0s3 -i enp0s8 -s 192.168.88.0/24 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -t nat -F POSTROUTING sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE sudo iptables-save | sudo tee /etc/iptables.sav sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
4 tmp2上可以试试外网ip可以ping通了!(注意要ip,不要用域名)
5 选配可在tmp1上配置dns服务器