Ubuntu 14.04 服务器作为 WIFI-LAN 路由器运行,在 LAN 和 WIFI 之间丢失数据包

Ubuntu 14.04 服务器作为 WIFI-LAN 路由器运行,在 LAN 和 WIFI 之间丢失数据包

我希望能够在 WIFI 和 LAN 之间交换数据包。

我的 Ubuntu 14.04 服务器作为局域网 wifi 路由器运行,有两个物理以太网端口(p4p1p5p1)以及WIFI模块(wlan0)。p4p1 接口是我与互联网的连接,它通过 DHCP 从我的提供商处获取其地址。

wlan0和p5p1连接到网桥br0使用静态地址192.168.3.1。两个单独的接口都没有地址。dnsmaq 为 br0 处的每个设备分配一个 IP 地址。我使用了指导我设置路由器。

我可以通过 LAN 和 WIFI 访问互联网。也可以从服务器控制台 ping 每个设备。但我无法从网络的一部分连接到另一部分。因此,我的 WIFI 打印机只能由服务器操作,而不能由客户端操作。

我可以确认数据包已发送并到达网桥 br0,但它们无法到达网桥后的接口。这已使用 wireshark 进行了测试。

配置:

/etc/networking/interfaces

auto lo
iface lo inet loopback

auto p4p1
iface p4p1 inet dhcp

auto br0
iface br0 inet static
    address 192.168.3.1
    netmask 255.255.255.0
    broadcast 192.168.3.255
    bridge_ports p5p1 wlan0             

路线-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         XXX.XXX.XXX.1   0.0.0.0         UG    0      0        0 p4p1
XXX.XXX.XXX.0   0.0.0.0         255.255.255.0   U     0      0        0 p4p1
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 br0

有什么明显的故障吗?也许是在路由表中?

编辑1: 我已经在 /etc/sysctl.conf 中取消注释了此行。

net.ipv4.ip_forward=1

因此,解决方案来自达伦特不工作。

编辑2: 有人知道为什么路由表的第三行网关是 0.0.0.0 吗?这可能是问题的根源吗?难道不应该是 192.168.3.1 吗?

编辑3:我简化了我的 /etc/networking/interfaces 文件。

编辑4:由于我仍在尝试解决这个问题,因此这是我的

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere             LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

答案1

我找到了问题的根源。我的 iptables FORWARD 链有策略“降低” 采纳。

我需要重新设计我的 iptables 规则。但我基本上做了

iptables --policy FORWARD ACCEPT

而且效果非常好。

答案2

服务器是否配置为转发收到的包?尝试以下操作:

sudo sysctl net/ipv4/ip_forward=1

相关内容