设为主页
加入收藏
联系我们
返回首页
 
 
网吧技术 网吧经营 网管心声 网吧名站
 
   
  您现在的位置>>首页>>网吧技术  
 
     
 

 

使局域网连接互联网---Linux下宽带设置

文章来源:iTbulo.COM


    系统准备 : 一个运转正常的 Linux( 这个大家都有 )

  硬件要求 : 至少一块网卡,宽带设备已经申请完毕,同时已经开通

  广州电信的 ADS(LAN)L 使用的是 PPPOE 拨号方式,因此,要在 Linux 下使用 ADSL ,必须安装 PPPOE 客户端软件。

  下面说明如何进行安装 : 本人以 RedHat Linux 7.3 为平台,其它平台 Linux 的安装办法可以参照下面安装的步骤。

  一、安装的前提条件

1. 确保安装了网卡并工作正常使用命令 #ifconfig eth0 查看网卡状态 2. 在系统中不要设置默认路由 ( 网关 ) ,让 ADSL 拨号后自动获得如果已经设置了默认路由,使用以下方法删除 : 在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后以 root 执行 :#/etc/rc.d/init.d/network restart 3. 已经安装了 pppd 软件包如果存在文件 /usr/sbin/pppd ,则说明已经安装了 pppd; 如未安装,从 RedHatLinux 安装光盘上装 ppp- 2.3.11 -4.i386.rpm( 版本可能不一样 ) 这个软件包

二、安装 PPPOE 客户端软件 Linux 下的 PPPOE 客户端软件比较多 ,而且大多使用 GNU License ,推荐使用 rp-pppoe 这个软件包,

  从 http://www.roaringpenguin.com/pppoe/这个网站上,不仅可以下栽 RedHat 平台下的 rp-pppoe 的二进制软件包,而且可以下栽源代码软件包。

1. 二进制软件包的安装 :A. 下栽二进制软件包 http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5-1.i386.rpmB. 进行安装以 root 执行 :#rpm -Uvh rp-pppoe-3.5-1.i386.rpm 2. 从源代码进行安装 : 从源代码进行安装同样适用于其它平台的 Linux ,但必须在 Linux 系统中安装 gcc 编译器。

A. 下栽源代码软件包 http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5.tar.gzB. 解压缩 #tar xvfz rp-pppoe-3.5.tar.gz #cd rp-pppoe -3.5 C . 进行编译和安装运行脚本 #./go 将自动进行编译和安装,最后,自动调用 /usr/sbin/adsl-setup 进行配置,具体解释见三。

三、配置 PPPOE 客户端软件安装完软件包后 ,必须配置 pppoe 的配置文件 /etc/ppp/pppoe.conf ,从而让 ADSL 拨号时使用配置文件中的用户名、密码等参数。我们不必手工改动这个文件,可以使用 adsl-setup 这个工具进行配置 :#/usr/sbin/adsl-setup 当出现

>>> Enter your PPPoE user name :

  输入 ADSL 帐号的用户名当出现

>>> Enter the Ethernet interface connected to the ADSL modem

For Solaris , this is likely to be something like /dev/hme0. For Linux , it will be ethn , where n is a number.(default eth0): 输入 eth0 ,这是 ADSL 相连的网卡的名字当出现

>>> Enter the demand value (default no):

  输入 no 当出现

>>> Enter the DNS information here:

  输入 “server” ,这表示使用 ADSL 拨号自动获得的 DNS 服务器 IP 地址当出现

>>> Please enter your PPPoE password:

  输入 ADSL 帐号的密码当出现

>>> Choose a type of firewall (0-2):

  输入 0 ,不使用防火墙当出现

