![在 Ubuntu 上设置网桥/防火墙](https://linux22.com/image/525927/%E5%9C%A8%20Ubuntu%20%E4%B8%8A%E8%AE%BE%E7%BD%AE%E7%BD%91%E6%A1%A5%2F%E9%98%B2%E7%81%AB%E5%A2%99.png)
我一直在尝试在 Ubuntu 上配置桥接,但一直碰壁。我是 Linux 新手,但是一名拥有 10 年 Windows 使用经验的 IT 专业人士。因此,我理解这些概念,但就是无法让互联网上提到的步骤对我有用。
我需要的是能够将我的 eth1 桥接到 eth0。我的 Ubuintu 10.4 LTS 盒子有两个适配器 eth0 和 eth1,我想用它将我的 Windows 7 PC 连接到互联网(和外部网络)。eth0 连接到外部网络并具有 DHCP。eth1 使用交叉电缆连接到 Windows 7。
以下是 ifconfig 的输出:
eth0 Link encap:Ethernet HWaddr ~~~~~~~~~~~
inet addr:10.128.4.250 Bcast:10.128.255.255 Mask:255.255.0.0
inet6 addr: fe80::203:47ff:fecf:a008/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13936 errors:0 dropped:0 overruns:0 frame:0
TX packets:3277 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1953127 (1.9 MB) TX bytes:3887075 (3.8 MB)
eth1 Link encap:Ethernet HWaddr ~~~~~~~~~~~~~~
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 B) TX bytes:480 (480.0 B)
这是我的 /etc/network/interface(由于我尝试了很多方法但都没有用,所以恢复到原来的状态):
auto lo
iface lo inet loopback
我已经通过下载并安装 bridge-utils 安装了它,并且可以使用brctl
。所以我知道我需要定义 br0,我已经这样做了,但它从来没有起作用。
您能告诉我需要采取什么步骤才能使其工作吗?
提前感谢阿里
答案1
让你的 Ubuntu/etc/network/interfaces
看起来像这样:
# Interfaces to bring up automatically
auto lo br0
# Loopback
iface lo inet loopback
# Physical interfaces
iface eth0 inet manual
iface eth1 inet manual
# Bridge
iface br0 inet dhcp
bridge_ports eth0 eth1
然后重新启动。
您的 Ubuntu 机器现在通过接口直接连接到互联网br0
,其网络配置通过 DHCP 分配给它(我假设您的 ISP 正在运行 DHCP)。您的 Windows 7 PC 也直接连接到互联网,因为它已插入网桥。您需要确保在两台机器上都配置并运行了适当的防火墙。
答案2
答案3
这完全取决于你想学什么,iptables 是 Linux 中最常用的防火墙软件,但 Ubuntu 使用更简单的 ufw。
使用 iptables,你应该至少执行一个包含以下内容的脚本:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
激活前向位也非常重要:
echo 1 > /proc/sys/net/ipv4/ip_forward
来源:http://www.yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html
我认为使用 ufw(简单防火墙)更简单,尽管我从未使用过它: