不用担心,你只要熟读文档,对 Unix 历史上的设计坑有了解,对 网络底层,编译和动态库(好吧,其实这是历史坑),OS 的一些基础,以及一些其他工作相关内容(mpi,数据库之类我也不熟)有所熟悉就能被老司机带了 PPP(Point to Point Protocol)协议 即点对点协议 是标准的Internet协议 我们可以利用ppp拨号连接到Internet 也可通过建立拨号服务器 提供ppp拨入服务 例如 有些机构有多个外地部门 在本地已连通Internet 而外地部门有拨号到中心机房连上Internet的需求 则要求中心机房有一台拨号服务器能提供ppp接入服务 而用目前比较流行的Linux *** 作系统来做 则显得轻松有余 本文以RedHat Linux为基础 详细讨论如何安装配置ppp拨号服务器 一 软件及网络环境 Redhat 内核 pppd 局域网 Linux 服务器IP设为 服务器名称为jsred 分配给拨号用户的固定IP为 主机名为admin 二 服务器端的安装 )安装pppd 在Linux服务器上查看有没有安装pppd 缺省安装是在/usr/ in/子目录下 如果存在 再查看系统内核有没有提供对ppp的模块支持 如没有 可以进到/usr/src/liunx 子目录 用make menuconfig或make config 对内核进行配置 在PPP支持选项上 选上模块标志 然后重新编译内核 用如下命令 make dep; make clean; make zlilo; rdev R /vmlinuz )安装调制解调器 在物理线路正确连接后打开Modem的电源 运行mini来测试Modem是否已经正确安装 输入mini s 命令设置Modem相关参数 首先查看缺省串行口 缺省为 /dev/modem 根据你所用的串行口将之改为/dev/ttyS 或/dev/ttyS 其次设置通信速率 如果mini 与Modem连接成功 进入会话状态 输入ATS = 如果紧接着在下一行出现OK 且Modem 的AA灯亮起 modem进入自动应答状态 表明mini与Modem通讯正常 Modem可以正常工作了 否则修改串口设置 重复上述步骤 也可用当地的ISP的电话号码拨号 看能否正确连接 一般是先有拨号音 然后是嘈杂声 再就是握手 表示接通 出现登录提示画面 可证明Modem已正确安装 如果遇到Modem能接通 网卡不能工作或网卡能工作而Modem接不通 则要查看是否由于Moem与网卡或其它设备中断冲突引起的 一般检测串行口所占用的中断号 输入 # cat /proc/interrupts 命令查看当前串口占用的中断号 例 : timer : keyboard : serial 可以看到当前串口占用的中断是 也可以用setserial 命令来给串口设置地址和中断号(IRQ) 例如 # / in/setserial/dev/ttys irq 赋给串口一( )中断值为 或 #/ in/setserial/dev/ttys auto_irq 赋给串口任意一个空闲中断号 )创建登录终端 在Unix中 将设备看成是一个特殊文件来进行访问控制 通过特殊文件可以访问特定的设备 Linux也不例外 Linux的标准虚拟终端有mingetty agetty等 本文介绍用mgetty 作为ppp客户登录进来的虚终端 你可以通过网上搜索得到该软件 Redhat 自带RPM包 mgetty i rpm 安装命令为 rpm ivh mgetty i rpm 安装完成后在/ in子目录下有二进制文件mgetty 然后进到/etc子目录 在inittab文件之后加上一句 s : :respawn:/ in/mgetty D s ttyS 保存 用init q命令重启进程 用ps aux命令可看到类似于 S : / in/mgetty D s ttyS 表明该终端已准备好 可以接受用户的拨入请求了 )创建或修改PPP相关配置文件 基于对拨号安全性的考虑 pppd默认要求进行主客户机的身份自验证 即对等验证 除非使用root用户帐号拨号或服务器没有连上Internet 因此为了使pppd能正常工作 需要在服务器端设置相应的主客户机验证信息 )编辑/etc/ppp/options文件 在其中加入 detach crtscts netmask asyncmap proxyarp 其中 Asyncmap 表示 在对远程机进行串行联接时 连接可能将ASCII控制码( )用于特殊的用途 所以 这些代码不能作为数据包的一部分进行传送 这就要告诉pppd 不要直接用这些控制码 而用特殊的两字符的转义序列来代替它们 Asyncmap 表示不需要对任何控制码进行转义处理 基于TCP/IP协议的以太网 并不直接利用IP地址 而是利用网卡MAC地址来传送数据包 Proxyarp告诉它在远程主机的Arp表中增加一项 列出本地机的地址和远程机的网卡MAC地址 Netmask可以根据具体子网划分 修改为相应的子网掩码值 )创建/etc/ppp/yS 或/etc/ppp/yS 文件 对相应端口进行设置 在该文件中加入一行 jsred:admin或 : 在/etc/hosts文件中为拨入进来的客户机登记一项 admin )编辑/etc/ppp/pap secrets文件 由于拨号采用PAP验证时 需在该文件中设置相应主客户机信息及PAP验证密码 在该文件中设置如下 admin jsred 第一项为客户机名称或IP 第二项为拨号服务器名称或IP 第三项为PAP密码 由于我们使用标准的password文件来进行身份验证 因而将这里的密码置空 第四项为动态分配给客户机的IP地址 )建立pcguest拨号用户帐号 创建登录Shell 用户通过电话拨号进来 以什么样的身份和权限进入网络呢?这就要为拨入用户建立相应的帐号和登录Shell 如 # adduser pcguest 在选择其Shell时 不要选/bin/bash 而是填入/etc/ppp/ppplogin ppplogin为拨入用户的登录Shell文件 相当于Novell网用户的登录脚本 它为拨号用户初始化登录环境 脚本如下 #! /bin/sh /usr/ in/pppd auth chap +pap login : 第一行表示脚本的其余部分用/bin/sh去解释该脚本 第二行的 +pap login 表示客户端和服务器端采用PAP的验证方式但使用/etc/password文件的内容 用 分隔的两项(IP地址)列出ppp拨号服务器和分配给客户机的IP地址 将该文件置为可执行模式 chmod ppplogin pppd默认只能由root用户执行 为了使普通用户能够执行pppd 需要运行命令 #chmod u+s /usr/ in/pppd 最后别忘了在/etc/shells文件中加进一句话 /etc/ppp/ppplogin 然后存盘退出 )启用Linux的IP转发功能 为客户机通过拨号服务器上Internet铺平道路 Redhat 默认是屏蔽IP转发的功能 为启用IP转发功能 修改文件/etc/nf将 net ipv ip_forward = 改为net ipv ip_forward= 保存退出 重启Linux服务器 服务器端设置工作完成 三 客户端的安装 在Windows 客户机上 安装拨号网络 新建一连接项 选中该连接项 单击鼠标右键d出菜单 单击 属性 打开 服务器 标签的 TCP/IP配置 对话窗口 在 指定IP地址 栏 填入拨号服务器分配给远端客户的IP地址 如 在 主控名称服务器地址 栏中输入Internet上有效的DNS服务器的IP地址 如果该Linux服务器能提供DNS服务 也可填入Linux服务器的IP地址 保存退出 双击连接项 进入拨号状态 当终端窗口中出现登录提示 输入pcguest用户名及相应密码 再点击 继续 按钮 则一个稳定 快速的PPP连接就建立了 四 测试 测试用户有没有拨进服务器 可以在Linux服务器的控制台终端输入 # who root ttyp Apr : pcguest ttyS Apr : 上面的pcguest即为通过ttyS 终端登录的ppp客户 或输入命令 # ifconfig 你会发现除了以太网卡eth 本地环路lo外 还多一个ppp 项 表明客户已成功拨入 打开客户端的浏览器 如Netscape或IE 看能否正常访问Internet站点 lishixinzhi/Article/program/Oracle/201311/18391
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)