使openwrt路由器支持带回车换行符的PPPoE用户名

可恶的电信校园宽带,强制使用客户端限制共享。其实也没什么技术含量,还是PPPoE协议,就是把用户名按一定算法加密,客户端大部分功能都用在了限制共享上,搞得电脑都不正常了。问了电信工作人员,还说这客户端花了几百万呢,西安信利真能赚钱,还不支持非win的系统,呵呵。

加密用户名好办,客户端强行结束就能看到真实用户名了。可恶的是这宽带用户名前面加了回车换行符(\r\n),不仅windows自带拨号无法输入,一般的路由器也无法输入进去。经过google,发现tp-link的有办法,可以post数据或者直接把输用户名的表单改成textarea。但是tp-link原厂固件功能少,又经常死机,于是想用openwrt。仿照tp-link的方法无效,又找了改拨号脚本修改ppp源码的方式,都没成功。最后无意中发现了可以通过ppp插件的方式修改用户名。通过参考此源码,成功解决了在openwrt中使用回车换行符。

将上述sxplugin.c文件的用户名加密部分删除掉就基本可以了,然后按照上述链接的说明编译并将so文件传到路由器上即可,拨号时就会在设定的用户名前加上回车换行符。

我这提供编译好了的bcm63xx和ar71xx的so文件,对应的openwrt版本是12.09,ppp是2.3.5,so文件放在/usr/lib/pppd/2.4.5/下。 继续阅读使openwrt路由器支持带回车换行符的PPPoE用户名

路由器简单解决dns污染问题

dns污染是个很头疼的问题,曾试过很多方法和软件,效果都不太好。最近得知opendns有非正常端口,于是想是否能够利用此来避免dns污染呢?经过搜索,得到了方法,现分享一下。

opendns有53, 443, 5353三个端口,其中53支持传统的udp和非传统的tcp,因为udp协议自身的原因,导致了墙有机可乘。而使用tcp协议在客户端上实现起来很麻烦,在路由器上实现也可以,不过也要额外装软件。而另外的端口在路由器上使用就很简单了,墙也不会干扰。现在你需要一个openwrt之类的路由器(需默认装有dnsmasq),然后修改/etc/config/dhcp文件:

config ‘dnsmasq’
#option ‘resolvfile’ ‘/tmp/resolv.conf.auto’
option ‘noresolv’ ‘1’
list ‘server’ ‘208.67.222.222#5353’
list ‘server’ ‘208.67.220.220#5353’

保存后重启dnsmasq即可。更多信息可参考此篇文章

Debian/Centos下多ip的使用

有个多ip的vps,怎样充分利用ip资源呢?有个方法就是为不同的用户指定ip出口,然后以该用户身份运行程序,这个程序就会使用指定的ip了。
以下须在root权限下执行,无特殊说明以debian为例:
1、添加新用户:

adduser user1

【user1】就是用户名,运行后按提示设置密码等信息。
centos等系统要运行passwd设置密码。
2、利用iptables让某用户使用指定IP出口: 继续阅读Debian/Centos下多ip的使用

openwrt路由器上实现ssh端口转发

宿舍路由器想实现个登录远程ssh(也是openwrt系统),然后转发,宿舍所有的人都可以使用这个端口上网了,在网上查了些资源,结合openwrt wiki这篇实现了。

1.Openwrt自带dropbear转发SSH只能监听本地端口,首先安装openssh客户端。

2.本地(路由器上)生成密钥

3.将密钥上传到远程服务器上。由于我的远程服务器的也是个openwrt,ssh服务端是dropbear,以此为例,可以实现私钥方式登录dropbear。其他ssh服务端路径等可能不同。

4.登录远程服务器,转发端口

5.如果网络断开或重新拨号SSH会断开,可新建shell脚本监控ssh自动重新连接:

你也可以将上面这个监控脚本(比如叫autossh.sh,放在etc里)加入到开机启动里(文件/etc/rc.local),就能开机启动、保持监控了:

有些工作可以在winscp软件和luci中操作。完成之后本地路由器的客户端就可以用路由器ip:7070直接使用这个socks5代理了.其他路由器系统如ddwrt也可以尝试一下。

ppt打印技巧

经常需要打印ppt,为了节约,不可能一张纸上打印一个幻灯片,所以一般一张纸多个。
powerpoint在打印里提供了一个“讲义”可以实现一张纸上打印多个,但是打印出来的间隔大,幻灯片小,也比较浪费。其实通过打印机里的设置就可以实现一张纸多页,间隔也小,可以充分利用纸张。在powerpoint的打印内容里选“幻灯片”,然后点击打印机后面的“属性”。

以三星某打印机为例,可以找到如下设置,右侧还有预览,很方便。

其他打印机也大同小异,能找到相关选项,比如下面这个爱普生,但是发现最大只能调到4…

还有一种方法可以完全自定义每页打印多少张、几行几列,就是先把ppt转换成pdf,在adobe的pdf软件里的打印就有以下选项: 继续阅读ppt打印技巧

让android手机可以通过电脑上网

android手机可以很方便的让电脑共享手机的网络,那么手机能否共享电脑的网络呢?答案是肯定的。

方法一:usb连接线

1、将手机通过usb线连接到电脑,勾选“设置 -> 无线和网络 -> 绑定与便携热点 -> USB绑定”选项,电脑上会出现虚拟网卡,
为便于分辨,给虚拟网卡改个名字叫:android ;
2、共享电脑网络至android网卡:
本机上网用的网络连接,点属性,点高级,启动“允许其他网络用户通过此计算机的 Internet 连接来连接”,选择andoid网卡;
3、打开超级终端,su变身超级用户,查询手机ip(手机需root并安装了busybox)
# busybox ifconfig
例如手机ip:192.168.43.100(每个人不一样)
4、把电脑上android网卡的ip改为192.168.43.1;
5、添加默认网关(手机上的网关IP和电脑上的IP一样)
#busybox route add default gw 192.168.43.1
6、更新DNS(非必须,如果上不了网请添加)
#setprop net.dns1 8.8.8.8

方法二:无线网卡,手机AP 继续阅读让android手机可以通过电脑上网