如何将 eth2 上的互联网连接转发到 eth1 上的 LAN?

如何将 eth2 上的互联网连接转发到 eth1 上的 LAN?

我有两个网卡/连接:

  • eth2 已连接到互联网
  • eth1 连接到我的 LAN

我想允许 eth1 上的 LAN 中的计算机访问 eth2 上的互联网连接。

请为我提供详细的分步指南或教程来帮助我解决这个问题,因为我是 Ubuntu 新手。

答案1

首先,确定你的网卡的ips。

打开终端,

Ctrl++AltT

运行:

sudo -i
ifconfig -a

我们假设:

eth2 10.0.10.2  --- Internet
eth1 10.0.20.5  --- LAN

笔记:用你的卡 IP 更改 IP

然后禁用网络管理器并手动配置静态 IP。

在终端中运行:

nano /etc/NetworkManager/NetworkManager.conf 

设置“managed=false”,显示在[ifupdown]下

[ifupdown]
managed=false

Ctrl+ O,保存文件。Ctrl+ X,关闭 nano。

然后在 /etc/network/interfaces 中添加有关接口的信息:

nano /etc/network/interfaces 

设置此项:

The loopback network interface
auto lo
iface lo inet loopback

auto eth2      # internet
allow-hotplug eth0
iface eth0 inet static
address 10.0.10.2
netmask 255.255.255.0
network 10.0.10.0/24
gateway 10.0.10.1

auto eth1  # lan 
allow-hotplug eth1
iface eth1 inet static 
address 10.0.20.5
netmask 255.255.255.0
network 10.0.20.0/24
broadcast 10.0.20.255
gateway 10.0.10.1

Ctrl+ O,保存文件。Ctrl+ X,关闭 nano。

下面是一个 NAT 的简单示例,运行:

/sbin/iptables -F  
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -s 10.0.20.0/24 -i eth1 -j ACCEPT
/sbin/iptables -t  nat  -A POSTROUTING -s 10.0.20.0/24 -o eth2 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward        

如果一切正常,创建一个在启动时运行的脚本

sudo -i    
nano /etc/init.d/my_iptables.sh

把这个内容

#! /bin/sh
/sbin/iptables -F              &&echo
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -s 10.0.20.0/24 -i eth1 -j ACCEPT
/sbin/iptables -t  nat  -A POSTROUTING -s 10.0.20.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward      

Ctrl+ O,保存文件。Ctrl+ X,关闭 nano。

并继续运行:

chmod +x /etc/init.d/my_iptables.sh
ln -s /etc/init.d/my_iptables.sh /etc/rcd.2/s99my_iptables.sh
ln -s /etc/init.d/my_iptables.sh /etc/rcd.3/s99my_iptables.sh
ln -s /etc/init.d/my_iptables.sh /etc/rcd.4/s99my_iptables.sh
ln -s /etc/init.d/my_iptables.sh /etc/rcd.5/s99my_iptables.sh
ln -s /etc/init.d/my_iptables.sh /etc/rcd.S/s99my_iptables.sh
update-rc.d my_iptables.sh defaults

相关内容