使用Docker部署Shadowsocks

摘要

本文介绍如何使用Docker部署Shadowsocks,并且开启ipv6

先拉取镜像

docker pull shadowsocks/shadowsocks-libev

不带IPV6版本

docker run -d \
  -e PASSWORD=<password> \
  -e METHOD=aes-256-cfb \
  -e DNS_ADDRS="<dns_server>" \
  -p <server-port>:8388 \
  -p <server-port>:8388/udp \
  --name=ss_server_test \
  --restart=unless-stopped \
  shadowsocks/shadowsocks-libev

以下是一个可以用来开启多个ss_server的脚本

#!/bin/bash

base=20000

cat userlist | while read line
do
        #echo $line;
        port=`echo $line | cut -d ' ' -f 1`
        port=`expr $port + $base`
        user=`echo $line | cut -d ' ' -f 2`
	docker rm -f ss_server_$user
done

cat userlist | while read line
do
	#echo $line;
	port=`echo $line | cut -d ' ' -f 1`
	port=`expr $port + $base`
	user=`echo $line | cut -d ' ' -f 2`
	echo port:[$port] user:[$user]
	docker run -d \
	  -e PASSWORD=$user \
	  -e METHOD=aes-256-cfb \
	  -e DNS_ADDRS="100.100.2.136,100.100.2.138" \
	  -p $port:8388 \
	  -p $port:8388/udp \
	  --name=ss_server_$user \
	  --restart=unless-stopped \
	  shadowsocks/shadowsocks-libev
done

带IPV6版本

带ipv6的话为了方便起见直接使用host的网络

docker run -d \
  --net="host" \
  --name=ss_server_ipv6 \
  -v /root/manager/shadowsocks/manager6.json:/manager6.json \
  shadowsocks/shadowsocks-libev \
  ss-server \
    -c /manager6.json \
    -d 2001:19f0:300:1704::6,108.61.10.10

其中manager6.json如下

{
    "server":["::","0.0.0.0"],
    "server_port":<server-port>,
    "password":"<password>",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "prefer_ipv6": true,
    "mode":"tcp_and_udp"
}


没有评论: