zoukankan      html  css  js  c++  java
  • CentOS6 NAT+DHCP服务共享客户机上网

    CentOS6 NAT+DHCP服务共享客户机上网
    操作系统:CentOS6.2

    dhcp版本:dhcp-common-4.1.1-25.P1.el6_2.1.i686
               dhcpdump-1.7-1.el6.rf.i686
               dhcp-4.1.1-25.P1.el6_2.1.i686
               dhcping-1.2-4.el6.i686
               dhcp-devel-4.1.1-25.P1.el6_2.1.i686


    Linux实现nat共享上网

    我的实体机为CentOS-6.2,学校迁的是校园网,IP我是这样设的:
    $ vi /etc/sysconfig/network-scrips/ifcfg-eth0
    输入以下内容:

    DEVICE="eth0"
    HWADDR="00:24:54:5E:5D:39"
    NM_CONTROLLED="yes"

    BOOTPROTO=static
    IPADDR=58.195.172.229
    NETMASK=255.255.255.192
    GATEWAY=58.195.172.254
    DNS1=58.195.1.1
    DNS2=202.103.24.68

    设好后,重启网络服务:service network restart 或 /etc/init.d/network restart
    如果启不来,试试ifup eth0 或者ifconfig eth0 up

    若还不行,没办法,重启下看看,呵呵。

    查看一下IP设置:ifconfig

    eth0      Link encap:Ethernet  HWaddr 00:24:54:5E:5D:39  
               inet addr:58.195.172.229  Bcast:58.195.172.255  Mask:255.255.255.192
               inet6 addr: fe80::224:54ff:fe5e:5d39/64 Scopeink
               UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
               RX packets:108823 errors:0 dropped:0 overruns:0 frame:0
               TX packets:97379 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:62428078 (59.5 MiB)  TX bytes:61038111 (58.2 MiB)
               Interrupt:18

    好的,以经设置好了,接下来查看IP转发功能是否开启:
         cat /proc/sys/net/ipv4/ip_forward
    结果为0,则表示未开。
    echo "1" > /proc/sys/net/ipv4/ip_forward
    临时开启IP转发功能。

    永久开启则需编辑/etc/sysctl.conf文件,将其中的net/ipv4/ip_forward=0换成net/ipv4/ip_forward=1(有的是需将net/ipv4/ip_forward=1前的#删除即可)。



    最后设定iptables,允许nat进行IP映射,使数据能重定向到指定主机。
    #先清除已有规则
    iptables -F
    iptables -X
    iptables -Z
    #设定预设规则

    iptables -P INPUT    ACCEPT
    iptables -P OUTPUT   ACCEPT
    iptables -P FORWARD  ACCEPT
    iptables -t nat   -P PREROUTING   ACCEPT
    iptables -t nat   -P POSTROUTING  ACCEPT
    iptables -t nat   -P OUTPUT       ACCEPT
    #nat转发
    iptables -t nat   -A POSTROUTING -s 58.195.172.0/24 -j MASQUERADE
    iptables -A INPUT -i eth0 -p tcp  --sport 80  -j  ACCEPT


    以上iptables规则只是作了很简陋的设置,更为科学合理的设置还请各位前辈朋友们多指点,哈

    小提示:若要长期使用的话,可以将上述iptables规则写到shell脚本里面,每次开机运行一下就OK,或者直接通过~/.bashrc或~/.bash_profile或/etc/rc.local添加一句运行该脚本的语句即可,还或者将脚本放在/etc/rc*.d/中,这里的*指启动时所对应的启动级别,这样就可以顺利实现开机自动运行喽!

    好的,现在客户机只要作一下简单的设置。
    客户机只需把网关改为主机的IP(我这里设的是58.195.172.229,也就是linux主机的IP)即可,DNS等保持不变。
    处在58.195.172.0/24网段的的IP就可以上网了


    二 配置DHCP服务器
    如上面所说,如果纯粹只想实现nat共享上网的话上面的步骤就可以实现了,当然,要是还想让“客户”朋友们在“舒服”点的话就再配个DHCP喽!呵呵

    首先,当然还是安装啦!
    对于rpm系列的linux如果用的是yum包管理器的话,可以在配好yum源后直接

    yum   install   dhcp*

    呵呵,简单吧!
    麻烦点的话,在rpmfind等或者google找一下相关的软件包即可

    最后是配置喽!
    vi   /etc/dhcp/dhcpd.conf
    下面是我的配置文件
    #
    # DHCP Server Configuration file.
     see /usr/share/doc/dhcp*/dhcpd.conf.sample
     see 'man 5 dhcpd.conf'
    #
    ddns-update-style interim;#DHCP-DNS互动更新模式
    ignore client-updates;#允许客户机更新DNS记录
    allow booting;#响应使用者查询
    allow bootp;#响应激活查询
    allow unknown-clients;#是否动态分配IP给未知的使用者

    #定义作用域
    subnet 58.195.172.0 netmask 255.255.255.0 {

    option routers                         58.192.172.229;         #指定默认网关
    option subnet-mask                 255.255.255.0;            #指定子网掩码

    #option domain-name                 "jlive.org";                #DNS名字
    option domain-name-servers         58.195.1.1,202.103.24.68;     #指定DNS的IP地址

    option time-offset                 -18000;                           #指定和格林尼治时间的偏移差,单位是秒

    range dynamic-bootp 58.195.172.100 58.195.172.254;             #提供动态分配IP的范围
    default-lease-time                 21600;                           #默认租赁时间的长度,单位是秒
    max-lease-time                         43200;                      #最大租赁时间的长度,单位是秒
    #为固定机器绑定固定IP,指定多个主机--IP绑定时用group{}将主机扩起来
    group{

    host lei {
    hardware ethernet 98:4b:e1:a2:f7:fd;               #客户机网卡的MAC地址
    fixed-address           58.195.172.230;          #给定固定IP给该客户机
          option host-name  ct6.example.com;
                }

    host ang {
             hardware ethernet 00:21:70:93:87:c1;
             fixed-address           58.195.172.231;
          option host-name  ubuntu.example.com;
                 }

    host yue {
             hardware ethernet 00:30:67:57:4b:a1;
             fixed-address           58.195.172.232;
          option host-name  ubuntu.example.com;
           }

    #与group{ 相对应
    }
    #与subnet{ 相对应,哈,有始有终么!
    }

    好的,到此就全部配置安装完成,重启一下服务看看。

    service   dhcpd   restart

    如果没有报错则说明成功,如有问题很可能是配置上出了点岔子,可以通过
    查看日志,用以下命令

    tail   -f   /var/log/messages

    实时监视出错及运行情况也方便找出错误点。

    开机运行dhcp通过以下命令来实现:

    chkconfig   --level   35   dhcpd   on       #在启动级别3和5开启dhcp

    有兴趣的同学们可以尝试尝试,有错误的地方还望不吝指教噢!呵呵,


    下面是dhcpd.conf配置的参数对照表
    ######################################################
    ######################################################
    参数
    ddns-update-style                             配置DHCP-DNS互动更新模式(必选)
    allow/ignore client-updates                   允许或忽略客户机更新DNS记录
    default-lease-time                            默认租赁时间的长度,单位是秒
    max-lease-time                               最大租赁时间的长度,单位是秒
    hardware                                     网卡接口类型和MAC地址
    server-name                                 通知DHCP客户机服务器名称
    get-lease-hostnames flag                    检查客户端使用的IP地址
    fixed-address ip                             分配给客户端一个固定的地址
    authritative                                  拒绝不正确的IP地址的要求


    声明
    shared-network{}                             定义超级作用域,告知哪些子网分享相同网络
    subnet{}                                     定义作用域,描述一个IP地址是否属于该子网
    range                                        提供动态分配IP的范围
    host 主机名{}                                特别主机
    group{}                                      一组主机
    allow/deny unknown-clients                 是否动态分配IP给未知的使用者
    allow/deny bootp                            是否响应激活查询
    allow/deny booting                          是否响应使用者查询
    filename                                    开始启动文件的名称,应用于无盘工作站
    next-server                                  设置服务器从引导文件装入主机名,应用于无盘工作站


    选项
    subnet-mask                                为客户端指定子网掩码
    domain-name                               为客户端指定DNS名字
    domain-name-server                         为客户端指定DNS的IP地址
    host-name                                  为客户端指定主机名
    routers                                      为客户端指定默认网关
    broadcast-address                          为客户端指定广播地址
    netbios-name-servers                       为客户端指定WINS服务器的IP地址
    netbios-node-type                           为客户端指定节点类型
    ntp-server                                   为客户端指定网络时间服务器IP地址
    nis-server                                    为客户端指定NIS域服务器IP地址
    nis-domain                                   为客户端指定NIS域服务器的名称
    time-offset                                    为客户端指定和格林尼治时间的偏移差,单位是秒
    ################################################################
    ################################################################
  • 相关阅读:
    JavaScript DOM 选择器 querySelector
    JavaScript call()函数的应用
    flex布局中 align-items 和 align-content的区别
    移动端WEB
    触发器与存储过程
    游标
    触发器---存储过程---存储函数
    mysql中check无效
    mysql唯一性约束和索引
    分页查询
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814662.html
Copyright © 2011-2022 走看看