晨风资讯网
新闻资讯网络冲浪网页设计网络编程图形图像数据库网络媒体服务器网络安全网站运营软件教程黑客认证Wap技术
教程搜索
教程搜索:
  首页 > 网络冲浪 > 网络问题 > 正文  

如何共享一个IP上网
日期:2006-4-20 13:59:13 来源: 作者: 浏览:

 1,  背景与要求  

朋友的办公室用Cable  Modem上网,合同上规定只能用一个IP,可是一共有十多台电脑,  
结果朋友到ISP那里说明情况补交了一大笔费用.要求都能上网,用一个IP.  

2,  硬件&软件  
硬件:P90  32  RAM  ,  两块NIC卡,  一块3Com,  一块D-Link.好处:比较好分辨eth0,  eth1.  
一块HUB.  
软件:RedHat  6.2  +  Gnome  Helix(可以运行FireStarter),最好升级kernel.  

3,  安装防火墙  

设置IP  伪装  +  IPChains  :  


建立  /etc/rc.d/rc.firewall(或者任何文件名任何地方,如果手工运行的话)  如下:  

        #!/bin/sh  
        #  
        #  rc.firewall  -  Initial  SIMPLE  IP  Masquerade  test  for  2.1.x  and  2.2.x  kernels  
        #                using  IPCHAINS  
        #  
        #  Needed  to  initially  load  modules  
        #  
        /sbin/depmod  -a  

        #  Supports  the  proper  masquerading  of  FTP  file  transfers  using  the  PORT  method  
        #  
        /sbin/modprobe  ip_masq_ftp  

        #  Supports  the  masquerading  of  RealAudio  over  UDP.  Without  this  module,  
        #        RealAudio  WILL  function  but  in  TCP  mode.  This  can  cause  a  reduction  
        #        in  sound  quality  
        #  
        #/sbin/modprobe  ip_masq_raudio  -->  收Real  Audio   

        #  Supports  the  masquerading  of  IRC  DCC  file  transfers  
        #  
        #/sbin/modprobe  ip_masq_irc  -->去掉"#"如果你要玩IRC,我朋友不让,:-)  


        #  连网打雷神  
        #  Supports  the  masquerading  of  Quake  and  QuakeWorld  by  default.  This  modules  is  
        #    for  for  multiple  users  behind  the  Linux  MASQ  server.  If  you  are  going  to  
        #    play  Quake  I,  II,  and  III,  use  the  second  example.  
        #  
        #    NOTE:  If  you  get  ERRORs  loading  the  QUAKE  module,  you  are  running  an  old  
        #    -----  kernel  that  has  bugs  in  it.  Please  upgrade  to  the  newest  kernel.  
        #  
        #Quake  I  /  QuakeWorld  (ports  26000  and  27000)  
        #/sbin/modprobe  ip_masq_quake  
        #  
        #Quake  I/II/III  /  QuakeWorld  (ports  26000,  27000,  27910,  27960)  
        #/sbin/modprobe  ip_masq_quake  26000,27000,27910,27960  


        #  Supports  the  masquerading  of  the  CuSeeme  video  conferencing  software  
        #  
        #/sbin/modprobe  ip_masq_cuseeme  -->Cu-SeeMe  视频电话  

        #Supports  the  masquerading  of  the  VDO-live  video  conferencing  software  
        #  
        #/sbin/modprobe  ip_masq_vdolive -->VDO-live  视频电话  


        #CRITICAL:  Enable  IP  forwarding  since  it  is  disabled  by  default  since  
        #  

        #            Redhat  Users:  you  may  try  changing  the  options  in  
        #                          /etc/sysconfig/network  from:  
        #  
        #                        FORWARD_IPV4=false  
        #                              to  
        #                        FORWARD_IPV4=true  
        #  
        echo  "1"  >  /proc/sys/net/ipv4/ip_forward  


        #CRITICAL:  Enable  automatic  IP  defragmenting  since  it  is  disabled  by  default  
        #            in  2.2.x  kernels.  This  used  to  be  a  compile-time  option  but  the  
        #            behavior  was  changed  in  2.2.12  
        #  
        echo  "1"  >  /proc/sys/net/ipv4/ip_always_defrag  


        #  Dynamic  IP  users:  -->该ISP用DHCP方法给用户分配IP,启动该项  
        #  
        #    If  you  get  your  IP  address  dynamically  from  SLIP,  PPP,  or  DHCP,  enable  this  
        #    following  option.  This  enables  dynamic-ip  address  hacking  in  IP  MASQ,  
        #    making  the  life  with  Diald  and  similar  programs  much  easier.  
        #  
        echo  "1"  >  /proc/sys/net/ipv4/ip_dynaddr  


        #  Enable  the  LooseUDP  patch  which  some  Internet-based  games  require  
        #  
        #  If  you  are  trying  to  get  an  Internet  game  to  work  through  your  IP  MASQ  box,  
        #  and  you  have  set  it  up  to  the  best  of  your  ability  without  it  working,  try  
        #  enabling  this  option  (delete  the  "#"  character).  This  option  is  disabled  
        #  by  default  due  to  possible  internal  machine  UDP  port  scanning  
        #  vunerabilities.  
        #  
        #echo  "1"  >  /proc/sys/net/ipv4/ip_masq_udp_dloose  


        #  MASQ  timeouts  
        #  
        #    2  hrs  timeout  for  TCP  session  timeouts  
        #  10  sec  timeout  for  traffic  after  the  TCP/IP  "FIN"  packet  is  received  
        #  160  sec  timeout  for  UDP  traffic  (Important  for  MASQ“ed  ICQ  users)  
        #  
        /sbin/ipchains  -M  -S  7200  10  160  


        #  DHCP:  For  people  who  receive  their  external  IP  address  from  either  DHCP  or  
        #        BOOTP  such  as  ADSL  or  Cablemodem  users,  it  is  necessary  to  use  the  
        #        following  before  the  deny  command.  The  "bootp_client_net_if_name"  
        #        should  be  replaced  the  name  of  the  link  that  the  DHCP/BOOTP  server  
        #        will  put  an  address  on  to?  This  will  be  something  like  "eth0",  
        #        "eth1",  etc.  
        #  
        #        This  example  is  currently  commented  out.  
        #  
        #        该ISP用DHCP方法给用户分配IP,启动该项.  
        /sbin/ipchains  -A  input  -j  ACCEPT  -i  eth0  -s  0/0  67  -d  0/0  68  -p  udp  

        #  Enable  simple  IP  forwarding  and  Masquerading  
        #  
        #  NOTE:  The  following  is  an  example  for  an  internal  LAN  address  in  the  
        #          192.168.0.x  network  with  a  255.255.255.0  or  a  "24"  bit  subnet  mask  
        #          connecting  to  the  Internet  on  interface  eth0.  
        #  
        #          **  Please  change  this  network  number,  subnet  mask,  and  your  Internet  
        #          **  connection  interface  name  to  match  your  internal  LAN  setup  
        #  
        /sbin/ipchains  -P  forward  DENY  
        /sbin/ipchains  -A  forward  -i  eth0  -s  192.168.0.0/24  -j  MASQ  

