我想配置我的 Linux,以便将其用作网络路由器(网关)。有人可以给我一些提示吗? (欢迎提供链接!)
答案1
对于一个简单的路由器来说,实际上只需要完成两个步骤。
启用路由
第一步是在内核中启用路由。默认情况下,内核会丢弃它无法识别的数据包;一旦启用路由,它就会转发它们。您需要在计算机启动时发出以下两个命令之一:
sysctl -w net.ipv4.ip_forward=1
echo 1 >/proc/sys/net/ipv4/ip_forward
许多发行版都有一个名为 的文件,您可以在其中放置计算机启动时执行该命令的/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 等的地方。
对于复杂的设置,请查看ip
命令ip路由2包裹。
答案2
首先插入您想要充当路由器的网络的 IP。获取多个网络接口卡或配置虚拟接口。
您需要启用数据包转发/etc/sysctl.conf
,然后配置 NAT 的 iptables。这里有一个简短教程对于相同的。