如何为本地路由器机器设置iptables?

puk*_*puk 0 routing iptables ubuntu-14.04

我已经将本地 linux (14.0.4 Ubuntu) 机器设置为路由器,可以执行以下操作:

  • 从客户端 ping 服务器/路由器
  • 从服务器/路由器ping客户端
  • 从另一个客户端 ping 一个客户端
  • ping 服务器/路由器后面的调制解调器/路由器

但我无法 ping google 或 8.8.8.8。我收到以下错误:

ping: unknown host www.google.com
connect: network is unreachable
Run Code Online (Sandbox Code Playgroud)

但是我可以在服务器/路由器上发出这两个命令,没有问题,这让我相信这是一个iptables相关的问题。有人可以看看下面的代码,我用它来初始化 iptables,并告诉我是否有任何明显的错误。

#!/bin/bash

ethInternal=eth1
ethExternal=eth0

sudo iptables --flush 
sudo iptables --table nat --flush
sudo iptables --delete-chain 
sudo iptables --table nat --delete-chain 

sudo iptables -t nat -A POSTROUTING -o $ethExternal -j MASQUERADE
sudo iptables -A FORWARD -i $ethExternal -o $ethInternal -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ethInternal -o $ethExternal -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

编辑 1

client: netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.66.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
Run Code Online (Sandbox Code Playgroud)

编辑 2

client: route add -net default gw 192.168.66.254
client: netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.66.254  0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.66.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
Run Code Online (Sandbox Code Playgroud)

编辑 3

SV-01: vi /var/log/kern.log
Run Code Online (Sandbox Code Playgroud)

可以在此处找到日志文件的相关部分。

Mad*_*ter 5

客户端没有通过您的路由器盒的默认路由。尝试

route add -net default gw a.b.c.d
Run Code Online (Sandbox Code Playgroud)

在客户端上,a.b.c.d防火墙面向客户端的地址在哪里。