Ubuntu通过双网卡+NAT实现共享上网

一个简单的实验,具体见 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服务器

 

 

 

Leave a Reply

Your email address will not be published.