art*_*rxe 7 linux networking routing ip router
我想配置我的 Linux,以便将它用作网络路由器(网关)。有人可以给我一些提示吗?(欢迎提供链接!)
对于一个简单的路由器,实际上只需要完成两个步骤。
第一步是在内核中启用路由。默认情况下,内核会丢弃它无法识别的数据包;一旦启用路由,它就会转发它们。您需要在计算机启动时发出以下两个命令之一:
sysctl -w net.ipv4.ip_forward=1
echo 1 >/proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
许多发行版都有一个名为 的文件/etc/sysctl.conf,您可以在其中放置一行net.ipv4.ip_forward=1以在计算机启动时执行该命令。如果有目录/etc/sysctl.d,则可以在该目录中添加文件而不是编辑/etc/sysctl.conf;调用文件something.conf。
对于 IPv6,对应的设置为net.ipv6.conf.all.forwarding或/proc/sys/net/ipv6/conf/all/forwarding。您还可以使用net.ipv4.conf.all.forwarding或/proc/sys/net/ipv4/conf/all/forwarding用于 IPv4。
第二步是设置路由表。这可以简单也可以复杂,具体取决于您需要做多少。对于简单的使用,配置每个网络接口的地址和网络掩码,并使用route命令添加任何需要的额外路由。
如果需要重写数据包,基本命令是iptables(ip6tables对于IPv6)。(“Netfilter”是内核数据包处理工具的名称,“iptables”是控制它的程序的名称。)这是寻找过滤、NAT 等的地方。
对于复杂的设置,请查看iproute2包中的ip命令。