无线组网 频道

Linux系统下教你设置网络共享ADSL连接

    【IT168 专稿】笔者使用家用电脑已经有几年的时间,随着计算机的软件、硬件的不断升级换代,家里已经买了三个不同配置的计算机。我想现在家庭中拥有两台以上的计算机的朋友也有很多,如何充分发挥好它们功能,特别是一些老爷机是许多朋友关心的话题,这里介绍一下笔者的Linux异构网络共享ADSL连接经验供您参考。

    一、 Linux下的ADSL连接

    网络拓扑环境如图1:

网络拓扑环境

    1、首先检查是否安装了PPPOE软件并且版本要高于3.5-1。

    如果版本低于这个版本,先升级软件版本(最新版本rp-ppoe-3.5-3.i386.rpm)。升级命令:

# rpm Uvh rp-ppoe-3.5-3.i386.rpm

    系统产生四个命令:
 adsl-setup:配置DNS、用户账号、口令、其他选项。
 adsl-start:使用ADSL连接互联网命令。
 adsl-stop:断开ADSL和互联网连接命令。
 adsl-stauts:检测ADSL连接状态命令。

    2、配置ADSL连接

# adsl-setup

    安装过程一共9步,详细说明如下:

    简单介绍:
    步骤1:添加输入ADSL账号的登陆账户名称。按回车键继续。
    步骤2:选择ADSL设备所连接的网卡,笔者使用的是eht0。按回车键继续。
    步骤3:选择ADSL短线后是否自动拨号,包月用户选择“yes”,其他用户选择“no”,按回车键继续。
    步骤4:添加填入你的ISP的静态主DNS地址和辅助DNS地址,按回车键继续。
    步骤5:添加输入ADSL账号的密码然后重复输入一次,填写完成按回车键继续。
    步骤6 :选择是否允许普通用户开,关闭adsl连接。默认yes按回车键继续。

    步骤1~6详细步骤可见下图:

adsl安装图解1

    步骤7:选择防火墙等级,选择0,填写完成按回车键继续。
    步骤8:选择是否在启动的时候就拨号连接,默认no(包月用户选择“yes”),按回车键继续。
    步骤9:下面是输入信息的一个摘要,确认后选择“y”完成配置。

    步骤7~9详细步骤可见下图:

adsl安装图解2

    如果出现如下图的界面表示ADSL在Linux配置完成。

ADSL在Linux配置完成

    到此为止Linux 计算机已经可以通过ADSL上网了。用命令adsl-start来激活ADSL连接。下图是在Linux 下使用浏览器浏览IT168家庭组网专区的网页截图。

Linux下的IT168家庭组网专区的网页

    查看ppp0连接情况,见下图。

ppp0连接情况

    以后通过adsl-start(使用ADSL连接互联网命令)、adsl-stop(断开ADSL和互联网连接命令)、adsl-stauts(检测ADSL连接状态命令)三个命令进行ADSL连接控制。

 

    二、安装DHCP服务器

    DHCP是动态主机配置协议.这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。网络管理员通常会分配某个范围的 IP 地址来分发给局域网上的客户机。当设备接入这个局域网时,它们会向 DHCP 服务器请求一个 IP 地址。

    然后 DHCP 服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有 IP 地址为止。已经分配的 IP 地址必须定时地延长借用期。这个延期的过程称作 leasing,确保了当客户机设备在正常地释放 IP 地址之前突然从网络断开时被分配的地址可以归还给服务器。本文以Redhat Linux 9.0为例,介绍如何建立一个DHCP服务器。

    1、建立DHCP服务器配置文件

    可以使用Redhat Linux 9.0自身携带rpm包安装。安装结束后, DHCP 端口监督程序 dhcpd 配置文件是 /etc 目录中的名为 dhcpd.conf 的文件。下面手工建立/etc/dhcpd.conf文件。/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。

    1. DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。

    主要内容见表1:

 参数
