Linux局域网共享宽带上网

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:16:38
于明远 曾几何时,我们借助于Wingate或Sysgate通过56K Modem共享接入Internet,速度虽慢却也令人高兴。而今随着网络技术的发展,宽带接入互联网已经进入寻常百姓家,ADSL和以太网给用户提供了兆级的宽带接入解决方案。虽然把这种方式称为宽带接入还带有一些广告宣传的意味,但与以前K级的速度相比,它确实给用户带来了前所未有的体验,也使共享接入具有了实际应用的价值。目前,Windows和Linux操作系统都提供了这方面的功能,两者相比,前者方便简单,而后者在电脑配置相同或在低档配置下可提供更高的效率,动力也明显比前者强劲。 Linux环境的基本配置 以本共享方案为例,其配置为: MMX200 CPU、内存96M、网卡两块(一块是D-link200 ISA网卡,另一块是Reltek8029 PCI网卡)和RedHat7.2 Linux系统。注意在安装并配置Linux7.2服务器时,只要硬盘够大应尽可能完整安装,免得以后再添加。 具体的网络配置如下:Eth0为8029网卡,IP地址为192.168.0.1;Eth1为D-link网卡,IP地址为192.168.1.1; 缺省的路由是192.168.0.1,Host name为linux.home.cn,Domain name为home.cn。 在共享上网中,网络的配置是必不可少的(如果已经配置了局域网所需的服务如DNS、sendmail、http、samba、innd、ssh、ftp等也不影响共享上网的使用),其中Eth0与局域网连接,Eth1与ADSL或以太网宽带接入连接,客户端则可根据上述服务器的配置做相应配置。另外,网段应设置为192.168.0.x,子网掩码为255.255.255.0,默认网关为192.168.0.1,DNS为192.168.0.1。 接下来进行PPPoE的安装,将PPP的安全登录和数据流量大的优点添加到以太网连接中。在此,需要PPPoE拨号进入宽带网。目前,在Linux下已经有了一个很好的PPPoE程序rp-pppoe,但RedHat 7.2所带的版本较低,可以从http://www.roaringpenguin.com/pppoe下载最新的版本,目前最新的版本是3.3-1。 执行命令: [root@linux /]#rpm -U -test rp-pppoe-3.3-1.i386.rpm //升级PPPoE。 [root@linux /]#rpm -q rp-pppoe //查看PPPoE的版本。 [root@linux /]#rp-pppoe-3.3-1 //在正常情况下应该显示这个版本。 [root@linux /]#adsl-setup //开始PPPoE的配置。 //以下是屏幕显示: Welcome to the Roaring Penguin ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... Looks good! Now, please enter some information: USER NAME >>> Enter your PPPoE user name : 输入连入宽带网的账号,值得注意的是,如果接入ADSL,使用中国电信的服务可直接输入账号,而如果是接入中国网通的以太网,要紧跟着账号后面输入! Internet(I要大写)。 INTERFACE >>> 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 eth1): 输入准备接入互联网的网卡名,如果是缺省的就直接敲回车键。 >>> Enter the demand value (default no): 直接回车。 DNS >>> Enter the DNS information here: 输入有服务商提供的域名服务器地址,或输入server,由服务商自动提供。 PASSWORD >>> Please enter your PPPoE password: >>> Please re-enter your PPPoE password: 输入上网密码。 FIREWALLING The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsible for ensuring the security of your machine. You are STRONGLY recommended to use some kind of firewall rules. 1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation 2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN >>> Choose a type of firewall (0-2): 选择防火墙,选0。 ** Summary of what you entered ** Ethernet Interface: eth1 User name: ddtthz! Internet Activate-on-demand: No DNS: server Firewalling: NONE >>> Accept these settings and adjust configuration files (y/n)? 最后,对上述配置进行确认。确认后的配置系统会写入/etc/ppp/pppoe.conf文件,熟练的用户可直接对其进行修改。 拨号 配置完成后,就可以进行拨号了。 [root@linux /]# adsl-start 如果屏幕上出现:“... Connected!”就说明拨号成功了。一般而言做到这一步是没什么问题的。这时可以用ifconfig命令查看,结果除了原本有的eth0、eth1、lo外又增添了ppp0。 接下来可以Ping一下互联网上的某个主机名,如www.sina.com.cn或其IP地址。接通了的话就可以在Linux环境下上网了。但大多数情况下此时可能是Ping不通的,原因是Linux服务器的路由不一定是正确的。用route命令查看,如果default路由是错误的,那是因为原来的默认路由是Linux服务器的地址,而拨入宽带网的默认路由必须是拨入的网关地址。 修改方案为,用adsl-stop命令停掉拨入服务,找到并修改/etc/sysconfig/network文件,把其中的gateway和gatewaydev语句注释掉或删除。然后用命令/etc/rc.d/init.d/network restart重新启动网络进程。用adsl-start拨入互联网后,route命令应显示如下路由表:
此时Ping www.sina.com.cn没有一点问题,路由的问题解决了。 局域网的共享接入 下面就要为局域网的共享接入进行配置。先增添一条静态路由,为局域网内的电脑做路由网关:找到并修改/etc/sysconfig/static-routes文件,写入“eth0 net 192.168.0.0 netmask 255.255.255.255 gw 192.168.0.1”。同时不要忘记配置IP报的转发: 找到并修改/etc/sysctl.conf文件,里面有一段“net.ipv4.ip_forward=0”,把0改为1。不放心的话还可以在命令行中输入:“echo 1 > /proc/sys/net/ipv4/ip_forward”。重新启动网络进程后用route命令查看,路由表内多了一条静态路由:
接下来设置IP伪装,它可以使局域网内的私有地址以NAT方式透明访问互联网。在RedHat7.2版本中已经内置了一个比原来版本所提供的Ipchains更优异的Iptables进程,就用它作为地址翻译的引擎。 在命令行中输入: [root@linux /]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE //设置一个IP包过滤的规则。 一切就绪,启动拨入服务命令adsl-start。从共享的局域网中的某台电脑Ping www.sina.com.cn,通的话说明所有的共享接入设置都没有问题,局域网中的电脑都可以上互联网享受冲浪的快乐了。如果Ping不通,就要仔细检查上述的配置步骤和IP的设置是否有不当或疏漏。 实现自动启动 最后,为了让Linux能自动启动这些配置,可以做如下设置:执行ntsysv命令,选中ADSL选项,在/etc/rc.d/目录下,新建一个firewall文件,内容为: echo "starting iptables rules......" iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward 最后一个语句视情况而定。如果/etc/sysctl.conf已经设置好,则不写也没有关系。同时,把这个文件的权限修改为可执行模式: [root@linux rc.d]# chmod 755 firewall 修改/etc/rc.d/rc.local文件,在文件的最后添加:“/etc/rc.d/firewall”。 重新启动Linux服务器,一切正常的话,服务器已经可以自动拨入宽带网,并设置好了IP伪装。这 样,Linux服务器既承担了局域网原有的各项服务,同时又做了局域网共享访问的引擎。