>>> Accept these settings and adjust configuration files (y/n)?

  如果输入的信息正 ā 确,输入 y ,完成配置,否则,输入 n 重新输入。

  四、启动 PPPOE 客户端软件

  使用命令 /usr/sbin/adsl-start 启动 PPPOE 客户端软件,进行连接,如果成功,将出现 Connected; 如果不成功,请检查网线、 ADSL MODEM 等物理设备,并查看 /var/log/messages 中的信息 /usr/sbin/adsl-stop 关闭和 ISP 的连接 /usr/sbin/adsl-status 查看当前连接的状态如果想在 Linux 系统启动时自动启动 ADSL 连接,输入以下命令 #chkconfig –add adsl 将在当前的运行级下加入 ADSL 的自启动脚本五、测试当连接成功后,使用命令 #ifconfig -a 在输出中应含有关于 ppp0 的信息,其中还绑定了 IP 地址,说明已经从拨号中获得了 IP 地址。

  使用命令 #netstat -nr 查看路由表信息,这时的默认路由应该是上面获得的 IP 地址。

  如果没有默认路由,我们可以手动增加 :#route add default gw 上面获得的 IP 地址使用命令 #nslookup http://www.sina.com.cn/如果解析出新浪的 IP ,说明已经从拨号中正确获得了 DNS 服务器最后,使用命令 ping 某个域名或 IP ,如果有响应,表示你已经大功告成了。

  注 : 好像在进行配置的过程中,会提示你是否在启动时加载 ADSL ,选 yes ,这样就会省的登录后再 start 了。

  五、使用双网卡带动公司网、家庭网络上网


   硬件要求 : 同上双网卡

NAT 方式 : 接内部网络的网卡设置 IP 为私有地址 (192.168.0.0/24 、 172.16.0.0/16 、 10.0.0 .0/8) ,

  例如 192.168.100.123/24. 不要设置默认路由 ( 网关 ) , DNS 设置为广州地区 (61.144.56.100) ,其它

  地区的相应改动为本地区的 DNS. 在 /etc/rc.d/ 目录下用 touch 命令建立 firewall 文件,执行 chmod u+x firewall 以改变文件属性,编辑 /etc/rc.d/rc.local 文件,在末尾加上 /etc/rc.d/firewall 以确保开机时能自动运行该脚本。

firewall 内容为 :#!/bin/sh echo “Enable IP Forwarding…”

echo “1″>/proc/sys/net/ipv4/ip_forward echo ”Starting iptables rules…“

/sbin/modprobe iptable_filter /sbin/modprobe ip_tables /sbin/modprobe iptable_nat #Refresh all chains /sbin/iptables -F -t nat iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MMASQUERADE 客户端设置 (windows98/2000/xp 、 linux) 网关设置为这台 linux 地址 (192.168.100.123) , DNS 设置为 61.144.56.100.

  透明代理配置代理软件 squid:

  编辑 /usr/local/squid/etc/squid.conf ,修改以下内容,确保以下配置 :

http_port 192.168.100.123:8080

cache_mem 48 MB acl all src 0.0.0 .0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https , snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemakāer acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT acl flag src 192.168.100.0/255.255.255.0

httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on cache_effective_user nobody cache_effective_group nobody http_access allow flag

http_access deny all

( 限制只允许局域网用户使用代理,具体可以参考 squid 手册中关于 Access Control Lists 的内容来限制访问代理 )

cache_dir ufs /var/spool/squid 100 16 256

cache_dir type Directory-Name Mbytes Level-1 Level2

