系统准备:一个运转正常的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.rpm  
     B.进行安装  
     以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.gz  
     B.解压缩
     #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 www.sina.com.cn  
     如果解析出新浪的IP,说明已经从拨号中正确获得了DNS服务器  
     最后,使用命令ping某个域名或IP,如果有响应,表示你已经大功告成了。

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

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

硬件要求:同上双网卡

  1. 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。

  2. 透明代理
    配置代理软件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 # filemaker
      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->......

Linux下如何接ADSL一类的宽带猫带动局域网上internet相关推荐

  1. linux系统如何拨号上网连接,教你在Linux下如何使用ADSL拨号上网

    教你在Linux下如何使用ADSL拨号上网 发布时间:2007-10-29 10:22:09来源:红联作者:demon 一.如果是新手刚开始使用Linxu的话,可用图形界面: 办法:直接在网络里建立新 ...

  2. linux拨号软件,Linux 下的宽带ADSL拨号软件“rp-pppoe”使用设置

    RH要先设置网卡#netconf 把IP和DNS设置成如下的. IP地址:192.168.0.1 掩码: 255.255.255.0 DNS (下面以广东佛山为例,各地的ISP 均有不同的DNS ) ...

  3. linux自动拨号上网,Linux下怎么设置ADSL自动拨号上网?

    当地ISP If you just press enter, I will assume you know what you are doing and not modify your DNS set ...

  4. Linux下使用Apache实现域名转发(Tomcat/JBOSS)

    Linux下安装.配置JDK就不细说了,网上的资料很多; 在安装apache时可能会遇到诸多问题,譬如APR not found,pcre-config for libpcre not found等问 ...

  5. linux下安装监控网络流量工具Iptraf

    今天试用了下linux下的网络流量监控分析工具iptraf,按照网上的安装方法,怎么也不成功.安装参考:http://www.jcwcn.com/article-23141-1.html. 搜索&qu ...

  6. linux下msmtp+mutt+shell发送邮件

    Linux下安装配置msmtp和mutt发送邮件 作者: 纵横域内 日期: 2014 年 12 月 11 日发表评论 (0)查看评论 Linux下安装配置msmtp和mutt Linux下有发送邮件的 ...

  7. Linux下 QT中 log4cplus 最基本配置及使用

    Linux下 QT中 log4cplus 最基本配置及使用 鉴于网上很多使用方法不是很详细,对小白不友好,并且以此作为记录,方便下次配置. 本文是基于我自己下载的版本写的,请各位根据自己下载的版本更改 ...

  8. 简单实现Linux下线程池

    最近在Linux下使用mysql时有时会报查询异常,看网上解决方案是多次并发使用,通过gdb调试也找到问题,主要是上次查询结果集未释放,最终导致如此. 大佬说根本解决方案还是线程池,就去看了线程池的一 ...

  9. Linux下IP地址两种修改方式的总结(IP地址、子网掩码、网关、DNS简介)

    目录 一.IP地址.子网掩码.网关.DNS简介 1.IP地址 2.子网掩码 3.网关 4.DNS 二.Linux下IP地址修改两种方式介绍(Centos7.6) 1.查看IP地址 2.修改配置文件修改 ...

最新文章

  1. CentOS7中使用yum安装Nginx的方法
  2. 【给自己的小练习2-线段树】
  3. CentOS 6.9下OpenLDAP 的安装与配置
  4. 谷歌提出新型卷积网络EfficientNet: 推理速度升5.1倍参数减少88%,需要我们的验证
  5. Windows RabbitMQ 命令
  6. C#开发笔记之04-如何用C#优雅的计算个人所得税?
  7. 内部类及静态内部类的实例化
  8. python api加快交易速度_使用Python3的pipedriveapi将交易输出限制为1000个交易
  9. 配置python开发环境搭建_Eclipse配置Python开发环境
  10. 带你轻轻松松了解route-map
  11. 算法竞赛入门经典(第二版)_1入门
  12. 没学编程的孩子,和从小学编程的孩子,差距有多大?
  13. 2019中国科学院、中国工程院院士增选名单正式发布
  14. PCB设计完检查的项目
  15. 关于html中的图片插入
  16. 使用Vue_cli搭建SPA项目
  17. html+php内联执行JavaScript是报错
  18. LINUX 字体装在哪个文件夹里
  19. Xen、OpenVZ、KVM、Hyper-V、VMWare虚拟化技术介绍
  20. 展现AI与自动化测试技术之间的神奇化学反应

热门文章

  1. 使用十六进制表示颜色
  2. 考研上岸学长的备考经验心得
  3. TO_CHAR函数的几个细节
  4. React-Spring动画库快速入门
  5. c语言实现同步四位加法计数器,八进制计数器设计方案汇总(四款模拟电路原理实现过程)...
  6. Envoy Corp键盘鼠标驱动有的请进来看下
  7. Nginx之10灵犀一指 - (访问认证)
  8. likely与unlikely
  9. oracle tfa 自启动,oracle TFA 升级实例讲解
  10. 外联式css怎么写_如何链接外部CSS样式表