slack adsl拨号问题

其他Linux/Unix/BSD/OSX等发行版讨论
回复
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

slack adsl拨号问题

#1

帖子 hao123liu » 2008-09-12 10:18

slk12.1,北方网通adsl。201电话——猫——交换机——电脑
原来在arch下pppoe拨号成功,无法上网。执行route add defaults eth0即可。
slack下,pppoe-setup成功 pppoe-start失败,怀疑和交换机有关,直连猫,失败。
不知道是什么问题,又或者哪个包没装?(一开始没选net-tools等包,ifconfig都没有) :D

ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:13:ce:99:3a:a6
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:23 Base address:0x8000 Memory:b0000000-b0000fff

eth1 Link encap:Ethernet HWaddr 00:0f:b0:ee:85:e7
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:22

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

eth0收发数据均为0,正常否?拨号连接成功前,交换机能起dhcp作用吗?

/etc/rc.d/rc.inet1

#! /bin/sh
# /etc/rc.d/rc.inet1
# This script is used to bring up the various network interfaces.
#
# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv)

############################
# READ NETWORK CONFIG FILE #
############################

# Get the configuration information from /etc/rc.d/rc.inet1.conf:
. /etc/rc.d/rc.inet1.conf

###########
# LOGGING #
###########

# If possible, log events in /var/log/messages:
if [ -f /var/run/syslogd.pid -a -x /usr/bin/logger ]; then
LOGGER=/usr/bin/logger
else # output to stdout/stderr:
LOGGER=/bin/cat
fi

############################
# DETERMINE INTERFACE LIST #
############################

# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum
# of 6 interfaces, but you can easily enlarge the interface limit
# - send me a picture of such a box :-).
# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface.
# This way, the new script is compatible with older rc.inet1.conf files.
# The IFNAME array will be used to determine which interfaces to bring up/down.
MAXNICS=6
i=0
while [ $i -lt $MAXNICS ];
do
IFNAME[$i]=${IFNAME[$i]:=eth${i}}
i=$(($i+1))
done
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: List of interfaces: '${IFNAME[@]}'" | $LOGGER
fi

######################
# LOOPBACK FUNCTIONS #
######################

# Function to bring up the loopback interface. If loopback is
# already up, do nothing.
lo_up() {
if grep lo: /proc/net/dev 1> /dev/null ; then
if ! /sbin/ifconfig | grep "^lo" 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo 127.0.0.1" | $LOGGER
/sbin/ifconfig lo 127.0.0.1
echo "/etc/rc.d/rc.inet1: /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo" | $LOGGER
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
fi
fi
}

# Function to take down the loopback interface:
lo_down() {
if grep lo: /proc/net/dev 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo down" | $LOGGER
/sbin/ifconfig lo down
fi
}

#######################
# INTERFACE FUNCTIONS #
#######################