( 说明 : 指定 squid 用来存储对象的交换空间的大小及其目录结构。可以用多个 cache_dir 命令来定义多个这样的交换空间,并且这些交换空间可以分布不同的磁盘分区。 “directory ” 指明了该交换空间的顶 级目录。如果你想用整个磁盘来作为交换空间,那么你可以将该目录作为装载点将整个磁盘 mount 上去。缺省值为 /var/spool/squid.“Mbytes” 定义了可用的空间总量。需要注意的是, squid 进程必须拥有对该目录的读写权力。 “Level-1″ 是可以在该顶级目录下建立的第一级子目录的数目,缺省值为 16. 同理, ”Level-2″ 是可以建立的第二级子目录的数目,缺省值为 256. 为什么要定义这么多子目录呢 ? 这是因为如果子目录太少,则存储在一个子目录下的文件数目将大大增加,这也会导致系统寻找某一个文件的时间大大增加,从而使系统的整体性能急剧降低。所以,为了减少每个目录下的文件数量,我们必须增加所使用的目录的数量。如果仅仅使用一级子目录则顶级目录下的子目录数目太大了,所以我们使用两级子目录结构。那么,怎么来确定你的系统所需要的子目录数目呢 ? 我们可以用下面的公式来估算。

  已知量 :

DS = 可用交换空间总量 ( 单位 KB)/ 交换空间数目

OS = 平均每个对象的大小 = 20k

NO = 平均每个二级子目录所存储的对象数目 = 256

  未知量 :

L1 = 一级子目录的数量

L2 = 二级子目录的数量

  计算公式 :

L1 x L2 = DS / OS / NO

( 注意这是个不定方程,可以有多个解 )

acl allow_domain dstdomain “/etc/squid/allow_domain”

  创建 cache 目录

[root@proxy squid]# squid -z

  修改该目录所有者 squid:

[root@proxy squid]# chown squid:squid /usr/spool/squid

  最后启动 squid:

[root@iptable logs]# /usr/local/squid/bin/RunCache &

  并且系统中应该有如下几个端口被监听 :

[root@proxy logs]# netstat -ln tcp 0 0 0.0.0 .0:3128 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:3130 0.0.0.0:*

  这些说明 squid 已经正常启动了。

  然后使用 Redhat 的 serviceconf 工具以使得系统启动时自动启动 squid 服务器。

5.iptables 的设置

  在 /etc/rc.d/ 目录下用 touch 命令建立 firewall 文件,执行 chmod u+x firewll 以更改文件属性,编辑 /etc/rc.d/rc.local 文件,在末尾加上 /etc/rc.d/firewall 以确保开机时能自动执行该脚本。

firewall 文件内容为 :

#!/bin/sh

echo “Enabling IP Forwarding…”

echo 1 > /proc/sys/net/ipv4/ip_forward

echo “Starting iptables rules…ā”

#Refresh all chains

/sbin/iptables -F -t nat

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp–dport 80 -j REDIRECT –to-ports 8080

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 — -j MMASQUERADE 七、在含有多个 vlan 的三层交换网络中实现 squid+iptables 的透明代理在企业中网络常常会有三层交换。它能够有效隔离广播,防止广播风暴。通过三层交换机划分 vlan ,使得应用和管理都变得相对容易些。但也给代理的设置带来一点小麻烦,传统代理要设置代理

  服务器地址和端口,这对三层交换网络没有什么问题。关键是透明代理中网关的设置,在三层交换的网络中每个 vlan 的计算机的网关都要设置成所在 vlan 的网关,如 : 下表中 vlan1 的网关必须是 192.168.100.1 , vlan2 的网关必须是 192.168.110.1 ,像普通网络中把网关都设置成代理服务器的地址是绝对不行的。所以,三层交换网络中透明代理的设置主要问题集中在三层中心交换机和代理服务器路由的设置,三层交换机的路由表中要有一条默认路由指向代理服务器,服务器的路由表中要有一个容纳所有 vlan 的网关。

  以下是我的网络说明 : 网络内网有 15 个 vlan 如路由表所示,代理服务器 (squid+iptables) 在 vlan1 中服务器有两块网卡, eth0 连接外网 ip 是 A.B.C.D ,网关为 A.B.C.1.eth1 连接内网 ip 是 192.168.100.123/24 不设网关。给服务器加上一条路由,将 192.168.0.0/16 ,指向 vlan1 的网关 192.168.100.1 , route add -net 192.168.0.0 netmask 255.255.0.0 eth1 以保证与其他 vlan 的通信,如此网络部分便配置成功,关于透明代理设置这里就不说了,请参考其他文章。这样所有的 vlan 的计算机只要网关和 dns 配置好就可以上网了,如 :vlan3 中某台计算机 ip 设置 192.168.120.47 ,网关为 192.168.120.1 , dns 地址为服务商给的 ( 广州地区 ADSL:61.144.56.100) ,这样就 OK 了。其出网的路由为 ->192.168.120.47->192.168.120.1->192.168.100.1->192.168.100.123->A.B.C.1->……


【本站声明】本站刊载的部分内容全部来源互联网,对于此类文章本站仅提供交流平台,不为其版权负责。如涉及侵犯您的知识产权的文章,请联系我们,我们将尽快做出更正。并向您表示感谢!同时特别感谢对本站所有支持的网友。

 
 
综合搜索 百度 google 爱问 搜狗 中搜 雅虎 MP3 图片 flash 视频
您好!中国好用是残疾人创办站,欢迎你设为首页,你每一次的使用,就是一份爱心,对我们来说就是一份希望......