Total Pageviews

Tuesday, 15 December 2015

如何使用Docker快速构建你的shadowsocks服务器端(不错,测试成功)

1)确保你的操作系统版本是debian 7.X/ubuntu,(建议选择ubuntu系统!就linux vps而言,安装ubuntu系统是最佳选择!而且最好是选择kvm虚拟化技术,因为kvm vps的内核通常都在3.10.0或以上。千万不要选择openvz vps,因为通常,openvz vps的内核还是2.6.3,其内核版本太低。至于xen vps,需要向供应商了解其内核版本是多少。)

可以使用如下命令:
    $ uname -r

    3.10.0-229.el7.x86_64(内核需3.10.0或以上的系列,操作系统需为64位版) 

2)更新:
    sudo apt-get update

3)运行Docker的安装脚本,如下命令:

    $ curl -sSL https://get.docker.com/ | sh 

(注:此命令curl -sSL https://get.docker.com/ | sh 在debian8下运行成功。 在其他系统下,不一定成功。所以建议选vps系统时,选择debian8.)

(关于在debian/ubuntu/centos vps上,安装docker,请见http://briteming.blogspot.com/2014/02/docker.html)


4)启动Docker,如下命令:

    sudo service docker start

2,安装Shadowsocks的Docker镜像。

1)下载镜像,如下命令:
    docker pull oddrationale/docker-shadowsocks
(https://hub.docker.com/r/oddrationale/docker-shadowsocks/)

2)运行镜像,启动Shadowsocks。
    docker run --restart=always -d -p 2023:2022 oddrationale/docker-shadowsocks -p 2022 -k your_password -m aes-256-cfb

3)确认Shadowsocks的docker版是否安装成功:
    docker ps
我们可以看到输出中,Shadowsocks的镜像已经在运行了。太简单了,Docker真好。

启动客户端,输入之前服务器端启动的时候配置的端口2023,密码,点击保存。客户端就不再赘言。

如果翻墙失败,可能是由于这条命令docker run -d -p 2023:2022 oddrationale/docker-shadowsocks -p 2022 -k your_password -m aes-256-cfb所对应的进程退出了,重新运行一次该命令即可。


也可通过supervisor来自动重新运行上述命令:

