在 Ubuntu 命令行下使用 Shadowsocks

步骤

  1. 安装 pip(还需要一些依赖的 python package,也用 pip 安装即可)

     sudo apt-get install python-pip
    
  2. 安装 shadowsocks

     sudo pip install shadowsocks
    
  3. 配置 shadowsocks 参数文件

     vi ~/script/shadowsocks.json
    
     {
         "server":"xxx.xxx.xxx.xxx",
         "server_port":xxxx,
         "local_port":1080,
         "password":"password",
         "timeout":600,
         "method":"aes-256-cfb"
     }
    
  4. 启动 shadowsocks client

     sslocal -c ~/script/shadowsocks.json
    

    出现以下字样,说明成功了

     INFO: loading config from /home/kavi/script/shadowsocks.json
     2016-12-26 14:54:37 INFO     loading libcrypto from libcrypto.so.1.0.0
     2016-12-26 14:54:37 INFO     starting local at 127.0.0.1:1080
    
  5. 安装 Proxychains

     sudo apt-get install proxychains
    
  6. 配置 proxychains

     sudo vi /etc/proxychains.conf
    

    把最后一行的socks4 127.0.0.1 9095改为socks5 127.0.0.1 1080 (1080改为你自己的端口)

  7. 测试配置是否成功

     proxychains curl https://facebook.com
    

    出现以下字样,说明可以访问了

     ProxyChains-3.1 (http://proxychains.sf.net)
     |DNS-request| facebook.com
     |S-chain|-<>-127.0.0.1:1080-<><>-4.2.2.2:53-<><>-OK
     |DNS-response| facebook.com is 157.240.8.35
     |S-chain|-<>-127.0.0.1:1080-<><>-157.240.8.35:443-<><>-OK
    
  8. 配置开机启动 用 supervisor 启动 shadowsocks 进程,在/etc/supervisor/supervisord.conf中加入以下配置

     [program:shadowsocks]
     command=sslocal -c /home/kavi/script/shadowsocks.json
     autostart=true
     autorestart=true
     user=root
     log_stderr=true
     logfile=/var/log/shadowsocks.log
    

    重新启动 supervisor 服务

     sudo service supervisor restart
    

    然后用ps aux | grep sslocal 查看是否正常运行

  9. 将 supervisor 设置为开机启动 在/etc/rc.local中加入以下命令

     service supervisor start
    
Dec 26th, 2016

部署monit监控进程

安装

    sudo apt-get install monit

基本配置

  • 打开/etc/monit/monitrc
  • 在以下配置前,去掉注释

      sudo httpd port 2812 and
              allow user:password
    
阅读更多...
Jul 27th, 2016

修复wordpress备忘

隐藏 Wordpress 的分类

wordpress 用了很久,其中有很多分类是很早以前的内容。过时的东西没有必要显示,但是心里又不舍得把它们删除,所以就只能隐藏起来。隐藏起来的方法有很多,网上大部分教程都是用过修改代码实现。对于我这种懒人来说,修改代码太烦,而且换了主题后,又必须再修改一次。所以,我这次找了两款插件来完成这个工作,他们分别是:

1. AVH Extended Categories Widgets
2. WP Filter Post Category

AVH Extended Categories Widgets

安装过程略去不表,直接切入主题。在后台的侧边栏中找到 AVH Extended Categories,这里可以设个 Group。不同的 Group 包含不同的 Categories, 当然用处也不同,只要仔细看说明就能明白。最重要的步骤开始了,打开Appearance - Widgets, 可以看到三个以AVH开头的小工具。你可以根据自己的需求添加,还可以设置排列,隐藏categories,非常方便。 保存完设置后,看到侧边栏里面只有自己想要的 categories,可是又遇到另一个问题 – 隐藏的 category 下的文章还是显示在 wordpress 中。这就需要下一款插件帮忙了。

WP Filter Post Category

同样也是先安装插件,然后在后台侧边栏中找到Settings - Filter Posts in Pages Settings, 选择你需要的categories。保存后回到首页,发现分类下的文章也隐藏了。 Done!

Jul 24th, 2016

备份,恢复,迁移 Docker 容器

创建 docker 容器快照

  1. 打印运行中的容器:

     docker ps
    

    Screen Shot 2016-01-16 at 上午10.39.01.png

  2. 根据 CONTAINER ID 创建该容器的快照

     docker commit -p 21dfdd247022 gitlab_container_backup
    

    Screen Shot 2016-01-16 at 上午10.42.51.png

  3. 查看镜像,多了一个名字为gitlab_container_backup的 image

    Screen Shot 2016-01-16 at 上午10.44.45.png

阅读更多...
Jul 21st, 2016

用Ubuntu Server 14.04 LTS上部署Time Machine

安装软件

在 ubuntu 上部署 Time Machine 需要用到 netatalk 和 avahi-daemon。系统中已经内置了 avahi-daemon,还需要在下载 netatalk 就可以了

sudo apt-get update
sudo apt-get install netatalk
阅读更多...
Jul 21st, 2016

用Docker部署Swagger-editor

Swagger Editor

Swagger Editor是用来编辑 RESTful接口文档的编辑器,采用了 YAML 语法。可以在网页上编辑文档,并实时生成预览。

阅读更多...
Jul 21st, 2016

用Docker部署GitLab

下载镜像

gitlab 运行需要依赖 redis 和 mySQL ,首先需要用 docker 拉取三个镜像:

  1. redis
  2. mySQL
  3. gitlab
1
2
3
docker pull sameersbn/gitlab:latest
docker pull sameersbn/mysql:latest 
docker pull sameersbn/redis:latest
阅读更多...
Jul 21st, 2016

用Docker部署Swagger-UI

从 GitHub 上克隆 swagger-ui

git clone git@github.com:swagger-api/swagger-ui.git

用 docker build

  • 进入 cd swagger-ui
  • 如果直接用 npm install 安装 npm 会非常慢,而且每次都出错,所以要更换一个源

更换 npm 源

  • 打开 Dockerfile : vi Dockerfile, 在 RUN npm install 上加入一行

      RUN npm config set registry http://registry.cnpmjs.org
    
  • 保存后退出

开始 build

docker build -t swagger-ui-builder .

在本地运行

经过漫长的等待,终于 build 完了,通过以下命令执行,把内部的8080端口映射到服务器的89号端口上

docker run --name=swagger-ui -p 89:8080 -tid swagger-ui-builder

成功后,通过xxx.xxx.xxx.xxx:89访问页面

开机启动

/etc/rc.local末尾加入

docker start swagger-ui
Jul 21st, 2016

集成Jenkins

为什么要用 CI

开始做后端以来,部署就成为了一件很麻烦的事情。我曾经用 Dropbox 直接同步 Mac 和服务器之间的代码,但每当到需要重启服务的时候,仍然免不了登录服务器输入命令。这样费时费力。后来了解到有 CI 这种东西,代码推送到 Gitlab 上之后,可以直接远程触发服务器的脚本,让它自动跑完流程。这里的流程可以根据自己的情况设定,包括自动更新代码,测试,还有邮件提醒等。 由于公司用的是私有仓库,于是就决定用 bitbucket + jenkins 的方案实现 CI。另外,Jenkins 的插件有很多,集成服务比较方便。

安装 Jenkins

加入源

wget -q -O - http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
deb http://pkg.jenkins.io/debian-stable binary/
阅读更多...
Jul 21st, 2016

Ubuntu配置PPTP VPN Client

下载 PPTP 客户端

sudo apt-get install pptp-linux

VPN 配置

sudo pptpsetup --create office --server office.chenqiwei.com --username hello --password hello3456 --encrypt --start

配置成功后,用ifconfig查看,就有ppp0接口出现,表示添加成功,如图: Screen Shot 2016-07-12 at 下午4.10.08.png

阅读更多...
Jul 21st, 2016