Linux
如何從我的 Linux 作業系統建構網關
我想配置我的 Linux 以便將其用作網路路由器(網關)。有人可以給我一些提示嗎?(歡迎連結!)
對於一個簡單的路由器,實際上只需要完成兩個步驟。
啟用路由
第一步是在核心中啟用路由。預設情況下,核心會丟棄它無法辨識的數據包;啟用路由後,它將轉發它們。您需要在電腦啟動時發出以下兩個命令之一:
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等的地方。對於復雜的設置,請查看iproute2包中的
ip
命令。