当前位置:维易网 > 操作系统 > linux > 正文

Linux中实现局域网远程接入

文介绍一种利用Linux服务器的两个串口构建拨号服务器的方法,远程用户可以通过拨号连接到局域网,方便地进行信息传递和资源共享。

笔者的配置环境是Red Hat 8.0 Linux操作系统,所需的硬件包括两个外置Modem(分别连接到COM1和COM2端口)和两条电话线。实现步骤如下:

1. 初始化串口设备

在/etc/inittab文件中加入如下两行,用来初始化ttyS0和ttyS1两个串口设备:

S0:345:respawn:/sbin/mgetty -D -X 3 ttyS0

S1:345:respawn:/sbin/mgetty -D -X 3 ttyS1

然后,运行“/sbin/init q”命令使改动生效。

2. 指定认证方式

在/etc/PPP目录下创建文件ppplogin,内容如下:

#!/bin/sh

/usr/sbin/pppd auth -chap +pap login

该文件指定用户登录时采用PAP认证。PAP和CHAP是PPP服务的两种身份验证协议。

保存文件后,给文件设置执行的权限:

#chmod a+x /etc/ppp/ppplogin

然后,更改/etc/mgetty+sendfax/login.config文件,去掉“/AutoPPP/”一行前面的注释,并改为如下内容:

/AutoPPP/ - - /etc/PPP/ppplogin

3. 修改options文件

修改/etc/PPP/Options文件为如下内容;

detach

Modem

Lock

crtscts

asyncmap 0

netmask 255.255.255.0

proxyarp

ms-dns 192.168.11.1

“detach”选项非常重要。如果不指定这个选项,拨号程序就会进入后台,使得Shell脚本退出,随之而来的是串行线路被挂断,导致连接中止。“detach”防止了tty设备脱离PPPD的控制。

“Modem”选项使得PPPD监视DTR引线,可以观察到对等点是否已掉线。

“Lock”选项指定在串行设备上使用UUCP风格的锁定。

“crtscts”选项用以打开硬件握手信号。

“asyncmap 0”设置了异步字符映射,这个映射指定控制字符不能直接通过连接发送,需要先进行转义。

“netmask 255.255.255.0”设定PPP网络接口的网络掩码。

“proxyarp”选项打开了ARP代理功能。

“ms-dns”2.168.11.1”指定了局域网内的DNS服务器地址,如没有可以不设。

4. 给拨入用户分配IP

创建/etc/ppp/Options.ttyS0和/etc/ppp/

options.ttyS1两个文件,内容如下:

# Vi options.ttyS0

192.168.11.3:192.168.11.242

# Vi options.ttys1

192.168.11.3:192.168.11.243

其中,“192.168.11.3”是用作拨号服务器的那台Linux机器的IP地址,“192.168.

11.242”和“192.168.11.243”是分别指定给COM1口和COM2口拨入用户的IP地址。

5. 口令验证

编辑文件/etc/PPP/pap-secrets,内容如下:

* * "secret" 192.168.11.242

* * "password" 192.168.11.243

如上所示,每行代码包含四列,分别代表用户名、服务器地址、口令值和IP地址列表。“*”表示可以与任何内容进行匹配。

用户拨入后,如果需要访问局域网内的其它服务器,就必须打开IP转发功能:

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

要想在空闲一段时间后自动解除连接,需要在/etc/ppp/options中加入如下一行:

idle 600

上述代码中,“600”表示600秒,即10分钟。

如果在相应目录下找不到/sbin/mgetty文件和/etc/mgetty+sendfax/login.config文件,则需要安装mgetty软件包。

心情模块加载中...

温馨提示:本网使用的部分文字和图片来源于互联网,若有版权问题,请与我们联系!

相关文章推荐

  • Linux构造磁盘空间满的测试环境解决方案

    Linux构造磁盘空间满的测试环境解决方案

    利用suse操作系统的ramdisk,来挂接虚拟磁盘分区,然后通过填满虚拟磁盘分区来实现磁盘满环境的条件。 ramdisk是操作系统自带的一种内存块设备,这种设备的列表可以用ls /dev/ram*来列出 # ls /dev/ram* /dev/ram /dev/ram1 /dev/ram3 /dev/ram5 /dev/ram7 /dev/

  • Linux内核驱动fsync机制实现图解

    Linux内核驱动fsync机制实现图解

    在Linux内核中的IO模型基本分为4类: 1、同步阻塞I/O 2、同步非阻塞I/O 3、异步阻塞I/O 4、异步非阻塞I/O 同步:应用显式地通过函数访问数据,在此函数返回时就会得到结果(成功或失败)。 异步:应用会显示地通过函数提出访问或关注申请。数据到达时,硬件和

  • linux shell 脚本实现tcp/upd协议通讯(重定向应用)

    linux shell 脚本实现tcp/upd协议通讯(重定向应用)

    linux 设备里面有个比较特殊的文件: /dev/[tcp|upd]/host/port 只要读取或者写入这个文件,相当于系统会尝试连接:host 这台机器,对应port端口。如果主机以及端口存在,就建立一个socket 连接。将在,/proc/self/fd目录下面,有对应的文件出现。 一、测试下:

  • linux系统安装rsync和sersync实现数据实时同步详细步骤(rsync实

    linux系统安装rsync和sersync实现数据实时同步详细步骤(rsync实

    一、为什么要用Rsync+sersync架构? 1、sersync是基于Inotify开发的,类似于Inotify-tools的工具 2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件

  • 用SHELL实现子目录文件列表操作指南

    用SHELL实现子目录文件列表操作指南

    需求:/home/file1/free这个目录底下,有部分子目录有list.php,list.php为所在目录的一个文件列表,但要过滤掉list.php这个文件 SHELL: cd /home/file1/free find . -name list.php /home/nexian/free.txt sed -i 's/list.php//g' /home/nexian/free.txt sed

我有问题要问问...

维易问答平台专注于电脑相关问题的在线及时解答,您可以在此提问以获得最佳答案!
关于我们 | 申请入驻 | 广告合作 | 友情链接 | 免责声明 | 投诉建议 | 联系我们 | 网站地图 | Copyright © 2013-2023 维易网 粤ICP备2022127024号
客服 联系站长