openwrt安装gitolite需要的perl组件

官方文档很简单,只说了perl版本,对于openwrt这样资源很紧张的内
容可是要能省就省的啊。

以下是安装的perlbase列表:

       opkg install perlbase-essential perlbase-getopt perlbase-findbin
       perlbase-cwd perlbase-config perlbase-file perlbase-data
       perlbase-bytes perlbase-time perlbase-dynaloader
       perlbase-autoloader perlbase-xsloader perlbase-log
       perlbase-hostname perlbase-fcntl perlbase-io perlbase-symbol
       perlbase-selectsaver perlbase-errno 
       

最主要的三个是perlbase-essential,perlbase-getopt,perlbase-log,
第一个是关于语法的,第二个可以告诉你缺什么包,第三个不用说了。

还需要额外以下操作:

       opkg install coreutils-mktemp
       rm -rf /bin/mktemp
       ln -s /usr/bin/mktemp /bin/mktemp
       

原因在于busybox的mktemp不支持-u参数

openwrt相关配置(2):http服务器相关配置

我的openwrt上运行的http服务器是nginx,相比lighthttp,nginx更高
效些,占用资源感觉更少些。对于自带的uhttp服务,只能保留,不然路由
器的网络界面就没办法进入了。如上篇所说,修改了默认的uhttpd服务器
端口号,这样nginx作为主要的http服务器界面出来了。

以下是nginx的相关配置,这里我将文件分开存放了,这样比较直观,
而且,配置的nginx,只支持一个站点,毕竟,路由器的资源很有限。

       user nobody nogroup;
       worker_processes  1;
       #error_log  logs/error.log;
       #error_log  logs/error.log  notice;
       #error_log  logs/error.log  info;
       #pid        logs/nginx.pid;
       events {
       worker_connections  1024;
       use epoll; #使用epoll,更高效,我在实际使用过程中,感受不到,获取是自己从来不曾注意
       multi_accept on;
       }

       http {
       include       mime.types;
       include wordpress.conf; #wordpress的相关配置,会引用php的配置文件
       default_type  application/octet-stream;
       sendfile        on;
       keepalive_timeout  65; #修改超时时间
       }
       

其他的内容都删除或者注释掉了。下面是核心的wordpress配置相关的
内容了:

继续阅读openwrt相关配置(2):http服务器相关配置

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秒钟的话,路由器就会判断掉线,进行重播,增大这两个值其实是降低判断的严格性。

对目前的服务器配置比较满意

离家将近一周了,我爸也没有打电话向我诉说无法上网之类的。网站也没看到完全无法启动。目前比较满意了。考虑到网络的现实情况,一切基本正常,当然,翻墙希望也是正常的。改天将路由器的相关配置贴出来,备份一下。这篇文章由手机发出。不知道出来的样子是怎样的。我还是习惯 emacs的html 的方式

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键用了,弄的找也找不回来。不熟悉的键盘配置就是麻烦啊。