openwrt相关配置(1):软件列表及杂项配置

先记录在这里,以后有了新的再更新:

       opkg update
       opkg install
bash   #shell
blkid   #查看磁盘ID,挂载磁盘使用
block-mount #挂载磁盘
coreutils
coreutils-ls #emacs需要
coreutils-stty #emacs需要
curl           #下载
ddns-scripts #动态dns
fdisk        #察看磁盘分区
kmod-fs-ext4 #U盘分区格式支持
kmod-gre     #vpn分流使用
kmod-mppe    #pptp vpn使用
kmod-nls-base #忘了,好像是文件系统依赖
kmod-nls-utf8 ##忘了,好像是文件系统依赖
kmod-ppp      #vpn使用
kmod-pptp     #vpn使用
kmod-scsi-core #挂载磁盘
kmod-usb-core  #挂载磁盘
kmod-usb-ohci  #挂载磁盘
kmod-usb-storage #挂载磁盘
kmod-usb-storage-extras #挂载磁盘
kmod-usb2               #usb2.0 挂载磁盘
luci-app-ddns           #网页配置ddns
luci-app-samba          #网页配置samba服务器
luci-app-upnp           #网页配置upnp服务
luci-i18n-chinese       #网页中文语言支持
miniupnpd               #upnp支持
mysql-server            #mysql服务器
nginx                   #nginx http服务器
openssh-keygen          #openssh服务器需要
openssh-server          #openssh服务器,关键是支持端口转发等可用来翻墙的功能
openssh-sftp-server     #openssh自带的sftp服务
php5                    #php5
php5-fastcgi            #php5-fastcgi,nginx需要
php5-mod-ctype          #php模块
php5-mod-curl           #php模块
php5-mod-exif           #php模块
php5-mod-fileinfo       #php模块
php5-mod-ftp            #php模块
php5-mod-gd             #php模块
php5-mod-gettext        #php模块
php5-mod-hash           #php模块
php5-mod-iconv          #php模块
php5-mod-json           #php模块
php5-mod-libevent       #php模块
php5-mod-mbstring       #php模块
php5-mod-mcrypt         #php模块
php5-mod-mysql          #php模块
php5-mod-openssl        #php模块
php5-mod-session        #php模块
php5-mod-sockets        #php模块
php5-mod-xml            #php模块
php5-mod-xmlreader      #php模块
php5-mod-xmlwriter      #php模块
php5-mod-zip            #php模块
ppp-mod-pptp            #vpn的pptp模式
samba36-server #nfs服务器
subversion-client #subversion库,定时检查hosts文件的脚本需要使用subversion
subversion-libs #subversion库,定时检查hosts文件的脚本需要使用subversion
swap-utils #swap分区工具
vsftpd #ftp服务其
zlib #压缩与解压做
zoneinfo-asia #亚洲区域支持
zoneinfo-core #php需要
       

软件的各部分功能就像注释中所写,里面最多的就是php部分了,一些模块并不是必须的,只是我有时会随便检查一下什么的,就将常用的都安装了。

安装完软件最好直接重启下,相关服务先都不要启用。

ssh服务器的相关配置

修改dropbear服务器的端口为非22端口(/etc/dropbear),因为我使用openssh服务器,而不是自带的。

修改openssh服务器配置(/etc/ssh/sshd_config),添加GatewayPorts yes和Compression yes两项,前一个打开端口转发,后一个启用压缩,可以提高传输速度

http服务器相关配置

修改uhttpd服务器的端口为非80端口(/etc/uhttpd),因为我要将nginx的服务器作为主要使用的http服务器

其他的零碎配置根据自己需要了。

关于翻墙的配置可参照《openwrt vpn自动分流翻墙》

我用的是Buffalo WZR-HP-AG300H,如果刷成了砖,可参照《openwrt的一些设置》

如果网络像我现在的网络一样的非常频繁的抽风,可修改/etc/ppp/options中的lcp-echo-failure和lcp-echo-interval两个值,默认分别为5和1,这样的话,如果网络卡住5秒钟的话,路由器就会判断掉线,进行重播,增大这两个值其实是降低判断的严格性。

openwrt vpn自动分流翻墙

将openwrt的相关配置记录下来,防止下次找不到。理论上而言,vpn连接上之
后的设置都是通用的。我用的是支持pptp的vpn。

  • 安装pptp模块
    opkg update
    opkg install ppp-mod-pptp kmod-pptp kmod-mpe kmod-gre
    
  • 添加vpn网络接口及配置
    vi /etc/config/network
    config interface 'tun0'
            option ifname 'pptp-vpn'
            option proto 'pptp'
            option server 'x.x.x.x'
            option username 'xxxx'
            option password 'xxxx'
            option peerdns '0'
            option metric '2000'
    
    config route
            option interface 'tun0'
            option target '1.2.3.4'
            option gateway '10.3.4.1'
    
    config route
            option interface 'tun0'
            option target '2.3.0.0'
            option netmask '255.255.0.0'
            option gateway '10.3.4.1'
    
    

    第一段是添加一个名字为tun0的网络接口,拨号协议时pptp。peerdns为0表示
    使用默认的dns服务器,不是用vpn获取到的dns服务器。由于我只是指定固定的ip
    通过vpn访问,所以就这样配置了。

    第二段和第三段是指定通过vpn的网络规则,分别对应单独的一个IP和一个范
    围的IP.

  • 如果vpn服务器不支持加密的话,需要注释掉以下文件的一行:

    vi /etc/ppp/option.pptp
    #mppe required,no40,no56,stateless
    
  • 经过上面的设置,重启完路由器,路由器应该就可以连上vpn服务器了,并且,在路
    由器中检查流量的走向的时候,将会是正确的,但局域网中的电脑却还是默认的路
    径。
  • 使用以下的命令,使局域网中的电脑也可以按照路由器的规则进行分流:

    iptables -I FORWARD -o br-lan -j ACCEPT #允许br-lan端口流量被转发
    iptables -I FORWARD -o tun0 -j ACCEPT #允许tun0端口流量被转发
    iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE #tun0出口的流量SNAT出去
    
  • 设置防火墙规则,这一步是否必要没去验证,反正我是一路设置下来,到了最后一
    检查可以了,就这么用着了。

    vi /etc/config/firewall
    config zone
            option forward 'ACCEPT'
            option output 'ACCEPT'
            option name 'vpn'
            option network 'tun0'
            option masq '1'
            option mtu_fix '1'
            option input 'REJECT'
    
    config forwarding
            option dest 'vpn'
            option src 'lan'
    
    
  • 以上大部分都可以通过web页面设置,只是通过shell的话我觉得更清楚些,也
    懒得截图额。

    如果vpn服务器是国外的话,那么恭喜咯,局域网中的电脑可以自动按照规则翻
    墙了,当然,你也可以用来做电信和网通的加速使用。

    PS: 相同的文章写两遍就是痛苦啊,明明昨天写了一次,结果在emacs中不小心
    按了将alt将ctrl键用了,弄的找也找不回来。不熟悉的键盘配置就是麻烦啊。