Linux 版 (精华区)
发信人: netiscpu (说不如做), 信区: Linux
标 题: 回拔经验谈
发信站: 哈工大紫丁香 (Tue May 18 08:29:44 1999), 转信
NJLUG 1998.12.26 LinuXmas联谊会 征文比赛 参赛作品
作者 : 周健成
Email: jmzjc@126.com
一.Linux与Linux之间的互拔:
请看图一:
我家里: 办公室:
机器名:j128 机器名:vms68
OS: RedHat5.1 OS: RedHat5.1
IP: 192.168.88.128 <----电话网----> IP: 192.168.89.68 <--->
Internet
| [ttyS0] [ttyS1] [ttyS0]
|网线
|
机器名:j003
OS: Win98
IP: 192.168.88.3
第一步要配置Linux为ppp服务器,允许拔入,如姚飞所说:
使用mgetty
(以下假设modem装在ttyS0)
cd /etc
vi inittab
add :
d1:2345:respawn:/sbin/mgetty ttyS0 # COM1口允许拔入
d2:2345:respawn:/sbin/mgetty ttyS1 # COM2口允许拔入
then: init q # 重读配置文件/etc/inittab
注意, 如果想拔号出去, pppd 使用的设备也必须是/dev/ttyS0或/dev/ttyS1,
而不是/dev/modem, 要不然是拨不出去的.
我这样做后,j128和vms68都可允许拔入,但还不是ppp server,还需要以下几步:
在vms68里:
adduser ppp #新加一个用户
passwd ppp #为ppp起个密码
在/home/ppp下建一个脚本ppplogin,内容如下:
exec /usr/sbin/pppd 115200 modem asyncmap 0 proxyarp \
192.168.89.68:192.193.89.69
##### LOCALIP:REMOTEIP
vi /etc/passwd
将这行ppp:xxxx:505:505:ppp acount:/home/ppp:/bin/bash
改为ppp:xxxx:505:505:ppp acount:/home/ppp:/home/ppp/ppplogin
在j128里:
adduser ppp #新加一个用户
passwd ppp #为ppp起个密码
在/home/ppp下建一个脚本ppplogin,内容如下:
exec /usr/sbin/pppd 115200 modem asyncmap 0 proxyarp \
0.0.0.0:0.0.0.0.0 ###等vms68分配ip地址
vi /etc/passwd
将这行ppp:xxxx:505:505:ppp acount:/home/ppp:/bin/bash
改为ppp:xxxx:505:505:ppp acount:/home/ppp:/home/ppp/ppplogin
下一步要配j128拔到vms68,这很简单,
跟拔到Internet是一样的,文件ppp-onvms68如下:
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=xxxx # The telephone number for the connection
ACCOUNT=ppp # The account name for logon (as in 'George Burns')
PASSWORD=xxxx # The password for this account (and 'Gracie Allen')
LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/home/ppp/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd /dev/ttyS0 115200 modem $LOCAL_IP:$REMOTE_IP \
defaultroute lock crtscts asyncmap 0 connect $DIALER_SCRIPT \
debug
现在配vms68拔到j128,文件ppp-onj128如下:
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=xxxx # The telephone number for the connection
ACCOUNT=ppp # The account name for logon (as in 'George Burns')
PASSWORD=xxxx # The password for this account (and 'Gracie Allen')
LOCAL_IP=192.168.89.68 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=192.168.89.69 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/home/ppp/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd /dev/ttyS1 115200 modem $LOCAL_IP:$REMOTE_IP \
lock crtscts asyncmap 0 connect $DIALER_SCRIPT \
debug
这里要注意LOCAL_IP和REMOTE_IP要给值,还有的是在pppd里没有defaultroute。
因为vms68还要拔上Internet,所以不要defaultroute。
在j128上用ppp-onvms68拔上vms68,连通后telnet vms68,执行以下命令:
nohup sleep 30;ppp-onj128
然后在j128上断线,等待vms68拔入。拔通后,在j128上要执行以下命令:
route add -net 192.168.89.0 gw 192.168.89.69 ppp0
route add default gw 192.168.89.69 ppp0
ipfwadm -F -a m -S 192.168.88.0/24 -D 0.0.0.0/0
现在可再telnet vms68,在vms68上拔号上网,这样j003可通过j128,再通
过vms68上网,我也不用付任何费用。
二.Win98与Linux之间的互拔:
请看图二:
我家里: 办公室:
机器名:j128 机器名:vms68
OS: RedHat5.1 OS: RedHat5.1
IP: 192.168.88.128 IP: 192.168.89.68 <--->
Internet
| [ttyS1] [ttyS0]
|网线 |
| |
机器名:j003 |
OS: Win98 ---------------------------
IP: 192.168.88.3 电话网
这里vms68要象第一步所说的,要配成允许拔入的ppp server。
这里主要是win98的配置,首先象上Internet那样,在拔号网络里新建一个连接,
要注意两点,一要设置连通后弹出终端窗口,二是最主要的,在“控制面板”里
选“调制解调器”,选用来连线的modem,选“属性”按钮,选“连接”,再选
“高级”按钮,再在“附加设置”里输入&C0S0=001。
为什么要这样做?因为win98自带的ppp client会自动退出当远端ppp server挂线
时,因此要骗一骗win98,要modem不要报告断线,并自动应答拔入。&C0就是要
modem不要检测carrier,s0=001要modem在响一下后就应答。
现在配vms68拔到j003,文件ppp-onj003如下:
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=xxxx # The telephone number for the connection
#ACCOUNT=ppp # The account name for logon (as in 'George Burns')
#PASSWORD=xxxx # The password for this account (and 'Gracie Allen')
LOCAL_IP=192.168.89.68 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=192.168.89.69 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ###ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/home/ppp/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd /dev/ttyS1 115200 modem $LOCAL_IP:$REMOTE_IP \
lock crtscts asyncmap 0 connect $DIALER_SCRIPT \
debug
这里要注意LOCAL_IP和REMOTE_IP要给值,还有的是在pppd里没有defaultroute。
因为vms68还要拔上Internet,所以不要defaultroute。还有这里没有ACOUNT和
PASSWORD,因为WIN98的PPP CLIENT不要用户名和密码,因此在PPP-ON-DIALER里
要把送ACOUNT和PASSWORD的那两行去掉。
J003通过拔号拔上VMS68后,要TELNET VMS68,在VMS68里执行以下脚本:
kill `cat /var/run/ppp0.pid` ###注意如果是用ppp1,就用ppp1.pid
nohup sleep 30;ppp-onj003
这里要特别注意的一点是一定要在linux里断线,因为在WIN98里断线,则WIN98
的PPP CLIENT就会退出,就不会应答呼叫。
现在WIN98和LINUX之间就可以实现回拔了,但要注意WIN98的路由问题。
在win98下要自配一下路由,在win98的目录里有route程序,它的格式如下:
route print/add/delete/change (直接打route就有帮助看)
象我的j003,在没有拔号时,用route print得到如下信息:(行号是我加上的)
Active Routes:
Network Address Netmask Gateway Address Interface Metr
ic 1 0.0.0.0 0.0.0.0 192.168.88.128 192.168.88.3
1 2 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
1 3 192.168.88.0 255.255.255.0 192.168.88.3 192.168.8
8.3 1 4 192.168.88.3 255.255.255.255 127.0.0.1 127
.0.0.1 1 5 192.168.88.255 255.255.255.255 192.168.88.3 192
.168.88.3 1 6 224.0.0.0 224.0.0.0 192.168.88.3
192.168.88.3 1 7 255.255.255.255 255.255.255.255 192.168.88.3
0.0.0.0 1
通过拔号网络拔入vms68后,用route print得到如下信息:
Active Routes:
Network Address Netmask Gateway Address Interface Metri
c 1* 0.0.0.0 0.0.0.0 192.168.89.69 192.168.89.69
1 2* 0.0.0.0 0.0.0.0 192.168.88.128 192.168.88.
3 2 3 127.0.0.0 255.0.0.0 127.0.0.1 127.0
.0.1 1 4 192.168.88.0 255.255.255.0 192.168.88.3 192.1
68.88.3 2 5 192.168.88.3 255.255.255.255 127.0.0.1
127.0.0.1 1 6 192.168.88.255 255.255.255.255 192.168.88.3
192.168.88.3 1 7 192.168.89.0 255.255.255.0 192.168.89.69
192.168.89.69 1 8 192.168.89.69 255.255.255.255 127.0.0
.1 127.0.0.1 1 9 224.0.0.0 224.0.0.0 192.168
.88.3 192.168.88.3 1 10 224.0.0.0 224.0.0.0 192.1
68.89.69 192.168.89.69 1 11 255.255.255.255 255.255.255.255 19
2.168.89.69 192.168.89.69 1 注意我打*号的地方,从WIN98拔号到LINUX
,WIN98会自动配置路由,从LINUX拔号到WIN98? ?
WIN98就得手工配置路由,打*号的就是要在LINUX拔号到WIN98时要手工加上的。
现在TELNET上VMS68执行回拔脚本,连通后用route print得到如下信息:
Active Routes:
Network Address Netmask Gateway Address Interface Metr
ic 1 0.0.0.0 0.0.0.0 192.168.88.128 192.168.88.3
1 2 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
1 3 192.168.88.0 255.255.255.0 192.168.88.3 192.168.8
8.3 1 4 192.168.88.3 255.255.255.255 127.0.0.1 127
.0.0.1 1 5 192.168.88.255 255.255.255.255 192.168.88.3 192
.168.88.3 1 6 192.168.89.0 255.255.255.0 192.168.89.69 1
92.168.89.69 1 7 192.168.89.69 255.255.255.255 127.0.0.1
127.0.0.1 1 8 224.0.0.0 224.0.0.0 192.168.89.6
9 192.168.89.69 1 9 224.0.0.0 224.0.0.0 192.168.
88.3 192.168.88.3 1 10 255.255.255.255 255.255.255.255 192.16
8.89.69 192.168.89.69 1 现在可看到跟上面的不同了,要在WIN98的DOS窗
口下执行以下批处理: route change 0.0.0.0 mask 0.0.0.0 192.168.88.128 met
ric 2 route add 0.0.0.0 mask 0.0.0.0 192.168.89.69
现在再用route print就会得到如下信息:
.
Active Routes:
Network Address Netmask Gateway Address Interface Metr
ic 1 0.0.0.0 0.0.0.0 192.168.89.69 192.168.89.69
1 2 0.0.0.0 0.0.0.0 192.168.88.128 192.168.88.3
2 3 127.0.0.0 255.0.0.0 127.0.0.1 127.0.
0.1 1 4 192.168.88.0 255.255.255.0 192.168.88.3 192.16
8.88.3 1 5 192.168.88.3 255.255.255.255 127.0.0.1
127.0.0.1 1 6 192.168.88.255 255.255.255.255 192.168.88.3
192.168.88.3 1 7 192.168.89.0 255.255.255.0 192.168.89.69
192.168.89.69 1 8 192.168.89.69 255.255.255.255 127.0.0.
1 127.0.0.1 1 9 224.0.0.0 224.0.0.0 192.168.
88.3 192.168.88.3 1 10 224.0.0.0 224.0.0.0 192.16
8.89.69 192.168.89.69 1 11 255.255.255.255 255.255.255.255 192
.168.89.69 192.168.89.69 1
现在可TELNET上VMS68,在VMS68上拔号到INTERNET,现在J003可通过VMS68上网了。
一些不足的地方:
一.要手工的地方太多,不大方便,请朋友们再改良一下。
二.只能用两个串口,我没有玩过多用户卡,请有经验的朋友指点一下在LINUX下
用那种多用户卡最好,在那有卖,多少钱?
请与我联系:jmzjc@990.net
---------------------------------------------------------------------------
-----
版权所有 (C) 1998 NJLUG
出版于《Linux公报》1998年12月 中文版第二期
---------------------------------------------------------------------------
-----
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:203.174毫秒