我有两个网卡/连接:
- 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