Centos7安装配置ss客户端

Centos7安装配置ss客户端

注意:这是centos7.4安装配置酸酸(ss)客户端教程

1、配置epel源,安装python-pip

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install python-pip
pip install –upgrade pip
1
2
3
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install python-pip
pip install –upgrade pip

2、安装shadowsocks

pip install shadowsocks
1
pip install shadowsocks

3、创建配置文件

mkdir /etc/shadowsocks
1
mkdir /etc/shadowsocks

vi /etc/shadowsocks/shadowsocks.json
1
vi /etc/shadowsocks/shadowsocks.json
添加以下内容

{
“server”:”69.17.66.77″,
“server_port”:6666,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:”password”,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false,
“workers”: 1
}
1
2
3
4
5
6
7
8
9
10
11
{
“server”:”69.17.66.77″,
“server_port”:6666,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:”password”,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false,
“workers”: 1
}
备注:
server填写你代理服务器的IP
server_port代理服务器设置的端口
password代理服务器密码
这几个参数很好理解,前提是你了解过并且有ss代理

4、配置自启动

vi /etc/systemd/system/shadowsocks.service
1
vi /etc/systemd/system/shadowsocks.service
添加以下内容

[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target
5、启动shadowsocks客户端

systemctl enable shadowsocks.service
systemctl start shadowsocks.service
systemctl status shadowsocks
1
2
3
systemctl enable shadowsocks.service
systemctl start shadowsocks.service
systemctl status shadowsocks
6、验证

验证shadowsocks客户端是否正常运行,正常会返回你的代理IP

curl –socks5 127.0.0.1:1080 http://httpbin.org/ip
1
curl –socks5 127.0.0.1:1080 http://httpbin.org/ip
7、安装配置privoxy

Shadowsocks是一个socket5服务,我们需要使用privoxy把流量转到http/https上

yum install privoxy
1
yum install privoxy
8、启动privoxy

systemctl enable privoxy
systemctl start privoxy
systemctl status privoxy
1
2
3
systemctl enable privoxy
systemctl start privoxy
systemctl status privoxy
9、配置privoxy

vi /etc/privoxy/config
1
vi /etc/privoxy/config
确保以下两行内容没有被注释掉,forward-socks5t这里端口改成1080,listen-address默认端口不用改

listen-address 127.0.0.1:8118
forward-socks5t / 127.0.0.1:1080 .
1
2
listen-address 127.0.0.1:8118
forward-socks5t / 127.0.0.1:1080 .
10、修改/etc/profile

vi /etc/profile
1
vi /etc/profile
在最下面添加以下内容

export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
1
2
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
使其生效

source /etc/profile
1
source /etc/profile
11、验证

curl www.google.com
1
curl www.google.com
如果可以正常返回内容,即表示配置成功

docker 从入门到放弃—5. docker sprintboot 日志时区不对

解决方案

方案1,
最傻瓜也最方便的处理方式(可能日志任然不对,系统的时间对了)

docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -ti centos bash
以上将宿主机的时间与本地时间绑定到容器中,这样时间就会跟宿主机一样了。

/etc/timezone 时区
/etc/localtime 时间

验证时间是否正确,在控制台输入以下命令即可

date

方案2

CentOS镜像在Dockerfile 中添加一行命令

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

方案3

终极解决方案,在以上设置完系统的时区后仍然不生效
springboot项目设置时区
    @PostConstruct
   void setDefaultTimezone() {
      TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
//    TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
   }

用任何一个都行,将默认时区设置为东八区。

应用场景:有时候应用服务器的时间是UTC协调世界时间,在我们用浏览器访问的时候,就会出现日期快八小时,

因为服务器的时区跟我们东八区差八个小时导致的,用以上方法可以解决这个问题

docker 从入门到放弃—4.Jenkins 构建node docker镜像

1.Dockerfile 内容如下:发布至代码根目录

# Start with a base image containing Java runtime
FROM node:latest

#未镜像设定作者
MAINTAINER liuhubo@*.com

# 给镜像制定标签
LABEL h5.*.com node

#set workdir
WORKDIR /work

# Add a volume pointing to /work
VOLUME /work

# Make port 8080 available to the world outside this container
EXPOSE 3000

#将打包好的jar 上传到镜像的对应工作目录
ADD . /work/

#将在当前镜像基础上执行指定命令,并提交为新的镜像
RUN npm install -g cnpm –registry=https://registry.npm.taobao.org \
npm install pm2 -g –registry=https://registry.npm.taobao.org

RUN chmod +x /work/docker_start.sh

CMD /bin/sh /work/docker_start.sh

 

2,docker_start.sh 内容如下:发布至代码根目录

cd /work
npm run start-test
pm2 logs -f 0

此处的启动需要解决启动后项目自动停止的问题,所以添加了pm2 logs -f 0

 

3.shell 内容

cd $WORKSPACE
project_name=”h5″
find $WORKSPACE -type d -name “.git”|xargs rm -rf
. ~/.nvm/nvm.sh
nvm use 8.11.2
echo `date +%y_%m_%d_%H%M_%S`_N_${BUILD_NUMBER} >version.txt
cnpm install
cnpm run build-test
chmod 755 docker_start.sh

docker build -t node_pm2_$project_name .
echo ‘================开始推送镜像================’
docker tag -f node_pm2_$project_name:latest registry.cn-beijing.aliyuncs.com/yourname/test:$project_name
docker push registry.cn-beijing.aliyuncs.com/yourname/test:$project_name
echo ‘================结束推送镜像================’

 

 

docker 从入门到放弃—3.Jenkins 构建sprint-boot镜像,推docker仓库,发布脚本

1.第一步,登录到Jenkins后台,添加Jenkins到发布的环境服务器的免密登录,并且测试可以连通

测试连接的结果需要是success

 

2,将Dockerfile 配置好提交到代码的根目录

Dockerfile内容如下

# Start with a base image containing Java runtime  这里需要根据自己的环境选择镜像
FROM registry.cn-beijing.aliyuncs.com/*com/pro:base

#未镜像设定作者
MAINTAINER name@*.com

# 给镜像制定标签
LABEL appapi.*.com springboot appapi.jar

#set workdir
WORKDIR /work

# Add a volume pointing to /work
VOLUME /work

# Make port 8080 available to the world outside this container
EXPOSE 9090

#将打包好的jar 上传到镜像的对应工作目录#根据自己打包后生成的项目名称更改
ADD name.jar /work/app.jar

#将在当前镜像基础上执行指定命令,并提交为新的镜像
RUN sh -c ‘touch /work/app.jar’
RUN  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#设置java启动的参数
ENV JAVA_OPTS=”-server -Xms1024m -Xmx1024m”

#设置启动jar 包的命令
ENTRYPOINT [ “sh”, “-c”, “java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /work/app.jar” ]

 

3.新建项目并且正确的配置Git地址用户,打包等信息

Shell 内容如下

java -version

yourname=test
project_name=”app”
echo ‘================开始构建镜像================’

cd $yourname-$project_name
cp Dockerfile $WORKSPACE/$yourname-$project_name/target/
cd $WORKSPACE/$yourname-$project_name/target/
docker build -t spring-boot-$yourname-${project_name}api .
echo ‘================开始推送镜像================’
docker tag -f spring-boot-$yourname-${project_name}api:latest registry.cn-beijing.aliyuncs.com/$yourname/test:${project_name}api
docker push registry.cn-beijing.aliyuncs.com/$yourname/test:${project_name}api
echo ‘================结束推送镜像================’

ssh root@192.168.1.100 “/data/script/docker_pull.sh appapi 9010 9090”
echo ‘================服务启动完成================’

 

 

1.100服务器上的发布脚本内容如下

 

 

#!/bin/bash
#传入参数匹配
echo “开始匹配传入参数……”

if [ $# -lt 1 ]; then
echo “you must use like this : ./jenkins.sh <projectname> <serviceport> <dockerport>”
echo “sh jenkins.sh mapi 8080 8080”
exit
fi
if [ -n “$2” ]; then
echo ‘2’
serviceport=$2
fi

if [ -n “$3” ]; then
echo ‘3’
dockerport=$3
fi

docker stop $1
docker rm $1
docker login –username=username  –password=username   registry.cn-beijing.aliyuncs.com
docker pull registry.cn-beijing.aliyuncs.com/*com/test:$1
docker run –name=$1 -p $serviceport:$dockerport -v /data/www/$1:/work/logs -d registry.cn-beijing.aliyuncs.com/*com/test:$1

echo “finished!”

 

 

docker 从入门到放弃—2.docker 配置使用阿里云的源地址

1.打开阿里云控制台,没有的可以用淘宝账号或者支付宝账号直接登录

打开容器镜像服务,镜像加速器,复制加速器地址

2. 修改配置文件

$:    vi /etc/docker/daemon.json

添加加速器地址:

3.重启docker

systemctl daemon-reload

systemctl restart docker

完成后,你就会发现,下载oracle也就3分钟以内了,速度嗖嗖的

docker 从入门到放弃—1.docker 环境安装

Centos7上安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

 一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

 $ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

$ sudo yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

7、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

8、启动并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

 

 二、问题

1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:

复制代码
Transaction check error:
  file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
复制代码

2、卸载旧版本的包

$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安装docker

$ sudo yum install docker-ce