解释
ddns-update-style
配置DHCP-DNS 互动更新模式。
default-lease-time
指定确省租赁时间的长度,单位是秒。
max-lease-time
指定最大租赁时间长度,单位是秒。
hardware
指定网卡接口类型和MAC地址。
server-name
通知DHCP客户服务器名称。
get-lease-hostnames flag
检查客户端使用的IP地址。
fixed-address ip
分配给客户端一个固定的地址。
authritative
拒绝不正确的IP地址的要求。

    2. DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等。

    主要内容见表2:

声明
解释
shared-network
用来告知是否一些子网络分享相同网络。
subnet
描述一个IP地址是否属于该子网。
range 起始IP 终止IP
提供动态分配IP 的范围。
host 主机名称
参考特别的主机。
group
为一组参数提供声明。
allow unknown-clients ﹔deny unknown-client
是否动态分配IP给未知的使用者。
allow bootp;deny bootp
是否响应激活查询。
allow booting﹔deny booting
是否响应使用者查询。
filename
开始启动文件的名称,应用于无盘工作站。
next-server
设置服务器从引导文件中装如主机名,应用于无盘工作站。

    3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始。

    主要内容包括见表3:

选项
解释
subnet-mask
为客户端设定子网掩码。
domain-name
为客户端指明DNS名字。
domain-name-servers
为客户端指明DNS服务器IP地址。
host-name
为客户端指定主机名称。
routers
为客户端设定默认网关。
broadcast-address
为客户端设定广播地址。
ntp-server
为客户端设定网络时间服务器IP地址。
time-offset
为客户端设定和格林威治时间的偏移时间,单位是秒。

    注意:如果客户端使用的是视窗操作系统,不要选择“host-name”选项,即不要为其指定主机名称。

    下面是一个笔者使用的DHCP配置文件,这是一个C类网络,共126个IP地址可以分配的例子。

ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.1 netmask 255.255.255.0 {
    option routers          192.168.0.1;
    option subnet-mask      255.255.255.0;
    option broadcast-address     192.168.0.255;
    option domain-name-servers  192.168.0.1,202.106.0.20,202.106.148.1; #ISP 的dns服务器IP地址#
    option time-offset      -18000;
    range dynamic-bootp 192.168.0.2 192.168.0.254; #不要把192.168.0.1和192.168.0.255放在动态获取ip范围内#
    default-lease-time 21600;
    max-lease-time 43200;
        host ns {
        hardware ethernet 52:54:AB:34:5B:09;#运行DHCP的网络接口的MAC地址#
        fixed-address 192.168.1.9;
    }
}

    读者可以复制后使用,注意红色部分是必须要按您的具体情况修改。

    2、建立客户租约文件

    运行DHCP服务器还需要一个名为 dhcpd.leases 的文件,保持所有已经分发出去的 IP 地址。在Redhat Linux 发行版本中,该文件位于 /var/lib/dhcp/ 目录中。如果您通过 RPM 安装 ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:

Leases address {statement}

    一个典型的文件内容如下:

lease 192.168.1.255 {             #DHCP服务器分配的IP地址#
  starts 1 2006/08/02 03:02:26;    # lease 开始租约时间#
  ends 1 2006/09/02 09:02:26;       # lease 结束租约时间#
  binding state active;
  next binding state free;
  hardware ethernet 00:00:e8:a0:25:86;  #客户机网卡MAC地址#
  uid "\001\000\000\350\240%\206";   #用来验证客户机的UID标示#
}

    注意lease 开始租约时间和lease 结束租约时间是格林威治标准时间(GMT),不是本地时间。

    第一次运行DHCP服务器时dhcpd.leases是一个空文件,也不用手工建立。如果不是通过 RPM 安装 ISC DHCP,或者 dhcpd 已经安装,那么您应该试着确定 dhcpd 将其 lease 文件写到何处,并确保该文件存在。也可以手工建立一个空文件:

#touch /var/lib/dhcp/dhcpd.leases

    3、启动和检查DHCP服务器

    使用命令启动DHCP服务器:

