FlossDoc: 請協力 GPLv3 的中文翻譯工作。

分享 Internet 連線

FlossDoc,自由中文開源知識庫

標準文章
作者: Jadedragon
協力: Roy Chan,Hedgehog
校對: AnthonyWong
級別: 初階
分享本文:

雖然現在 broadband router 十分普遍,而且十分便宜。其實使用 GNU/Linux 來當 broadband router 也很簡單。如果有舊電腦 (486 亦可) ,也可以用來作 Broadband router。

目录

硬體需求

首先,您需要一台GNU/Linux 作為閘道器 (Gateway) 。因為這個閘道器會分享 Internet 連接,所以常被稱為 IP masquerade Box、IP Sharer 或 Broadband Router 。這台機器不需要太強,一台 486 已足夠應付。最重要是需要有兩片良好的網絡卡,一片連接上 Internet ,另外一片連到您的內聯網 (Intranet) 中。

為方便說明,我們假設連上 Internet 的網絡介面為 eth0 ,而連到您內聯網的網絡介面為 eth1。您的內聯網的子網絡 (subnet) 為 192.168.0.0 至 192.168.0.255,而作為閘道器在內聯網的 IP 地址為 192.168.0.1 。

設定閘道器 (Setup Gateway)

啟動 ip_forwarding 功能

因為安全問題,Linux 核心預設不允許轉遞外來的網絡封包,避免惡意攻擊者利用您的 GNU/Linux 作炮台轉遞攻擊封包到其他電腦,但這亦令您的 GNU/Linux 不能作為 router。您需要打以下指令開啟 IP Forwarding:

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

或如果不想每次重啟後都再做一次,可以:

/etc/sysctl.conf 內加入:

net.ipv4.ip_forward = 1

用 iptables 設定 netfilter

假定您的私人網絡的子網絡(subnet) 為 192.168.0.0 至 192.168.0.255 ,您可以打以下指令:

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

在您可以試試在其他電腦是否可以透過這台 GNU/Linux 上網。

不想每次重新啟動 GNU/Linux 時都要打以上的 iptables 指令,RedHat、Fedora 或 CentOS 管理員可以打:

iptables-save >/etc/sysconfig/iptables

以上指令會把現時的 Netfilter 設定存入檔案 /etc/sysconfig/iptables,讓 RedHat、Fedora 或 CentOS 等下次啟動是會自動載入相關設定。

設定工作站

把內聯網其他電腦設定為:

  • IP地址 (IP Address) : 192.168.0.2192.168.0.254 任何一個 IP 地址。
  • 網絡罩遮 (Network Mask, Netmask) : 255.255.255.0
  • 閘道器 (Network Gateway/Router) : 192.168.0.1

較簡單的方法是架設一台 DHCP 伺服器統一管理以上設定,那一般電腦開機時會自動向 DHCP 伺服器取得網絡設定。例以下以是假設對外的介面被分配為子網絡 172.168.12.0/255.255.255.0 (可以使用命令 /sbin/ifconfig eth0 取得) 時 ISC DHCP 伺服器的典型設定:

default-lease-time 600;
max-lease-time 7200;
option domain-name "example.com";

subnet 172.16.12.0 netmask 255.255.255.0 { }

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.10 192.168.0.200;
    option domain-name-servers 8.8.8.8;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
}

請參看

外部連結

Personal tools
廣告橫額