本文遵從自由軟件基金會發布的GNU自由文檔許可證(GNU Free Document License), 任何組織和個人都有在此條款下的複製,轉載,修改的權限。
原文網址:http://mail.ustc.edu.cn/~lixuebai/GNU/GatewayServer.html
首先要求電腦有兩塊網卡,一個連接到外網,一個連接到switch,而switch與內網其他電腦相連。
安裝linux操作系統,這裏選擇了debian stable版本(目前是sarge版)只需要安裝基本部分,不需要安裝x(比如xorg)和wm(比如fvwm)以及desktop environment(比如gnome,kde)
選擇eth0作爲主網卡(若eth0不能連接,則對調兩個網線,或着把eth1作爲對外網卡)
修改ip,不用
iface eth0 inet dhcp
並增加eth1的設置
vi /etc/network/interfaces
比如我這裏是
auto eth0 iface eth0 inet static address 202.38.68.148 netmask 255.255.255.128 network 202.38.68.0 broadcast 202.38.68.255 gateway 202.38.68.254 dns-nameservers 202.38.64.1 auto eth1 iface eth1 inet static address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255
aptitude安裝resolvconf使得dns-nameservers有效。
aptitude安裝emacs,vim做編輯器,安裝lftp做ftp客戶工具,安裝ssh來遠程管理。
重啓網絡
/etc/init.d/network restart
配置iptables,在shell下執行
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
現在內網(設置好192.168.2.*等)就能夠上網了(ipv4)。當然這樣做比較麻煩,請看下面的dhcp自動分配ip服務的設置。
配置dhcp服務
如果子網內電腦很多,一個一個手動分配ip就給管理員帶來很大的麻煩的,dhcp服務可以給內網的電腦自動分配ip,可以大大減輕管理員的工作。
aptitude安裝dhcp這裏的dhcp是版本2,當然也可以選擇版本3,版本3叫做dhcp3-server不過dhcp3軟件包使用/etc/dhcp3/dhcpd.conf作爲其配置文件,而不像dhcp2使用/etc/dhcpd.conf
寫配置文件/etc/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 { option routers 192.168.2.1; option subnet-mask 255.255.255.0; option domain-name "domain.org"; option domain-name-servers 202.38.64.1; option broadcast-address 192.168.2.255; option time-offset -18000; range 192.168.2.11 192.168.2.250; default-lease-time 216000; max-lease-time 432000; }
設置提供dhcp的網卡修改/etc/default/dhcp
INTERFACES="eth1"
重新啓動dhcp服務
/etc/init.d/dhcp restart
下面配置ipv6
去網絡中心板申請外網ip的ipv6,以及分配在此之下的一段給內網。
(根據jameszhang提供的方法)
aptitude安裝iproute
如果是2.4的內核需要加載ipv6模塊,若是2.6內核就不需要。
modprobe ipv6
把申請的ipv6設置上,並設置缺省路由。
ip addr add 2001:da8:d800:68:202:38:68:148/64 dev eth0 ip addr add 2001:da8:d800:6800::1/64 dev eth1 ip route add 2000::/3 via 2001:da8:d800:68::1 dev eth0
查看
/sbin/ifconfig
能夠看到ipv6了。
把原來的ipv6可以刪掉了
ip addr del ?????????? dev eth0
在網關上測試
ping6 bbs6.ustc.edu.cn
可以了。
給內網自動分配ipv6,需要安裝radvd
aptitude安裝radvd
cp /usr/share/doc/radvd/examples/simple-radvd.conf /etc/radvd.conf
編輯
emacs -nw /etc/radvd.conf
修改爲如下內容
interface eth1 { AdvSendAdvert on; MinRtrAdvInterval 30; MaxRtrAdvInterval 100; prefix 2001:da8:d800:6800::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
重啓radvd
/etc/init.d/radvd restart
現在在內網測試
ping6 bbs6.ustc.edu.cn
現在測試看ipv6的在線影視
mplayer mms://tv6.ustc.edu.cn/tv7這樣就作好了。
使內網能夠上科大video服務器的ftp
modprobe ip_conntrack_ftp modprobe ip_nat_ftp
以上命令開機自動啓動
在/etc/init.d/建立一個腳本比如叫做startnetgate.sh
#!/bin/sh # lixuebai PATH=/sbin:/bin:/usr/sbin:/usr/bin echo 1 > /proc/sys/net/ipv4/ip_forward #iptables -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE modprobe ip_conntrack_ftp modprobe ip_nat_ftp ip addr add 2001:da8:d800:68:202:38:68:148/64 dev eth0 ip addr add 2001:da8:d800:6800::1/64 dev eth1 ip route add 2000::0/3 via 2001:da8:d800:68::1 dev eth0 /etc/init.d/radvd restart echo "OK"
若是2.4內核,則需要在腳本中的ip命令之前加入
modprobe ipv6
修改這個腳本的權限
chmod -v 755 startnetgate.sh
設定爲啓動服務
/usr/sbin/update-rc.d startnetgate.sh defaults
這樣就會開機自動啓動了。
這裏順便多說一下/usr/sbin/update-rc.d的用法其實只要
emacs -nw /usr/sbin/update-rc.d
就能看到用法了。
update-rc.d會自動在/etc/init.d/找文件,所以如前所示,startnetgate.sh不需要寫路徑.
一些常用的方法:
設定爲啓動服務 #/usr/sbin/update-rc.d startnetgate.sh defaults 將其刪除 #/usr/sbin/update-rc.d -f startnetgate.sh remove 根據運行級別設定,如 #/usr/sbin/update-rc.d startnetgate.sh start 20 1 2 3 . stop 20 4 5 .