feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

架设NAT的方法

Posted on 2011-11-12 18:58  feisky  阅读(373)  评论(0编辑  收藏  举报
转自:http://linux.vbird.org/linux_server/redhat6.1/linux_22nat.php
要求
  • 第一张网路卡eth0为对外的连线介面,具有实体IP;
  • 第二张网路卡eth1为对内的连线介面,为虚拟IP。
基本上,你要做的事情其实真的很简单,只要:
  1. 确定第一张网路卡可以连上网际网路 :关于对外的连线上网际网路方法请参考『 连上Internet 』的说明,这里就不多说了;
  2. 确定第二张网路卡可以正常的启动 :这是一张具有虚拟IP的网路卡,请确定他可以被启动,另外,这里的设定是这样的:
    • IP为192.168.1.2;
    • 子遮罩网路为255.255.255.0;
    • gateway 为192.168.1.2;
    • 惯用的DNS server 为 139.175.10.20;
  3. 开启IPV4 :确定/etc/sysconfig/network这个档案中,有下列这一行 FORWARD_IPV4=yes ,这是开启传送IP服务的一个设定。 如果没有的话,请将这一行加入network这个档案中,然后执行:
    # /etc/rc.d/init.d/network reload
  4. 确定ipchains已经编译进核心 :这个比较麻烦,不过,如果你是用这个网页提供的方法进行安装Linux的话,这个程式已经被编译进核心了,所以不用理他没关系!
  5. 设定192.168.1.0-192.168.1.255这一个网段的IP可进行NAT服务 :接下来就是直接设定了,只要依序执行底下的咚咚:
    /sbin/ipchains -P forward DENY
    /sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
    /sbin/depmod -a
    /sbin/modprobe ip_masq_ftp
    /sbin/modprobe ip_masq_raudio
    /sbin/modprobe ip_masq_irc
    /sbin/modprobe ip_masq_autofw
    /sbin/modprobe ip_masq_cuseeme
    /sbin/modprobe ip_masq_portfw
    /sbin/modprobe ip_masq_quake
    /sbin/modprobe ip_masq_vdolive
    /sbin/modprobe ip_masq_user
    /sbin/modprobe ip_masq_mfw
    这样就可以了! 如果你觉得这样很麻烦的话,这里鸟哥已经有一个写好的批次档,与说明档 ,你可以下载使用,使用的方法就更简单了:
    # mkdir /usr/driver
    # mkdir /usr/driver/nat <==建立一个nat的子目录
    # mv nat.sh /usr/driver/nat <==将档案移动到nat这个目录下
    # cd /usr/driver/nat
    # chmod 744 nat.sh <==修改nat成为可执行的档案
    # ./nat.sh all <==开始执行
    加上一个参数all 是让两个网域可以连上这部NAT 主机!
    不要怀疑, 这样就已经作好NAT主机的基本设定了! 如果你还要设定更精细的防火墙的话,你可以去找一些比较高深的HOWTO 的文件去钻研,我这里就只介绍你可以作为NAT 的基本设定喔!
  6. 将上面的咚咚写入开机自动执行档 :由于每次开机都要进行一次NAT的设定是很烦的一件事,因此我们可以将上面的一大串字全部写在/etc/rc.d/ rc.local 这个开机自动执行档案的最底下,如此一来,每次开机就会自动将NAT 的设定载入你的主机中了!
  7. 设定Windows的网路设定 :好了,主机的部分设定完了,接下来就是各个Windows个人电脑的设定了,以Windows 98为例,
    • 你可以在『开始』->『设定』->『控制台』->『网​​路』开启网路相关设定,或者是在『网路上的芳邻』按右键,选内容,也可以进入网路设定内容;
    • 在网路的内容中,察看你所需要的通讯协定是否存在了,主要是有NetBEUI 、IPX/SPX 、及TCP/IP 这几个设定,如果不存在的话,请按『新增』->『通讯协定』->选『MicroSoft』便可选择相关的通讯协定了;
    • 进入TCP/IP 中,在IP 项目,填入192.168.1.xxx ,然后子遮罩网路填选255.255.255.0,在通讯闸(最重要)的部分填入NAT 主机的虚拟IP(这里是用192.168.1.2),然后再到DNS 填入惯用的DNS 主机(可以是192.168.1.2 或者是139.175.10.20);
    • 重新开机后,就可以连上Internet 啰!  以上相关的设定请参考小弟写的一篇咚咚 
  8. 设定完成 
脚本:

# /bin/bash
# This script will make your machine to be a NAT machine..
# Writted by VBird 2001/02/19

PATH=/sbin:/bin:/usr/bin:/usr/sbin
export PATH

# Check if the network is working ...
. /etc/sysconfig/network
echo -n "NetWork is : "
echo $NETWORKING
[ $NETWORKING = "no" ] && exit 0

case "$1" in
all)
     # 1. All you can do..
     echo "All undefind IP will use your Linux for a NAT proxy..."
     /sbin/ipchains -P forward MASQ
     /sbin/depmod -a
     /sbin/modprobe ip_masq_ftp
     /sbin/modprobe ip_masq_raudio
     /sbin/modprobe ip_masq_irc
     /sbin/modprobe ip_masq_autofw
     /sbin/modprobe ip_masq_cuseeme
     /sbin/modprobe ip_masq_portfw
     /sbin/modprobe ip_masq_quake
     /sbin/modprobe ip_masq_vdolive
     /sbin/modprobe ip_masq_user
     /sbin/modprobe ip_masq_mfw
     echo "OK"
     ;;

one)
     # 2. Only 192.168.0.xxx can use your NAT proxy machine....
     echo "Only 192.168.0.xxx (xxx=1-254) can use your NAT proxy machine ..."
     /sbin/ipchains -P forward DENY
     /sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
     /sbin/depmod -a
     /sbin/modprobe ip_masq_ftp
     /sbin/modprobe ip_masq_raudio
     /sbin/modprobe ip_masq_irc
     /sbin/modprobe ip_masq_autofw
     /sbin/modprobe ip_masq_cuseeme
     /sbin/modprobe ip_masq_portfw
     /sbin/modprobe ip_masq_quake
     /sbin/modprobe ip_masq_vdolive
     /sbin/modprobe ip_masq_user
     /sbin/modprobe ip_masq_mfw
     echo "OK"
     ;;

two)
     # 3. Only 192.168.0.xxx and 192.168.1.xxx (xxx=1-254) can use NAT proxy"
     echo "Only 192.168.0.xxx and 192.168.1.xxx (xxx=1-254) can use NAT proxy"
     /sbin/ipchains -P forward DENY
     /sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
     /sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0
     /sbin/depmod -a
     /sbin/modprobe ip_masq_ftp
     /sbin/modprobe ip_masq_raudio
     /sbin/modprobe ip_masq_irc
     /sbin/modprobe ip_masq_autofw
     /sbin/modprobe ip_masq_cuseeme
     /sbin/modprobe ip_masq_portfw
     /sbin/modprobe ip_masq_quake
     /sbin/modprobe ip_masq_vdolive
     /sbin/modprobe ip_masq_user
     /sbin/modprobe ip_masq_mfw
     echo "OK"
     ;;

*)
     echo "Usage : {all|one|two}"
     exit 1
esac
无觅相关文章插件,快速提升流量