这只是一个简单的问题(我希望)想知道我所尝试的是否可行。我正尝试与 Fedora12 共享互联网连接作为默认网关,并使用 iptables 命令通过 NIC 连接的 XP 机器,如 Mark Sobell 的书《Fedora 和 Red Hat Enterprise Linux 实用指南》中所示,这些命令位于 /etc/rc.local 中
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -j LOG
iptables -t NAT -A POSTROUTING -o eth1 -j MASQUERADE
我确实翻转了输入和输出参数以匹配我的 NIC 配置(与书中的示例相反),但除此之外,遵循示例。需要注意的一点是,Sobell 没有提到这是否应该适用于 Linux 和 XP 的混合。另一个注意事项(可能毫无意义)是,我确实在两台机器之间运行 samba。感谢任何人可能有的见解。PL
答案1
它会起作用的。
首先,确保你的 ip_forwarding 已启用。默认情况下,大多数 Linux 系统上它是禁用的。运行以下命令: 使用 sysctl
sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0
或使用价值/进程
cat /proc/sys/net/ipv4/ip_forward
0
永久启用 ip_forward
添加net.ipv4.ip_forward = 1线路输入/etc/sysctl.conf
cat "net.ipv4.ip_forward > /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
service network restart
您必须确保识别您的传出和传入网络接口。
答案2
除了@PSS 的答案之外,您还需要执行以下操作,因为您使用的是基于 Fedora 的系统
- 一切正常后,您需要使用该命令
service iptables save
使 iptables 设置持久化 - 修改文件
/etc/sysctl.conf
并在其中进行设置net.ipv4.ip_forward = 1
,同样是出于同样的原因。
如果您使用的是默认内核(或更新提供的内核),请确保已加载相关内核模块modprobe iptable_nat
-启动 iptables“服务”的ipt_MASQUERADE
脚本/etc/init.d/iptables
也应该加载模块,因此您也可以尝试service iptables start
。