键入  chmod  700  /etc/rc.d/rc.firewall使可执行.  
然后加一行/etc/rc.d/rc.firewall到/etc/rc.d/rc.local中,使它启动时运行.  
以上防火墙规则使子网(192.168.x.x)所有PC用一个ISP分配的IP上网,禁用IRC,Realplayer,Quake...  


4,  DHCP  Server  

为了使其他局域网里的Windows能方便设置网络,顺便安装DHCP  Server  
到RedHat目录下,rpm  -ivh  dhcp*  确保全部DHCP包已安装.  

touch  /var/state/dhcp/dhcpd.leases,建立dhcpd的日志文件  

建立  /etc/dhcpd.conf  文件:  


#  /etc/dhcpd.conf  
#  Type  "route  add  -host  255.255.255.255  dev  eth1  2>  /dev/null"  ,  and  
#    "usr/sbin/dhcpd  eth1"  to  start  DHCPD  binded  with  eth1  !  
#  Don“t  start  it  with  eth0  ,  conflict  with  ISP“s  DHCPD  !  
#  
subnet  192.168.0.0  netmask  255.255.255.0  {  
range  192.168.0.10  192.168.0.100;  

default-lease-time  1200;  
max-lease-time  9200;  
option  subnet-mask  255.255.255.0;  
option  broadcast-address  192.168.0.255;  
option  routers  192.168.0.1;  
option  domain-name-servers  xxx.xx.xx.xx,  xxx.xx.xxx.x;  -->ISP的DNS  server  
option  domain-name  "offfice.net";  

}  

以上设置自动分配192.168.0.10到192.168.0.100的内部IP.  


绑定DHCPD到eth1,否则系统会绑定到eth0,无法启动,也会导致和ISP的DHCPD发生冲突,  
编辑/etc/rc.d/init.d/dhcpd,在/usr/sbin/dhcpd后加  eth1.  

最后,为了客户PC可以稳妥取得路由,运行:  

route  add  -host  255.255.255.255  dev  eth1  2>  /dev/null  

5,客户端  

很方便,到  start-->settings-->network-->TCP/IP-->Obtain  an  IP  automatially.  
作者:laptop


上一篇: Outlook Express技巧几则 下一篇:

MSN联系人中的小技巧

返回列表 打印此页 加入收藏 资讯论坛 关闭窗口 点击复制本页地址,发送给QQ/MSN好友
关于我们 - 联系我们 - 版权声明 - 帮助(?) - 广告服务 - 友情链接 - 服务项目 - 人才招聘
2003-2008 版权所有 © 晨风资讯网 未经授权禁止复制或建立镜像
CopyRight 2003-2008 www.Net118.com,All Rights Reserved.Design By ChenFeng Network Studio