目前许多 Linux Distribution 都已经把 IP Masquerade 支持编入到kernel 内了,所以重编 kernel 的部份可以略过,剩下的就是专心于把 IP Forwarding 打开,并使用 ipchains 程序来设定即可。
另外就是,连上 internet 的 linux 主机 ip 假设是 210.222.111.100
而 Client 端要上网的 IP 就是使用 192.168.1.x (x: 1 ~ 254) 。
那 Linux 主机要加装第二个网络卡,IP 设定为 192.168.1.1,Client
端的主机 IP 就使用 192.168.1.x (x: 2 ~ 254),netmask 为 255.255.255.0
而 gateway 就指向 Linux 主机的 192.168.1.1 IP 位置。希望使用单一网络卡的话,请设定使用 eth0:0 这个 IP Alias 的方式把 IP 设定为192.168.1.1 即可。这个部份使用 RedHat LINUX 的话,可以使用 netconf程序,在IPaliases for virtual hosts 里面来设定。手动的话,就是使用ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 即可。
OK.. 只要 Linux 主机把 IP Forwarding 打开,并使用 ipchains 程序设定好后,Client 端就可以透过 Linux 这台 gateway 主机的协助而上网了。
ipchains -P forward DENY
ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
IP Forwarding ,redhat 可以使用 netconf 程序,在 Routing and gateways
---> Set Defaults ,把 Enable routing 选起来即可。或者是改
/etc/sysconfig/network 档案,把 FORWARD_IPV4= 设定为 "yes" 即可。
而这个步骤,其实就是把 /proc/sys/net/ipv4/ip_forward 档案内容改成 1
(出处:http://www.sheup.com)