# Function to bring up a network interface. If the interface is
# already up or does not yet exist (perhaps because the kernel driver
# is not loaded yet), do nothing.
if_up() {
# Determine position 'i' of this interface in the IFNAME array:
i=0
while [ $i -lt $MAXNICS ]; do
[ "${IFNAME[$i]}" = "${1}" ] && break
i=$(($i+1))
done
# If the interface isn't in the kernel yet (but there's an alias for it in
# modules.conf), then it should be loaded first:
if ! grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # no interface yet
if /sbin/modprobe -c | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER
/sbin/modprobe ${1}
fi
fi
if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # interface exists
if ! /sbin/ifconfig | grep -w "${1}" 1>/dev/null || \
! /sbin/ifconfig ${1} | grep "inet addr" 1> /dev/null ; then # interface not up or not configured
if [ ! "${HWADDR[$i]}" = "" ]; then # Set hardware address _before_ the interface goes up:
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} hw ether ${HWADDR[$i]}" | $LOGGER
/sbin/ifconfig ${1} hw ether ${HWADDR[$i]}
fi
if [ ! "${MTU[$i]}" = "" ]; then # Set MTU to something else than 1500
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} mtu ${MTU[$i]}" | $LOGGER
/sbin/ifconfig ${1} mtu ${MTU[$i]}
fi
if [ -x /etc/rc.d/rc.wireless ]; then
. /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters
fi
if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up
[ ${DHCP_HOSTNAME[$i]} ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}"
[ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -R"
[ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -N"
[ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G"
[ ${DHCP_IPADDR[$i]} ] && DHCP_OPTIONS="$DHCP_OPTIONS -s ${DHCP_IPADDR[$i]}"
echo "Polling for DHCP server on interface ${1}:"
# If you set a timeout, you get one, even if the kernel doesn't think that
# your device is connected, in case /sys isn't right (which it usually isn't
# except right after the device is loaded, when it usually is):
if [ "${DHCP_TIMEOUT[$i]}" = "" ]; then
ifconfig ${1} up && sleep 1
CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)"
ifconfig ${1} down
if [ "$CONNSTATUS" = "0" ]; then
# The kernel has just told us the cable isn't even plugged in, but we will
# give any DHCP server a short chance to reply anyway:
echo "No carrier detected on ${1}. Reducing DHCP timeout to 10 seconds."
DHCP_TIMEOUT[$i]=10
fi
fi
# 30 seconds should be a reasonable default DHCP timeout. 60 was too much. :-)
echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-30} ${DHCP_OPTIONS} ${1}" | $LOGGER
/sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-30} ${DHCP_OPTIONS} ${1}
else # bring up interface using a static IP address
if [ ! "${IPADDR[$i]}" = "" ]; then # skip unconfigured interfaces
# Determine broadcast address from the IP address and netmask:
BROADCAST[$i]=`/bin/ipmask ${NETMASK[$i]} ${IPADDR[$i]}|cut -f1 -d' '`
# Set up the network card:
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]}" | $LOGGER
/sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]}
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: ${1} interface is not configured in /etc/rc.d/rc.inet1.conf" | $LOGGER
fi
fi
fi
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: ${1} is already up, skipping" | $LOGGER
fi
fi
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: ${1} interface does not exist (yet)" | $LOGGER
fi
fi
}

# Function to take down a network interface:
if_down() {
# Determine position 'i' of this interface in the IFNAME array:
i=0
while [ $i -lt $MAXNICS ]; do
[ "${IFNAME[$i]}" = "${1}" ] && break
i=$(($i+1))
done
if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then
if [ "${USE_DHCP[$i]}" = "yes" ]; then
echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER
/sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ifconfig ${1} down
sleep 1
else
echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} down" | $LOGGER
/sbin/ifconfig ${1} down
fi
if [ -x /etc/rc.d/rc.wireless ]; then
. /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any.
fi
fi
}

#####################
# GATEWAY FUNCTIONS #
#####################

# Function to bring up the gateway if there is not yet a default route:
gateway_up() {
if ! /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then
if [ ! "$GATEWAY" = "" ]; then
echo "/etc/rc.d/rc.inet1: /sbin/route add default gw ${GATEWAY} metric 1" | $LOGGER
/sbin/route add default gw ${GATEWAY} metric 1 2>&1 | $LOGGER
fi
fi
}

# Function to take down an existing default gateway:
gateway_down() {
if /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then
echo "/etc/rc.d/rc.inet1: /sbin/route del default" | $LOGGER
/sbin/route del default
fi
}

# Function to start the network:
start() {
lo_up
for i in ${IFNAME[@]} ; do
if_up $i
done
gateway_up
}

# Function to stop the network:
stop() {
gateway_down
for i in ${IFNAME[@]} ; do
if_down $i
done
lo_down
}


############
### MAIN ###
############

case "$1" in
'start') # "start" brings up all configured interfaces:
start
;;
'stop') # "stop" takes down all configured interfaces:
stop
;;
'restart') # "restart" restarts the network:
stop
start
;;
*_start) # Example: "eth1_start" will start the specified interface 'eth1'
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_up $INTERFACE
gateway_up
;;
*_stop) # Example: "eth0_stop" will stop the specified interface 'eth0'
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_down $INTERFACE
;;
*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_down $INTERFACE
sleep 1
if_up $INTERFACE
gateway_up
;;
'up') # "up" does the same thing as "start"
start
;;
'down') # "down" does the same thing as "stop"
stop
;;
*_up) # "*_up" does the same thing as "*_start"
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_up $INTERFACE
gateway_up
;;
*_down) # "*_down" does the same thing as "*_stop"
INTERFACE=`echo $1 | /bin/cut -d '_' -f 1`
if_down $INTERFACE
;;
*) # The default is to bring up all configured interfaces:
lo_up
for i in ${IFNAME[@]} ; do
if_up $i
done
gateway_up
esac