安装supervisor:
yum install supervisor (apt-get install supervisor)
(说白了就是个python包,官方文档,pip install supervisor ,我这里安装之后没有发现配置文件,我先到安装目录下找找,若没有,就自己创建配置文件。可以在启动命令中,添加配置文件的完整路径。

然后新建/etc/supervisord.conf
填入内容:
[program:docker]
command=docker run -d -p 2023:2022 oddrationale/docker-shadowsocks -s 0.0.0.0 -p 2022 -k your_password -m aes-256-cfb
autostart=true
autorestart=true
user=root
[supervisord]

重启supervisor:
killall supervisord

supervisord -c /etc/supervisord.conf

然后编辑/etc/rc.local,在exit 0这行的上方加上:supervisord -c /etc/supervisord.conf

ref: https://leohxj.gitbooks.io/a-programmer-prepares/content/software/develop-tool/shadowsocks.html

http://blog.csdn.net/orangleliu/article/details/41317887
http://www.voidcn.com/article/p-qhazlemf-ts.html (这个的配置文件里没提及[supervisord],是不对的)

项目地址:https://github.com/oddrationale/docker-shadowsocks (很好用)

---------

第二个用Docker构建的shadowsocks服务器端.

(参见https://hub.docker.com/r/hbrls/shadowsocks/)

运行:
docker pull hbrls/shadowsocks

docker run --restart=always -d -p 4023:4022 hbrls/shadowsocks -e SS_PORT=4022 -e SS_PASSWORD=my_password -e SS_METHOD=aes-256-cfb

客户端机器上,所设置的服务器的端口应为4023. 这样,客户端机器就翻墙成功了。

项目地址:https://github.com/hbrls/docker-shadowsocks

(注意:不同的“shadowsocks的docker版“的命令不能混用,只能各用各的命令
------------

第三个用Docker构建的shadowsocks服务器端,

参见https://hub.docker.com/r/mritd/shadowsocks/ 

docker pull mritd/shadowsocks

docker run --restart=always -d -p 6443:6442 mritd/shadowsocks -s "-p 6442 -m aes-256-cfb -k my_pw"

root@localhost:~# lsof -i:6443
COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
docker-pr 14444 root    4u  IPv6 1972873      0t0  TCP *:6443 (LISTEN)
root@localhost:~#

(需要重命名container ,命令为:docker rename container_id another_name
这里的container_id就是上面已运行的那个叫shadowsocks的容器的id.)

客户端机器上,所设置的服务器的端口应为6443. 这样,客户端机器就翻墙成功了。

项目地址:
https://github.com/mritd/dockerfile/tree/master/shadowsocks
-----------

第四个用docker搭建的ss服务器端

http://hub.docker.com/r/imhang/shadowsocks-docker

docker pull imhang/shadowsocks-docker
 
docker run --restart=always -d -e "SS_PORT=1443" -e "SS_PASSWORD=my_pw" -e "SS_METHOD=aes-256-cfb" -p 1444:1443 -p 1444:1443/udp imhang/shadowsocks-docker 

 客户端机器上,所设置的服务器的端口应为1444.
项目地址:https://github.com/hangim/shadowsocks-docker

--------------------

第五个用docker搭建的ss服务器端  (很好用)

docker pull imlonghao/shadowsocks-go

docker run --restart=always -d -p 7022:7021 imlonghao/shadowsocks-go -p 7021 -k your_password -m aes-256-cfb

客户端机器上,所设置的服务器的端口应为7022 .

项目地址:https://hub.docker.com/r/imlonghao/shadowsocks-go

https://github.com/imlonghao/docker-shadowsocks/tree/master/go

-------------

第六个用docker搭建的ss服务器端

docker pull imlonghao/shadowsocks-libev  (很好用)

docker run --restart=always -d -p 8022:8021 imlonghao/shadowsocks-libev -p 8021 -k your_password -m aes-256-cfb

客户端机器上,所设置的服务器的端口应为8022 .

项目地址:https://hub.docker.com/r/imlonghao/shadowsocks-libev

https://github.com/imlonghao/docker-shadowsocks/tree/master/libev

---------------------------------------

第7个用docker搭建的ss服务器端

docker pull imlonghao/shadowsocks-python   (很好用)

docker run --restart=always -d -p 9022:9021 imlonghao/shadowsocks-python -p 9021 -k your_password -m aes-256-cfb

客户端机器上,所设置的服务器的端口应为9022 .

项目地址:https://hub.docker.com/r/imlonghao/shadowsocks-python

https://github.com/imlonghao/docker-shadowsocks/tree/master/python

------------

第8个用docker搭建的ss服务器端(基于shadowsocks-libev)

docker pull tommylau/shadowsocks   (很好用)

docker run --restart=always -d -p 9488:9388 tommylau/shadowsocks -p 9388 -k your_password -m aes-256-cfb

客户端机器上,所设置的服务器的端口应为9488.

项目地址:https://hub.docker.com/r/tommylau/shadowsocks

https://github.com/TommyLau/docker-shadowsocks

--------------

第9个用docker搭建的ss服务器端
https://hub.docker.com/r/aricxu/shadowsocks/

docker pull aricxu/shadowsocks

docker run --restart=always -d -p 1988:1987 aricxu/shadowsocks -p 1987 -k my_pw -m aes-256-cfb

 客户端机器上,所设置的服务器的端口应为1988.

项目地址:https://github.com/aricxu/docker_shadowsocks
----------

第10个用docker搭建的ss服务器端

https://hub.docker.com/r/smounives/shadowsocks/  (很好用)

docker pull smounives/shadowsocks

docker run --restart=always -d -p 7388:7288 smounives/shadowsocks -p 7288 -k my_pw -m aes-256-cfb

项目地址:https://github.com/smounives/shadowsocks-docker
---------------

第11个用docker搭建的ss服务器端

 https://hub.docker.com/r/malaohu/ssr-with-net-speeder/   (很好用)

docker pull malaohu/ssr-with-net-speeder

然后
docker run --restart=always -d -p 8990:8989 malaohu/ssr-with-net-speeder -p 8989 -k your-pw -m aes-256-cfb

客户端机器上,所设置的服务器的端口应为8990.
------------------

第12个用docker搭建的ss服务器端

http://hub.docker.com/r/baselibrary/shadowsocks   (速度有点慢)

https://github.com/baselibrary/docker-shadowsocks

docker pull  baselibrary/shadowsocks

docker run --restart=always -d -p 8788:8688 baselibrary/shadowsocks -p 8688 -k your-pw -m aes-256-cfb

 客户端机器上,所设置的服务器的端口应为8788.
--------------------------

 第13个用docker搭建的ss服务器端

https://briteming.blogspot.com/2016/06/shadowsocks-libevdocker-docker.html
--------------------------------------

第14个用docker搭建的ss服务器端
https://hub.docker.com/r/mrjin/shadowsocks/ 

docker pull mrjin/shadowsocks

然后
docker run --restart=always -d -p 8889:8888 mrjin/shadowsocks -e METHOD=aes-256-cfb -e SERVER_PORT=8888 -e PASSWORD=your-pw  

客户端机器上,所设置的服务器的端口应为8889.
-----------

第15个用docker搭建的ss服务器端

https://hub.docker.com/r/lowid/ss-with-net-speeder

https://github.com/soloradish/ss-with-net-speeder 

docker pull lowid/ss-with-net-speeder

然后
docker run --restart=always -d -p 7990:7989 lowid/ss-with-net-speeder -p 7989 -k your-pw -m aes-256-cfb 

客户端机器上,所设置的服务器的端口应为7990.
-------------------

第16个用docker搭建的ss服务器端

https://hub.docker.com/r/soniclidi/alpine-shadowsocks/

docker pull soniclidi/alpine-shadowsocks

然后,

docker run --restart=always -d -p 5788:5688 soniclidi/alpine-shadowsocks -p 5688 -k your-pw -m aes-256-cfb 

客户端机器上,所设置的服务器的端口应为5788.
----------------

第17个用docker搭建的ss服务器端

https://hub.docker.com/r/h12w/shadowsocks/

docker pull h12w/shadowsocks


docker run --restart=always -d -p 3055:3054 h12w/shadowsocks -p 3054 -k your-pw -m aes-256-cfb 

客户端机器上,所设置的服务器的端口应为3055.
-----

第18个用docker搭建的ssr服务器端

A docker image for ShadowsocksR 
docker pull hmbsbige/shadowsocksr-docker
docker run --restart=always -it -d --dns 1.1.1.1 --dns 8.8.8.8 -p 91:90 -p 91:90/udp hmbsbige/shadowsocksr-docker -p 90 -k my-pw -m aes-256-cfb -O auth_chain_a -o tls1.2_ticket_auth

(上面这行命令由我修改而成

客户端机器上,所设置的服务器的端口应为91.

mac上的客户端程序,建议使用electron-ssr.

项目地址:https://github.com/HMBSbige/shadowsocksr-docker
------------------------

第19个用docker搭建的ss服务器端??

https://hub.docker.com/r/sunteya/shadowsocks-libev

docker pull sunteya/shadowsocks-libev


docker run --restart=always -p 7588:7587 -e PASSWORD=your-pw -e METHOD=aes-256-cfb sunteya/shadowsocks-libev

客户端机器上,所设置的服务器的端口应为7588.
-----------------------------------------------------------------------


https://github.com/Supervisor/supervisor
相关帖子:http://briteming.blogspot.com/2016/12/arukasioshadowsocks.html
-------------


让docker容器开机自动启动


网上有些文章说,要让docker 的容器自动在开机启动,是写脚本,比如在 rc.local 中写。
其实完全没必要这么麻烦,docker 有相关指令,docker run 指令中加入 --restart=always 就行。
  1. sudo docker run --restart=always .....  

如果创建时未指定 --restart=always ,可通过update 命令设置:
  1. docker update --restart=always xxx