如何使用 iptables 创建双向桥接

如何使用 iptables 创建双向桥接

设置:我有一台三星液晶电视,通过 eth0 连接到运行 Ubuntu 10.10 的 T41 Thinkpad,后者通过无线连接到家庭路由器。

我正在尝试让三星的远程控制应用程序在我的 iPad 上运行,但该应用程序不允许我输入 IP 地址,并且只有当电视与 iPad 位于同一子网时才会发现电视(很差劲)。

所以我需要笔记本电脑将数据包从 eth0 路由到无线接口(wlan0),并且我需要 wlan0 接口上的大约 3 个端口转发到三星电视。

希望所有这些都有意义。我一直在研究 iptables,三星现在可以通过笔记本电脑无线访问互联网,但从 wlan0 映射回三星电视却让我困惑。

答案1

Ubuntu 无线网桥使用方法包含一些信息。特别是,您需要:

  • bridge-utils使用以下方式安装软件包apt-get install bridge-utils
  • 修改/etc/network/interfaces(添加br0接口,将您的无线设备设置为主模式)。
  • 添加 iptables 防火墙规则以启用伪装
  • 在 /etc/sysctl.conf 中打开 ip 转发。

答案2

桥接网络的传统方式不是在 IP 层,而是在以太网层。您可以设置桥接器(控制寄存器)并调查ebtables防火墙。这将桥接所有数据包(因此您可能需要在桥的两端使用相同的 IP 范围)。这就像直接插入电缆一样,它还将处理三星正在进行的任何发现魔法。

如果您只需要转发 3 个 IP 端口,那么您可以使用带有 DNAT 目标的 iptables:

iptables -t nat -A PREROUTING -p tcp (-i eth0) -d xxx.xxx.xxx.xxx --dport zz -j DNAT --to yy.yy.yy.yy:zz

或者更简单(不需要桥接)并且可能就足够了:tcp 代理:

simpleproxy -d -L zz -R yy.yy.yy.yy:zz

相关内容