歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 如何安裝PPPServer

如何安裝PPPServer

日期:2017/2/27 14:17:57   编辑:更多Linux
  最近因工作需要,要在Linux上裝個PPPserver,接受撥接進來的電 話,連上整個公司的ethernet網路,再經由router接上internet,過程並 不順利,整台Linux有許多地方需要設定,為避免大家浪費許多無謂的時間, 所以有這篇FAQ的產生,我所使用的是Linux1.0.9這份FAQ並沒有完整的介 紹Linux PPP的部份,只針對PPP server的部份,把我安裝的經驗寫出來, 適合已裝上PPP,並能用來連接其他PPP server的人。 若想從無到有,你可 以三考開放系統與網路雜志1994年,八月份出版, 曾瑞源先生的Internet低 廉上網,再三考本篇及各種FAQ就可以建立一個PPP server了。 若想更進一 步, 讓不同網路的PPP server相連,可以造成一 個router,讓兩個網路 互通有無,但這部份我沒試過,請各位努力研究。要建立PPP server有三個步驟: 1.你的modem必須要能接電話。 2.你的linux必須能透過serial line顯示login prompt。 3.建立呼叫pppd的account 一、 如 何 讓modem接 電 話。 我不會用linux來設定,所以用windows 3.1的終端機來設定modem, 執行windows的終端機。對modem下ATS0=1,這是叫modem在電話響一聲後就接, =2就是響兩聲。AT&W,把剛設的狀態存起來,今後每當電話響一聲,modem就 接起來了。 二、 如何透過serial line顯示login prompt。 在/etc底下,有個inittab,有段內容要設定如下: # Serial lines 這是我的設定, 可能與你的不同。 #s1:45:respawn:/sbin/getty ttyS0 19200 vt100 s2:45:respawn:/sbin/getty ttyS1 19200 vt100 每一行之前若加上#,代表注解。 意義為 id:runlevel:action:/etc/getty [options] line [speed [term [lined]]] 其getty必須為getty_ps,這部份說明可以在Serial-HOWTO中找到。有了這段設定, 重頭開機,並連上後,若下ps aux指令,應可看到一些資料,其中某些欄位已省略。 .... root 88 232 v02 S 10:58 0:00 /sbin/getty tty2 3840 root 88 233 v03 S 10:58 0:00 /sbin/getty tty3 3840 root 92 264 psf S 11:33 0:00 /sbin/getty ttyS1 19200 .. .. /dev/ttyS1是給撥進來的connection使用的。 /dev/cua1是撥出去用的。 以上兩者皆為com2到目前為止,如果用modem撥進來,將可出現login prompt的畫面如 下: login: 此時整條serial line已通,可以login,並下一些簡單的命令, 但local端和remote端並未開始商議PPP。 三、 為了提供PPP service,我們要建立一個account,如:ppp01,他的login shell可 以把pppd叫起來?nbsp;並和對方溝通。作法如下:下一adduser命令 linux>adduser ----------------------這 以 下 為adduser AP的user interface Adding a new user. The username should be not exceed 8 characters in length, or you many run into problems later. Enter login name for new account (^C to quit): ppp01 Editing information for new user [ppp01] Full Name: ppp01 GID [100]:100 Checking for an available UID after 500 501...502...503...504...505...506...507...508... First unused uid is 509 UID [509]:509 Home Directory [/home/ppp01]: /home/usr/ppp01 Shell [/bin/bash]: /etc/ppp/ppplogin PassWord [ppp01]:xxxxx -------------------------以 上 為adduser 一般login shell為/etc/bash或/etc/csh, 但我們為了在login時就執行pppd, 建立一個ppp connection,所以寫了一 個executable scrip內容如下: ------------以 下 為/etc/ppp/ppplogin


#!/bin/csh exec /usr/etc/pppd passive netmask 255.255.255.0 proxyarp :140.xxx.xxx.xxx ------------以 上 為/etc/ppp/ppplogin passive意思是pppd一開始會嘗試negotiate,若沒有回應,則等待。 netmask 255.255.255.0設定subnet mask。 proxyarp add an entry to this systems ARP table。 ∶140.xxx.xxx.xxx設定撥進來那端的IP 關於pppd這部份的option,可用man pppd來研究。 做了adduser後/etc/passwd的內容如下: ppp01:(encrypted password):505:100:ppp01:/home/usr/ppp01:/etc/ppp/ppplogin 上述是server端建立的方法,至於client連接ppp server不多做介紹, 只指出要注意的地方,我使用的軟體是winspan 3.0,至於Trumpt winsock、linux pppd,只聽過沒用來連過,各位就多見諒了,其設定是大同小異的。Winspan裡有 個configure,裡頭有界面卡,選擇ppp、設定,設定baud rate等,重要的是local ip address,這個地方要和ppplogin中所設的:140.xxx.xxx.xxx一樣,因為這linux pppd 的設定方法,把這ip固定了,所以要設一樣的。至於要dynamic assign IP、或更多 條線,這就三考其他faq,我並沒有嘗試。至此大功告成,用ppp01帳號login後,pppd就 開始和對端商議PPP了。但事情真的這麽順利嗎?可能沒有,你可能碰到某些狀況如下: 1.modem可以接電話了,但接下來沒有任何動作,login prompt並不會出現。解法: /etc/default下, 有getty一開始要讀的檔案,其內容可能如下: CLEAR = NO HANGUP=YES IN99v="" ATZ\r OK WA99vFOR=RING CONNECT="" ATA\r CONNECT \s\A 你若是用man getty研究其option就知道為什麽不出現prompt,所以我改成 CLEAR = NO HANGUP=YES login prompt就出現了。 2.怎麽一切設對,ppp connection也建立起來了,可以從local端telnet到linux上了, 但卻無法到其他機器上。原因:pppd的ARP table並沒有成功建立,packet無 法route出 去。理論上pppd應可自動建立ARP table,但我不知哪裡設錯,無法建立。解法: 手動建立ARP table,可三考NET-2-HOWTO或NET-3-HOWTO的9.Routing。 # #Proxy ARP for those dialin users who will be using this #machine as a server # /sbin/arp -s 140.xxx.xxx.xxx 00:00:C0:AD:37:1C pub #End proxy arps 以arp -a指令將可發現? (140.xxx.xxx.xxx) at 00:00:C0:AD:37:1C 這樣才可以正確route出去。 注意:00:00:C0:AD:37:1C是ethernet address,也就是網路卡的hardware address, 在linux開機時注意看將可發現。 3.可以正常顯示,並當terminal Server,但用ppp帳號login後就斷了. 原因: pppd根本沒有執行,可在console以ppp帳號login,看該帳號是否的確可以執行PPPD. 希這篇能給那些想在辦公室或實驗室裝個PPP server的人一點幫助?nbsp;若本篇FAQ有錯誤 的地方,請多多見諒..



希這篇能給那些想在辦公室或實驗室裝個PPP server的人一點幫助?nbsp;若本篇FAQ有錯誤 的地方,請多多見諒..



Copyright © Linux教程網 All Rights Reserved