# End of /etc/rc.d/rc.inet1

有劳各位了。
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
kangtian
帖子: 336
注册时间: 2007-04-22 13:14

#2

帖子 kangtian » 2008-09-12 10:41

我发现你的eth0和eth1都没有ip地址。
是不是没有开启dhcp?开启之!
或者直接静态指定ip:
ifconfig eth0 192.168.0.2
ifconfig eth1 192.168.0.3
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#3

帖子 hao123liu » 2008-09-12 15:50

kangtian 写了:我发现你的eth0和eth1都没有ip地址。
是不是没有开启dhcp?开启之!
或者直接静态指定ip:
ifconfig eth0 192.168.0.2
ifconfig eth1 192.168.0.3

试过 dhcpcd eth0
也不行。马上试试静态的。
不过win中,也没指定静态IP,为啥就可以呢?
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#4

帖子 hao123liu » 2008-09-12 15:59

ifconfig eth0 192.168.0.6
预料之中地失败。呵呵。
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

#5

帖子 aBiNg » 2008-09-12 17:25

dhclient eth0

输出结果呢?
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#6

帖子 hao123liu » 2008-09-12 17:46

bash-3.1# dhclient eth0 >>dhclient
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth0/00:13:ce:99:3a:a6
Sending on LPF/eth0/00:13:ce:99:3a:a6
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 14
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
No DHCPOFFERS received.
No working leases in persistent database - sleeping.


似乎还是没连上。
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
头像
SWX
帖子: 181
注册时间: 2006-07-30 9:31

#7

帖子 SWX » 2008-09-13 1:22

既然是adsl拨号那就跟dhclient没多大关系吧

N系列的包是一定都要装上的。

你开始设置的时候,难道没让你设置netconfig?
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#8

帖子 hao123liu » 2008-09-13 13:58

SWX 写了:既然是adsl拨号那就跟dhclient没多大关系吧

N系列的包是一定都要装上的。

你开始设置的时候,难道没让你设置netconfig?
我承认我错了,N系列的包,就选了几个自认为会用到的,其他统统取消。。 :oops:
今天直连猫,失败依然,症状依旧。我想是包的问题了。但全装的话有无用软件不太舒心。我决定这次只把带mail字样的去掉。
不知道slacker们如何解决? :D
netconfig运行过,选dhcp ip也不行。
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#9

帖子 hao123liu » 2008-09-13 18:31

重装了,还是不行。
包肯定没问题。因为刚在图书馆可以获得动态分配的无线IP,可在宿舍情况依旧。
啊啊,郁闷了。
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#10

帖子 hao123liu » 2008-09-13 19:07

连上了,兴奋。
之前错误的原因很弱。
在ub和arch中,我的有线网卡都是eth0,于是我想当然的在pppoe-setup中设置了eth0。。。
呵呵。
机缘巧合的,dhclient eth1,提示获得IP,接着就能连上了。 :D
不过现在能连上还是上不了网,与DNS无关,因为直接ping IP也不行。
anyway,看到希望的曙光了。
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
头像
SWX
帖子: 181
注册时间: 2006-07-30 9:31

#11

帖子 SWX » 2008-09-13 21:49

呵呵,解决了的话,说一下
头像
hao123liu
帖子: 887
注册时间: 2007-02-11 13:27
联系:

#12

帖子 hao123liu » 2008-09-14 0:15

All things right now and I post this in slackware :D

initially I could connect to pppoe but not internet, nor ping.
after searching I run commends following:
#route add default dev ppp0
Then it's OK.

kangtian
aBiNg
SWX
thanks for your help!,hope one-day i can be an experience user like you :D
RandomWalk@随机漫步

Slackware12.2 && KDE3.5.10
回复