wr703n 安装配置 openwrt、openvpn

Updated: 2017-06-25
Created: 2013-02-24 14:21:00

准备工作

给路由器上电之后登陆配置页面看到生产批号是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.×/24, 这时候使用 telnet 登陆路由器:

telnet 192.168.1.1

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

passwd

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

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

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

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 口(有线接口)
vim /etc/config/network

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

config interface 'wan'
    option ifname 'eth0'
    option proto 'dhcp'

最终配置文件如下:

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 中重新刷机的方式解决:

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 盘就可以从正确的系统引导了。

安装所需的软件
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, 然后按照一下步骤操作:

    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 部分如下:

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 查看结果如下:

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 配置文件如下:

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 为:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 208.67.222.222

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

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

为:

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

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

iptables配置

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

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