Blog

  • pptpsetup命令行连接pptp vpn | 拨号

    一般会自带pptpsetup这个工具

    没有的话

    apt-get install pptp-linux

    添加一个vpn连接,执行

    pptpsetup -create vpnname -server xxx.xxx.xxx.xxx -username username -password passwd -encrypt (记得改一下)

    PS:更多选项运行”pptpsetup –help”

    这样其实是写入了/etc/ppp/peers/ 这个目录下面(网上有在这个目录新建文件的方法,看来不如这个方便)

    /etc/ppp/chap-secrets 用户名密码写入到了这个文件

    上线:

    pon vpnname

    下线:

    poff vpnname (全部下线poff -a)

    然后ifconfig查看一下多了ppp0这个网络

    现在还不能通过vpn来走

    因为并不知道数据该怎么走,很明显要配一下路由

    #route 查看现在的默认路由,下面两条操作将默认路由改为vpn的地址,删除原来的默认路由

    route add default gw 10.19.1.1
    route delete default gw xxx.xxx.xxx.yyy

    或者这样更简便

    route del default
    route add default dev ppp0

    这样就能通过vpn来做事了。

     

  • debian|linux 路由

    路由是什么

    路由routing)就是通过互联的网络信息从源地址传输到目的地址的活动。

    http://zh.wikipedia.org/wiki/%E8%B7%AF%E7%94%B1

    linux显示路由表

    #route 或

    # netstat -r

    内核 IP 路由表
    目标            网关            子网掩码        标志  跃点   引用  使用 接口
    into.dyndns.org *              255.255.255.255 UH    0      0        0 eth0
    into.dyndns.org *              255.255.255.255 UH    0      0        0 eth0
    10.19.1.1       *              255.255.255.255 UH    0      0        0 ppp0
    219.230.xxx.xxx *              255.255.255.192 U     1      0        0 eth0
    link-local      *              255.255.0.0     U     1000   0        0 eth0
    default         *              0.0.0.0         U     0      0        0 ppp0

    # route -n                #按照越精确越靠前。这个是路由的排序规则

    默认路由

    ip route add default dev eth0 via 192.168.0.254          #添加默认路由
    ip route del default dev eth0 via 192.168.0.254           #删除默认路由

    主机路由

    ip route add dev eth0 10.0.0.1/32                                 #添加主机路由
    ip route del dev eth0 10.0.0.1/32                                  #删除主机路由

    网段路由

    ip route add dev eth0 192.168.0.0/16                           #添加网段路由
    ip route del dev eth0 192.168.0.0/16                            #删除网段路由

    route add -net 目标网段 netmask 掩码 dev eth0

    route del -net 目标网段 netmask 掩码 dev eth0

  • shell操作mysql一则 | sql update 语句

    背景,打算把radius里有几个用户在凌晨没有人上的时候设为disable,需要用到update语句和at命令

    首先在mysql里创建了一个新的帐号,用户名rrr 密码ttt

    要操作的数据库为 radius ,操作函数mysql_opt ,操作表radusergroup

    #!/bin/bash
    #for use:disable the radius users
    #author: jpuyy.com
    #version:
    #history:
    #relate on: at mysql|update
    sql_user=rrr 
    sql_pass=ttt
    sql_opt="-u$sql_user -p$sql_pass -s"
    
    mysql_opt() {
    db_name=$1
    sql_lan=$2
    mysql $sql_opt << EOF
    USE $db_name;
    $sql_lan;
    QUIT
    EOF
    }
    
    data=`mysql_opt radius "UPDATE  radusergroup SET groupname='daloRADIUS-Disabled-Users'  WHERE username in ('aaa','bbb','ccc')"`
    echo $data
  • Debian操作系统编译内核

    转自:

    想用上最新的内核,就需要我们自己去编译新内核了

    安装需求软件包

    apt-get install kernel-package libncurses5-dev fakeroot wget build-essential

    下载新内核

    你可以在这里查看可用的内核 目前最新的为2.6.x

    linux kernel 官方网站:http://www.kernel.org

    cd /usr/src
    wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz

    解压 创建软链接,切换到软链接中操作

    tar zxvf linux-2.6.26.tar.gz
    ln -s linux-2.6.26 linux
    cd /usr/src/linux

    生成内核文件,首先要复制旧内核的配置文件

    make clean && make mrproper
    cp /boot/config-`uname -r` ./.config
    make menuconfig

    使用下面的步骤来载入旧的内核配置
    1. Load an Alternate Configuration File
    2. Type .config if not already in the textbox
    3. Ok
    4. Do any changes to the kernel modules
    5. Click Exit
    6. Click Yes when asked if you want to save

    编译内核

    make-kpkg clean
    fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

    这个过程需要很长时间

    安装新内核

    ls -l /usr/src

    到这里,还没有安装内核,
    dpkg -i linux-headers-2.6.26-custom_2.6.26-custom-10.00.Custom_i386.deb
    dpkg -i linux-image-2.6.26-custom_2.6.26-custom-10.00.Custom_i386.deb

    最后重新启动服务器即可

    reboot

  • 用Mutt发送带附件的邮件

    请提前设置好MTA(mail transfer agent),例如:

    debian默认的MTA为exim4的设置为http://jpuyy.com/2011/08/debian-exim4.html

    mutt – The Mutt Mail User Agent

    示例:

    /usr/bin/mutt -s “the mp3 push” [email protected] -a /root/getvoa/latestvoa.mp3 < /dev/null

    最有用的还是这个 -a 附件发送,因为用mail和uuencode发送mp3都不理想

    用/dev/null意思是不输入正文,如果没有 </dev/null 则会自动调用nano

    介面简单而实用

    我的目的是每天自动把某网页更新的voa听力发送到我的邮箱内

    #!/bin/bash
    #for use:get voa mp3 every day
    #author: 2011-08-28 jpuyy.com
    #version: A
    yes | rm `cat latestvoa`
    LANG=C
    theday=`date ‘+%A’`
    urlone=http://www.51voa.com/VOA_Special_English/VOA_News_$theday.html
    urltwo=`/usr/bin/curl $urlone | grep Player`
    urltwo=${urltwo#*\”}
    urlthree=http://down.51voa.com${urltwo%%\”*}
    filename=${urlthree##*\/}
    echo $filename > latestvoa
    wget $urlthree
    /usr/bin/mutt -s “$theday mp3 push” [email protected] -a /root/getvoa/$filename < echo $filename

    保存为 getvoa.sh 这样每天的18点运行脚本

    0 18 * * * /root/getvoa/getvoa.sh

     

  • debian exim4配置发邮件|日志的魔力

    linux就是好,日志对于解决问题有绝对的魔力

    像神奇魔棒,直指要点

    很多天以前就配了一下exim4,发邮件测试一下没收到,用的不多也没有继续弄

    现在用的到了,所以耐下心弄了一下

    exim4重新配置命令

    dpkg-reconfigure exim4-config

    邮件系统设置的常见类型:互联网站;直接通过 SMTP 发送或接收信件
    系统邮件名称:(注意,一定要填一个能解析的域名,我就是在这吃了亏): xxx.com
    要监听入站 SMTP 连接的 IP 地址:(留空)
    其它可接收邮件的目的地址:localhost.localdomain:xxx.com
    为下列域名进行邮件中转 (relay):(留空)                   │
    为下列主机进行邮件中转 (relay):(留空)
    保持最小 DNS 查询量吗 (按需拔号,Dial-on-Demand)?<否>
    本地信件的投递方式:/var/mail/ 中的 mbox 格式
    将设置文件分拆成小文件吗?<否>

     

    回头说上面的系统邮件名称,有vps的最好是填上你的域名,这样就不会被收件(比如说163)拦截了

    当时发信不成功时,先去看一下发信日志,已经277M了,处理这个先放到后面,先说发信失败。

    This message was created automatically by mail delivery software.

    A message that you sent could not be delivered to one or more of its
    recipients. This is a permanent error. The following address(es) failed:

    [email protected]
    SMTP error from remote mail server after MAIL FROM:<xxx@debian>:
    host 163mx02.mxmail.netease.com [220.181.12.73]:
    550 MI:IMF mx23,ScCowGCJ2VFen1xOnm2kAQ–.1082S2 1314692958 http://mail.163.com/help/help_spam_16.htm?ip=58.216.234.50&hostid=mx2
    3&time=1314692958

    错误代码:550 MI:IMF

    打开后面的网址,找到解释:

    550 MI:IMF 发信人电子邮件地址不合规范。请参考http://www.rfc-editor.org/关于电子邮件规范的定义;

    所以问题出在域名上,改好域名,问题解决

    看来出问题先找日志是解决问题的绝佳办法

    Exim4的log记录使用自己的log目录:/var/log/exim4/

    update-exim4.conf的配置文件为 : /etc/exim4/update-exim4.conf.conf

    发送邮件的域名保存在: /etc/mailname

    测试Exim4的配置信息和查看有否有错:exim4 -bV

    有的时候可能会遇到exim4抛出debian ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken错误的情况,可以用以下方法加以解决。
    1、停止exim4 # /etc/init.d/exim4 stop
    2、删除paniclog文件 # rm /var/log/exim4/paniclog
    3、启动exim4 # /etc/init.d/exim4 start