当前位置:Linux教程 - Linux - 做PPP server的一些问答

做PPP server的一些问答



        

    我想把我的 Slackware Linux 设置成 server,使别人能通过 modem 拨号联上我的 Linux 主机,请问应怎么做?特别是如何使我的 modem 能应答拨号?

    1,在/etc/inittab中加入这行:
    d1:345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1
    (假设你的modem在第二串口上)
    注意,redhat所带的mingetty不能用于这个目的,你可以从freesoft.cei.gov.cn
    下载mgetty来用。

    2,如果你的modem有开关可以设置就将其设为应答方式,如果没有开关
    就查它的说明书,找出用什么AT命令进行设置(我手头没有modem说明书)
    将这个设置命令放在/etc/rc.d/rc.local中就行了。

    min




    > 我用ppp已经可以接通我的ISP,所以想用PPPD做个拨号服务,但是翻了一遍ppp-howto中文,西文的都看了,还是没有调试通过。
    >
    > 1) linux a2z 这本书上写得过于简单,
    > 大意是新建一个用户。 把他的shell 换成
    > exec pppd 38400 modem asyncmap 0 proxyarp 194.61.21.2:0.0.0.0
    > 这样我疑惑如果是telnet 近来, 的确可以看见
    > y}#.!}!}!} }8}!}$}%U}\"}&} } } } }%}& ...}\}\"}(}\"} .~y}
    > 这种字样。
    > 但是如果拨号近来,到验证 用户和密码的时候就没有下文了.
    > 我的/etc/ppp/pap-secret是设置了的。


    本来就十分简单嘛.
    看来你用的是瘟9x作客户, 那么有没有在拨号后打开终端窗口呢?
    按理论上说, 你可以改改/etc/mgetty+sendfax/login.config , 把/AutoPPP/前
    面的#去掉, 这样就不需要打开终端窗口了

    /*-----
    I think you should re-compile mgetty to support AutoPPP.
    Installmgetty-1_1_9-3_src.rpm
    cd /usr/src/redhat/SPECS
    rpm -bp mgetty.SPECS
    cd /usr/src/redhat/BUILD/mgetty/
    edit Makefile (uncomment AutoPPP)
    rpm -bb /usr/src/redhat/SPECS/mgetty.SPECS
    rpm -UvH /usr/src/redhat/RPMS/mgetty.rpm

    If you use AutoPPP, you should specify PAP or CHAP in login.config
    -------*/

    我的/etc/passwd里这么写的:
    ppp:x:507:508:PPP USER:/home/ppp:/etc/ppp/ppplogin

    /etc/ppp/ppplogin 这么写:
    #!/bin/sh
    /usr/sbin/pppd -detach modem crtscts lock proxyarp lock

    ~ppp/.ppprc 这么写:
    login
    lock
    idle 300
    ms-wins 192.168.1.100
    ms-dns 192.168.1.100

    /etc/ppp/options.modem 这么写
    192.168.1.100:192.168.1.201

    /etc/ppp/pap-secrets 这么写
    # Secrets for authentication using PAP
    # client server secret IP addresses
    username1 * userpass1
    username2 * userpass2

    这样, 远程用户拨号时, 在95拔号窗口里写他们自已在局域网里的用户名和口令,
    拨号上来, 在终端窗口里用ppp和相应的口令登录, 出现垃圾后, F7就可以了, 得
    到的IP是192.168.1.201, DNS和WINS也同时设置成了192.168.1.100 , 而且出现
    了NT登录脚本, 说明他们上了NT/Samba网, 以后就和在办公室一样了.

    > 2) 感觉上调试路由器的时候,电话过来, 还有line up 这样的反映。
    > 在linux 我感觉不到。好象他没有感知 /dev/ttyS0上的变化..
    > 我想象拨号服务,应该是linux 感知电话进来。然后给/dev/ttyS0 发出相应的
    > 控制。不知道对不对?
    >

    你有没有在/etc/inittab 里加这句:
    d1:2345:respawn:/sbin/mgetty modem

    要是不加的话, 当然不会理会电话铃了. 在这之前, 要

    cd /dev
    rm modem
    ln ttyS0 modem ( 注意, 是硬连接, 不是符号连接)

    以后所有有关MODEM的操作, 使用的设备都必须是/dev/modem ( 或者/dev/ttyS0,
    反正大家都得一样, 不然会有冲突)




    > My /etc/inittab is
    > S1:2345:respawn:/sbin/vgetty ttyS1
    > > a voice machine. it\s pretty cool> Mgetty, unlike uugetty, or psgetty, play
    > a trick on modem port. The earlier version lock the modem, and disable you
    > to dial-out, and they use ATS=x, to tell modem to wake up in x rings. Mgetty
    > simply listen the modem port, but if you want to dial out, he will remove
    > his lock file and go away.

    vgetty 也可以, 只是声音不太好听
    关于不能拨号出去的问题很好办, 只要把你chat脚本里的ATZ换成 \\d\\d\\d+++\\d\\d\\dATZ 就
    可以了

    > I use vgetty, if somebody dial-in, he will hear a short greeting message,
    > after that, if data tone is heard,
    > the data connection will be made, if no other tone is heard, he will issue a
    > beep and start to record. If a fax is calling, the nortorious T30 tone will
    > be detected in the very begining. So everything is under control.
    > Have Fun!
    >
    > --
    > .......................................
    > Chi Cheng, simoncc@usa.net Tel:65302080
    > http://hug.yeah.net ICQ: 20906268


    -------------------------------------------------------------------------------


    > > > > > 我的modem硬件已设好,现在想建一个PPP的服务器
    > > > > > 不知如何是好,是不是该设一些modem 初始化参数呢?
    > > > > > 请各位前辈多多指教

    > > > > 详细步骤请阅读PPP-HOWTO。 需要指出的是, PPP 本身并不区分客户端和
    > > > > 服务器端。只是在介绍时为了方便, 才说这两个术语。
    > > > > 根据我的体会,在做PPP服务器时的最好办法是安装
    > > > > CYCLADES公司的MULTIPORT BOARD,
    > > > > 他们提供的8端口的MULTIPORT板子的确与LINUX 一起工作得非常好。
    > > > > 这一点国内的LINUXER们似乎知道的还不多。
    > > > >
    > > > > 致意,
    > > > > FREDERIC

    > > > 非常感谢您的帮助,但是我现在遇到的问题是,我从一个client 拨入时,
    > > > 连在server 端的modem 不能正确响应,我不知这是否跟ppp设置有关,
    > > > 我现在能确认我的 multiport board 设置是对的
    > > > 希望继续予以指教,谢谢

    > > 好了,现在的问题已经比较明确。 首先请您从服务器端向外拨号,
    > > 看看MODEM有无反应? 如果没有,则说明您没有安装MODEM的驱动程序,
    > > (在SUSE下,回到YAST,选择串行COM端口即可)。 如果您能向外拨号,
    > > 而且正常工作,则说明在UUGETTY或者MGETTY的配置上有问题,请仔细检查您的
    > > UUGETTY/MGETTY配置程序吧,问题一定在那里。

    > 您能否告诉我怎样安装modem的驱动,
    > 及怎样配置uugetty,我的机器装的是Linux 2.0.29,只有cyclade multiport board
    > 的驱动,是否用它就行.多多麻烦.

    关于你的第一个问题:
    从功能上看,MGETTY比UUGETTY先进(MGETTY具有传真功能), 所以希望你
    采用MGETTY。 请先在/DEV/下查看一下,是否安装MGEETY?
    MODEM的安装方法在各个LINUX版本上是一致的。在LINUX下,MODEM的设备文件
    名称一般为/DEV/TTYS0,或者TTYS1, TTYS2, TTYS3,它们分别对应于DOS下的
    COM1至COM4。 伪终端分主从,主伪终端为/DEV/PTYP0等,从伪终端为/DEV/TTYP0等。
    我记得网上有站点专门介绍MGETTY的设置,我找到后再告诉你。 现在你可以
    MAN MGETTY 先阅读一下联机帮助文档。

    尝试以下命令:
    # tty
    看看输出的TTY文件是什么。

    以下命令可以建立拨出拨入MODEM需要的文件:
    # mknod /dev/ttyd0 c 12 1
    # mknod /dev/cua0 c 12 129

    关于你的第二个问题:
    CYCLADES的MULTIPORT通信线路板在销售时附带有安装程序,它会自动地
    检测LINUX的设备配置文件,然后为你在LINUX内核中安装一切必要的驱动程序。

    您好,
    非常感谢您,
    我的机器上好象没有安装mgetty,(没有mgetty命令)
    连modem 的 设备文件是/dev/ttyS19-ttyS23
    tty 命令的输出是/dev/tty1
    mknod /dev/ttyS19 c 12 1 ,告知文件已存在

    希望再次得到您的帮助,多谢

    pls check the if you have /mgetty+sendfax/ directory under /etc, and if
    you have the following files under /mgetty+sendfax/

    - dialin.config
    - mgetty.config
    - login.config

    if you have, pls send me your files (you can remove the secret password data).
    Also I have found the site about the mgetty for you, pls read the following info.

    Best,
    Frederic


    http://www.leo.org/~doering/mgetty/FAQ


    发布人:netbull 来自:东方Linux