免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5555 | 回复: 5

[操作系统] 使用pppd拨号3G做路由器不稳定 [复制链接]

论坛徽章:
0
发表于 2012-06-04 11:45 |显示全部楼层
大家好,我现在用arm linux做了一个路由器,出口是用pppd拨号3G的。
pppd拨号脚本参考网上资料,已经能够ping通外网了。
我用以下命令设置了路由功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.10.0/24  -o ppp1 -j MASQUERADE

现在我的PC用网线跟linux设备相连,在PC上也能ping通外网,浏览器可以打开网页,可以说,路由器功能已经实现了。
但是,进一步的测试发送,这个路由器很不稳定,我打开暴风影音在线看视频,1、2分钟网络就失去响应了,但linux上的pppd并没有退出,
这时候我kill掉pppd,再重新启动pppd拨号,网络又通了,但很快又没响应了。

我用的pppd版本是2.4.5,linux kernel是2.6.32.17,目前在linux上只是简单的测试了发送UDP数据包和ping外网,在linux上发送数据短时间测试都是正常的。
在PC上ping外网也是正常的,就是打开网页多了或者看视频网络就会失去响应,pppd也没有什么出错的log输出。

请大家帮忙看看,有什么线索没?
谢谢了。

论坛徽章:
0
发表于 2012-06-04 12:09 |显示全部楼层
回复 1# lidehua1975


    我用的2.4的ppp和2.4的内核,2G拨号上网,很稳定,会不会与你的3G网络有关呢?

论坛徽章:
0
发表于 2012-06-11 10:46 |显示全部楼层
drivers/usb/serial/option.c: option_write: write (143 chars)
drivers/usb/serial/option.c: option_write: endpoint 1 buf 1
drivers/usb/serial/option.c: option_write: wrote (did 143)
drivers/usb/serial/option.c: option_outdat_callback
drivers/usb/serial/option.c: option_outdat_callback
drivers/usb/serial/option.c: option_write: write (250 chars)
drivers/usb/serial/option.c: option_write: endpoint 1 buf 0
drivers/usb/serial/option.c: option_outdat_callback
drivers/usb/serial/option.c: option_write: wrote (did 250)
drivers/usb/serial/option.c: option_write: write (250 chars)
drivers/usb/serial/option.c: option_write: endpoint 1 buf 0
卡死后,ping不通外网,从底层驱动来看,有出去的数据,但没有回来的数据;
在正常情况下ping外网,是有数据回来的,如下面的log:drivers/usb/serial/option.c: option_chars_in_buffer: 0
drivers/usb/serial/option.c: option_set_termios
drivers/usb/serial/option.c: option_send_setup
drivers/usb/serial/option.c: option_chars_in_buffer: 0
drivers/usb/serial/option.c: option_chars_in_buffer: 0
drivers/usb/serial/option.c: option_write: write (45 chars)
drivers/usb/serial/option.c: option_write: endpoint 1 buf 0
drivers/usb/serial/option.c: option_outdat_callback
drivers/usb/serial/option.c: option_write: wrote (did 45)
drivers/usb/serial/option.c: option_indat_callback: c1ab7b80
drivers/usb/serial/option.c: option_indat_callback: c1ab7b00

还是不知道为什么会出现这样的情况。

论坛徽章:
0
发表于 2012-06-13 09:01 |显示全部楼层
drivers/usb/serial/option.c: option_indat_callback: c257e480
drivers/usb/serial/option.c: option_indat_callback: nonzero status: -71 on endpoint 02.
#define    EPROTO        71    /* urb 发生错误: 在传送中发生bitstuff 错误或硬件没有及时收到响应帧 */

从log来看,好像是USB的input urb接收失败,还要继续调试了。

论坛徽章:
0
发表于 2014-06-04 11:47 |显示全部楼层
怎么解决?我也遇到问题。我是新手呀。

论坛徽章:
0
发表于 2016-06-28 20:54 |显示全部楼层
楼主你好!,想问下你是用3G做出口,那给其它主机放wifi的是用wifi模块吗?~ 最近也在做相似的东西,求指教一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP