最新消息:用博客记录点滴生活。与您共同关注互联网,分享互联网。

DD-WRT禁用PPPOE的echo请求

路由刷了dd-wrt,一直琢磨着如何绕过网管对路由的限制。开始以为是对非windows主机拨号都有限制,后来用wireshark抓包发现只是接入设备对echo请求没有响应,导致超时后自动断开。在windows下默认不发送请求,只回应来自对方的echo请求,找到问题的根源后只需要修改就行了。
在web管理界面将路由器的广域网设置为PPPoE拨号上网,输入正确的账号密码,保存后再通过ssh登录,查看进程发现pppd已经运行了,后面的参数可以看到调用的配置文件路径。

root@777:~# ps | grep ppp 
1074 root      1324 S    pppd file /tmp/ppp/options.pppoe

打开/tmp/ppp/options.pppoe

root@777:~# cat /tmp/ppp/options.pppoe
plugin /usr/lib/rp-pppoe.so
nic-eth1
noccp
nomppc
noipdefault
noauth
defaultroute
noaccomp
nobsdcomp
nodeflate
nopcomp
nomppe
usepeerdns
user ‘PPPoe用户名’
password ‘PPPoe密码’
default-asyncmap
mtu 1492
mru 1492
persist
lcp-echo-interval 3
lcp-echo-failure 20

最后面的两行就是要修改的地方了,不过这里要修改比较麻烦。/tmp目录下的东西是在开机后自动生成的,每次重启都要修改那也太麻烦了,/etc/config目录下也有个配置文件存在,且无法修改。最后想到dd-wrt是支持脚本的,于是弄了一段shell让它每次开机都自动运行。

cat /tmp/ppp/options.pppoe | sed -e "s/lcp/#lcp/g" > /tmp/ppp/options.pppoe.new
if [ -f "/tmp/ppp/options.pppoe.new" ]; then
killall redial
killall pppd
sleep 10
/usr/sbin/pppd file /tmp/ppp/options.pppoe.new > /dev/null
fi

将options.pppoe文件中的lcp替换成#lcp也就是注释了那两个参数,重启pppd加载新的配置文件,这样就不发送echo请求了。


正文部分到此结束

声明:本文采用 BY-NC-SA 协议进行授权,转载还请注明:http://www.777s.me/dd-wrt-pppoe.html - 777's Blog