在路由器 PC 上配置 NAT

在路由器 PC 上配置 NAT

我在 NAT 配置方面遇到了问题。我使用 Ubuntu 12.04 将笔记本电脑用作路由器。在终端中,我输入:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

但是当使用 LAN 电缆将路由器(我的笔记本电脑)连接到客户端时,客户端仍然无法连接到互联网。但是客户端可以 ping 通路由器。

我该如何解决这个问题?

答案1

您的 NAT 防火墙规则没有问题,但是默认情况下 ubuntu 不转发数据包,因此您需要使用以下命令启用它:

echo 1 > /proc/sys/net/ipv4/ip_forward

为了使其自动化,您可以使用如下脚本(保存在/etc/init.d/your-script):

#!/bin/sh
# turn ip_forward on/off

case "$1" in
'start')
        echo 1 > /proc/sys/net/ipv4/ip_forward
        ;;
'stop')
        echo 0 > /proc/sys/net/ipv4/ip_forward
        ;;
*)
        echo "Usage: $0 { start | stop }"
        ;;
esac
exit 0

并使其可执行并在启动时运行:

sudo chmod +x /etc/init.d/your-script
sudo update-rc.d your-script defaults

启用:sudo /etc/init.d/your-script startsudo /etc/init.d/your-script stop禁用。

更新:正如保罗所评论的,如果您愿意,为了使其永久生效(或者如果您愿意编辑 conf 文件来打开/关闭此功能),您可以修改/etc/sysctl.conf并取消注释该行以net.ipv4.ip_forward=1启用并注释掉以禁用。

相关内容