IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    在wr703n下安装配置openwrt、openvpn

    imtxc发表于 2013-02-24 14:21:00
    love 0

    距离上一篇文章快一年了……,最近由于原来的路由器被小强烧毁,买了一个wr703n路由器,顺便在上面折腾一下openwrt和openvpn,这篇文章记录一下过程,以后关于这个路由器的配置和折腾过程都会更新在这里.

    准备工作

    给路由器上电之后登陆配置页面看到生产批号是Build 120925,在openwrt wiki页面得知该路由器的硬件版本是1.7而不是路由器背面标注的1.6, 因此还是下载trunk版本的固件免得刷成砖头还需要使用ttl线修复。

    下载地址在这里.

    由于是从tp原厂固件升级到openwrt,因此下载factory版本,由于jffs2版本刷了之后经过测试占用空间过大无法装其他软件,因此用squashfs版本.

    刷机

    先用无线连接路由器,下载openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin后在路由器的默认管理页面中找到系统工具-升级的选项,然后使用下载的bin文件进行升级,等到页面显示重启后说明刷机结束.

    初步配置

    #####配置root密码并启用ssh服务 刚刷了openwrt的wr703n默认没有打开wifi,因此使用网线把wr703n和电脑连接,并且把计算机的ip修改为192.168.1.×,子网掩码255.255.255.0, 这时候使用telnet登陆路由器:

    1
    
    telnet 192.168.1.1
    

    然后修改root的密码同时会自动打开ssh服务

    1
    
    passwd
    

    重复输两遍密码之后,就配置了root的密码,然后exit, 之后就可以使用ssh root@192.168.1.1来配置路由器了.

    配置网络
    1.首先配置无线功能
    1
    
    vim /etc/config/wireless
    

    在其中的option disabled 1这一行前面加#对这行进行注释或者直接删除这一行, 在config wifi-iface 中配置wifi的ssid和密码,修改结果如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    config wifi-device  radio0
            option type     mac80211
            option channel  11
            option hwmode   11ng
            option path     'platform/ar933x_wmac'
            option htmode   HT20
            list ht_capab   SHORT-GI-20
            list ht_capab   SHORT-GI-40
            list ht_capab   RX-STBC1
            list ht_capab   DSSS_CCK-40
            # REMOVE THIS LINE TO ENABLE WIFI:
            # option disabled 1
    
    config wifi-iface
            option device   radio0
            option network  lan
            option mode     ap
            option ssid     myssid
            option encryption psk2
            option key        'mypasswd'
    
    2.配置wan口(有线接口)
    1
    
    vim /etc/config/network
    

    注释或者删除掉option ifname 'eth0'这一行,为了避免和其他路由器的DHCP冲突修改config interface 'lan' 中的ip地址为:192.168.20.1,然后增加wan接口配置,由于我是从上一级路由器使用DHCP的方式获取地址,因此在文件末尾增加

    1
    2
    3
    
    config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
    

    最终配置文件如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    config interface 'loopback'
            option ifname 'lo'
            option proto 'static'
            option ipaddr '127.0.0.1'
            option netmask '255.0.0.0'
    
    config interface 'lan'
            # option ifname 'eth0'
            option type 'bridge'
            option proto 'static'
            option ipaddr '192.168.20.1'
            option netmask '255.255.255.0'
    
    config interface 'wan'
            option ifname 'eth0'
            option proto 'dhcp'
    

    然后使用reboot命令重启路由器之后,就能搜索到名为myssid的无线网络,同时把路由器的有线接口和上级路由器连接,wr703n就可以作为一个普通的路由器来使用了。

    用电脑用无线连接路由器之后,也就可以通过ssh root@192.168.20.1来配置路由器了。

    配置错误导致无法连接路由器

    如果由于配置了错误的ip地址等原因无法连接到路由器,就需要进入路由器的安全模式进行恢复,方法:

    1.拔掉路由器电源

    2.连接电源之后使用牙签等持续的按路由器的reset按钮,不用过快,每秒一次就可以,几秒之后,路由器的指示灯开始很快速的闪烁,说明进入了安全模式

    3.安全模式没有加载任何配置,因此还是使用前面提到的方式,使用telnet登陆进路由器:telnet 192.168.1.1

    4.挂载root分区:mount_root

    5.firstboot

    6.passwd root

    7.reboot -f

    这样应该就清除了路由器的配置,可以重头开始配置,但是我的路由器在进行firstboot时候错误,这时候可以使用在openwrt中重新刷机的方式解决:

    1
    2
    3
    
    cd /tmp
    scp imtxc@192.168.1.2:/home/imtxc/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin ./
    mtd -r write openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin firmware
    

    刷机结束重启之后, 就可以重新开始配置了.

    配置U盘扩展

    装了openwrt之后,使用df -h命令可以看到只剩下了0.4M的空间,如果要安装之后提到的openvpn等软件,空间明显不够用,由于wr703n有usb接口,因此使用u盘来扩展空间,同时将系统设置为从u盘引导,这样,如果以后遇到由于配置错误导致无法连接路由器的时候,只要拔下u盘就可以从正确的系统引导了。

    安装所需的软件
    1
    2
    3
    4
    5
    
    opkg update
    opkg install kmod-usb2 kmod-fs-ext4
    opkg install kmod-usb-storage
    opkg install block-mount
    reboot
    

    准备好一个已经格式化好的U盘,我在其他系统上把u盘分成了三个区, sda1 2G ext4格式用来装系统, sda2 1G用来做交换分区, 剩余的作为 sda3 ext4格式用来存放数据.

    配置openwrt从U盘启动

    重启系统之后, 插入U盘之后使用dmesg |grep sda 命令可以看到 sda1 sda2 sda3, 然后按照一下步骤操作:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    mkdir /mnt/usb
    mount /dev/sda1 /mnt/usb
    mkdir /tmp/root
    mount -o bind / /tmp/root
    cp /tmp/root/* /mnt/usb -a
    echo Booted from USB >> /mnt/usb/etc/banner
    umount /tmp/root
    echo Booted from internal ROM >> /etc/banner
    echo option force_space >> /mnt/usb/etc/opkg.conf
    umount /mnt/usb
    

    然后使用 vim /etc/config/fstab 修改fstab文件的mount部分如下:

    1
    2
    3
    4
    5
    6
    7
    8
    
    config mount
            option target   /mnt/usb
            option device   /dev/sda1
            option fstype   ext4
            option options  rw,sync
            option enabled  1
            option enabled_fsck 1
            option is_rootfs 1
    

    然后使用reboot重启之后,登陆路由器器,会看到欢迎界面最下面提示Booted from USB,使用df -h查看结果如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    root@OpenWrt:~# df -h
    Filesystem                Size      Used Available Use% Mounted on
    rootfs                    2.0G     78.1M      1.8G   4% /
    /dev/root                 1.5M      1.5M         0 100% /rom
    tmpfs                    14.2M    440.0K     13.8M   3% /tmp
    tmpfs                   512.0K         0    512.0K   0% /dev
    /dev/sda1                 2.0G     78.1M      1.8G   4% /overlay
    overlayfs:/overlay        2.0G     78.1M      1.8G   4% /
    /dev/sda3                 4.4G    136.9M      4.0G   3% /mnt/sda3
    

    安装配置openvpn

    openvpn配置

    1. opkg update

    2. opkg install openvpn-openssl ip

    3. vim /etc/openvpn/my-vpn.conf 增加vpn配置文件如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    client
    dev tun
    proto udp
    remote  myvpnip 8800            #这里是我的vpn服务器地址和端口
    persist-key
    persist-tun
    ca ca.crt
    cert client.crt
    key client.key
    ns-cert-type server
    comp-lzo
    verb 3
    

    dns配置

    1. vim /etc/config/dhcp,修改 option resolvefile '/etc/openvpn/resolv.conf'

    2. 修改 /etc/openvpn/resolv.conf为:

    1
    2
    3
    
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    nameserver 208.67.222.222
    

    参考这篇文章配置dnsmasq和openvpn 的路由选择, 为了在openwrt下使用,修改他的chnroutes.py脚本中的

    1
    
    OLDGW=$(ip route show 0/0 | head -n1 | grep 'via' | grep -Po '\d+\.\d+\.\d+\.\d+')
    

    为:

    1
    
    OLDGW=`ip route show | grep '^default' | sed -e 's/default via \([^ ]*\).*/\1/'`
    

    配置之后 /etc/init.d/openvpn start 连接vpn, 如果要在路由器开机之后自动连接vpn,就把这行添加到 /etc/rc.loacl 的exit 0之前.

    iptables配置

    首先卸载openwrt提供的firewall工具: opkg remove firewall然后:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    iptables -t nat -F
    iptables -t filter -F
    
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -s 192.168.20.0/24 -j ACCEPT
    iptables -A FORWARD -j REJECT
    
    iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o tun0 -j MASQUERADE
    
    iptables-save
    

    或者将上面iptables-save之前的命令添加到/etc/rc.loacl中.

    这时候,接在wr703n下的电脑如果访问 www.ip138.com查询到的应该是国内的ip, 而使用 www.whatismyip.com查询到的应该为你的vpn服务器的ip.

    参考资料:

    1. http://old.geektu.com/?p=979
    2. https://gist.github.com/simpx/3314757
    3. http://blog.pinepara.info/tech/flash-openwrt-on-wr703n/
    4. http://www.sl088.com/voyage/2012/08/2956.slboat


沪ICP备19023445号-2号
友情链接