#service dhcpd start

    4、配置DHCP客户端

    通常网管员使用选择手工配置 DHCP 客户,需要修改 /etc/sysconfig/network 文件来启用联网;并修改 /etc/sysconfig/network-scripts 目录中每个网络设备的配置文件。在该目录中,每个设备都有一个叫做 ifcfg-eth? 的配置文件,eth?是网络设备的名称。 如eth0等。如果你想在引导时启动联网,NETWORKING 变量必须 被设为 yes。 除了此处之外/etc/sysconfig/network 文件应该包含以下行:

NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

    Windows客户端设置见下图。

TCP/IP协议对话框

 

    三、安装Squid代理服务器

    1、安装squid

    通常说来,安装Squid有两种方法:一是从Linux 发行版本中获取该软件的RPM包进行;二是安装从Squid的官方站点http://www.squid-cache.org/ 下载该软件的源码进行编译后安装。目前网上最新的稳定版本为squid-2.5.STABLE10,下面以前者为例进行介绍。

    首先要确认是否已经安装可以使用以下命令查看:“rpm -q squid”如果在系统安装时已经把squid 安装上了,那么我们就可以直接对其进行配置使用了。否则,可以通过Rat Het Linux图形界面下的“添加/删除应用程序”工具进行安装。

    具体方法是,选择“主选单”→“系统设置”→“添加/删除应用程序”,选中 “squid”选项,单击“更新”即可。 也可以从Squid站点www.squid-cache.org 获取该软件的源代码安装包,包括gz和bz2两种压缩方式。可以用以下命令启动squid。

    或者,使用Linux 的启动脚本来启动squid。
/etc/rc.d/init.d/squid start
    同样,也可以用下列脚本停止运行squid或重启动squid。
/etc/rc.d/init.d/squid stop
/etc/rc.d/init.d/squid restart

    2、配置squid透明代理

    透明代理的意思是客户端根本不需要知道有代理服务器的存在。当我们在客户端浏览器中打开一个web请求,比如“http://www.it168.com”,工作流程如下:

    客户端向DNS请求“www.it168.com”,得到相应的IP地址202.99.11.122。然后,客户端使用某一端口向该IP地址的80端口发起web连接请求,请求web页面。
    当该请求包通过透明代理服务器时,被重定向到代理服务器的绑定端口8080。于是,透明代理服务器用某一端口(比如108向202.99.11.120的80端口发起web连接请求,请求web页面。
    收到响应的web页面后,代理服务器把该数据传送给客户端。
    客户端浏览器显示该页面。

    在NAT路由器上,将用户对HTTP的请求(TCP类型,端口号80)重定向到Squid 传输HTTP的端口(TCP类型,默认端口号3128), 即由代理服务器向外请求所需数据然后转交给客户端。配置了透明代理,客户端设置了默认网关后,用户用浏览器浏览网页时, 感觉就像直接上网一样,但实际上却是通过代理服务器浏览网页,也就是说对客户透明。

    将Squid配置为透明代理的两个步骤:

    配置Squid添加如下指令

httpd_accel_host virtual
http_port 3128
httpd_accel_port 80
httpd_accel_with_proxy  on
httpd_accel_uses_host_header on
http_access allow all

    重新起动squid,然后使用iptables进行端口转发

#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

    以上两句最好写进 /etc/rc.d/rc.local,因为这两条记录重起机器后就失效了。

    2、Windows客户端设置

    Windows下客户端设置见下图。

windows下TCP/IP设置

    在 Internet Explorer 下的配置:

    1. 点击菜单上的 工具 -> Internet 选项
    2. 选择 连接 并单击 局域网设置
    3. 选中 使用代理服务器 输入上述代理服务器的 IP 地址和端口。

    然后在客户机上的windows 计算机就可以访问互联网了。到此为止笔者介绍了一下Linux 异构网络共享ADSL连接经验供您参考。

0
相关文章