Linux 机器(作为路由器)不转发流量(接口之间)

Linux 机器(作为路由器)不转发流量(接口之间)

信息:

我有一个路由器、Linux 机箱和连接到交换机的客户端。

路由器是到外部/互联网的连接,其 IP 和子网为:

  • 192.168.8.1

  • 192.168.8.0/24

分别地,我的Linux机器(树莓派)设置了一个静态IP配置(详情见下文),它使用ip连接到路由器192.168.8.254

我的客户(和我)都使用以太网交换机连接到 Linux 机器。Linux 机器的 IP(在以太网交换机上)是192.168.1.254子网,并且与192.168.1.0/24

我已经在 Linux 机器上启用了数据包转发,并添加了 iptables 规则以在两个接口之间转发流量

clients <--> switch < --- > eth0(PI) <==> wlan0(PI) < ---- > router <--> google

我已经发现关于 SF 的问题,但我不确定这是否/如何适用。

问题:

流量未被转发。

在我的 PC 上,我可以 ping 通 Linux 机器 (eth0) 192.168.1.254,但是不行8.8.8.8

在 Linux 机器上,我可以 ping 我的 PC 192.168.1.245、路由器192.168.8.1和 Google8.8.8.8

对这个问题进行一些谷歌搜索并没有显示任何我还没有尝试过的内容。

请参阅以下信息

非常感谢您的帮助,如果需要更多信息,请发表评论

细节:pastebin 详细信息链接

// sudo 路线 -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.8.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.8.1     0.0.0.0         UG    303    0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 eth0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.8.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

// sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

///etc/网络/接口

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet static
        address 192.168.8.254
        netmask 255.255.0.0
        gateway 192.168.8.1
        network 192.168.8.0
        broadcast 192.168.8.255
        metric 0
    post-up route add default gw 192.168.8.1 metric 0
    pre-down route del default gw 192.168.8.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug eth0
iface eth0 inet static
        address 192.168.1.254
        gateway 192.168.8.254
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        metric 1
    post-up route add default gw 192.168.8.254 metric 1
    pre-down route del default gw 192.168.8.254

答案1

请注意:

在创建这个问题时,我已经找到了解决方案,

但我觉得其他人也可能从中受益:

我已经阅读了一些有关该主题的资料,但我认为这可能与前/后路由有关,但我无法确定具体是什么。

解决方案:

阅读这里我遇到了一些有趣的话题,但我自己尝试了一下却没有什么运气,

经过进一步搜索,我发现有用的 git 页面解释了类似的情况。

因此,我尝试:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

我的所有问题都解决了。

希望这对某人有帮助

相关内容