0%

[js] 第363天 使用ajax轮询接口有什么优缺点?

[html] 第363天 打印页面时怎样自定义打印页眉页脚或者去掉眉页脚?

[css] 第363天 用css画出中间一个大圆,四周有12个小圆环绕并和大圆是同心

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<div class="demo">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>
</div>

<style>
.demo {
width: 600px;
height: 600px;
background-color: #000000;
padding: 100px;
box-sizing: border-box;
}

ul,
li {
margin: 0;
list-style-type: none;
padding: 0;
}

ul {
width: 400px;
height: 400px;
background-color: #fff;
border-radius: 50%;
position: relative;
}

li {
width: 40px;
height: 40px;
position: absolute;
background-color: red;
border-radius: 50%;
line-height: 40px;
text-align: center;
left: 50%;
margin-left: -20px;
margin-top: -20px;
transform-origin: 20px 220px;
}

li:nth-of-type(2) {
transform: rotate(45deg);
}

li:nth-of-type(3) {
transform: rotate(90deg);
}

li:nth-of-type(4) {
transform: rotate(135deg);
}

li:nth-of-type(5) {
transform: rotate(180deg);
}

li:nth-of-type(6) {
transform: rotate(225deg);
}

li:nth-of-type(7) {
transform: rotate(270deg);
}

li:nth-of-type(8) {
transform: rotate(315deg);

}
</style>

</html>

认识选择器

CSS3 选择器的优势

CSS3 选择器

  1. 基本选择器

    2) 层次选择器
    3) 动态伪类选择器
    4) 目标伪类选择器
    5) 语言伪类选择器
    6) UI元素状态伪类选择器
    7) 结构伪类选择器
    8) 否定伪类选择器
    9) 伪元素
    10) 属性选择器

    其中的3-8 是伪类选择器

基本选择器

层次选择器

动态伪类选择器

目标伪类选择器

语言伪类选择器

UI选择状态伪类选择器

结构伪类选择器

否定伪类选择器

伪元素

属性选择器

Docker CE 镜像源站

docker

安装

engine

docker-ce
Docker CE 镜像源站
使用官方安装脚本自动安装 (仅适用于公网环境)
curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
手动安装帮助 (阿里云ECS可以通过内网安装,见注释部分内容)

Ubuntu 14.04 16.04 (使用apt-get进行安装)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

注意:其他注意事项在下面的注释中
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2、Step 3中的命令
# 经典网络:
# curl -fsSL http://mirrors.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# VPC网络:
# curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

CentOS 7 (使用yum进行安装)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r
# sudo yum -y install docker-ce-selinux-[VERSION]

# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
# sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
# sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo

安装校验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64

Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: false

第357天的前端面试问题

特别的遗憾以及正常。我没有一个会的哈哈。
前段时间投简历,面试凄惨+没啥职位可投递的。结果就是凄惨的继续原地呆着。
然后就是打算好好学学前端。先从各种面试问题开始吧。

[js] 第357天 document.domain的作用是什么?它有什么限制?

  1. document.domain 能够实现部分情况下的跨域访问的问题。
  2. 两个域名必须属于同一个基础域名!而且所用的协议,端口都要一致
    (端口可以在两个页面都设置domain,将端口重置为null 来实现跨域)

[css] 第357天 你有使用过css的属性background-blend-mode吗?说说它的运用场景有哪些?

[html] 第357天 input元素size属性和width 的区别是什么?

size:在MDN的定义:

控件的初始大小。以像素为单位。但当type 属性为text 或 password时, 它表示输入的字符的长度。从HTML5开始, 此属性仅适用于当 type 属性为 text, search, tel, url, email,或 password;否则会被忽略。 此外,它的值必须大于0。 如果未指定大小,则使用默认值20。 HTML5 概述 “用户代理应该确保至少大部分字符是可见的”, 但是不同的字符的用不同的字体表示可能会导致宽度不同。在某些浏览器中,一串带有x的字符即使定义了到x的大小也将显示不完整。 。

而width应该是指的是css行内式,HTML5的input中也有对应width的属性

如果type属性的值是image,这个属性定义了按钮图片的宽度。

如果 size 和 style=’width:xx’ 同时使用的时候,最终由 style=’width:xx’ 来决定。

指令最常见的一个应用是创建可重用构件。

下面的为代码展示了一个简单版本的对话框指令的使用。

1
2
3
4
5
6
7
8
9
10
<div>
<button ng-click="show=true">show</button>

<dialog title="Hello ."
visible="show"
on-cancel="show = false"
on-ok="show = false; doSomething()">
Body goes here: is .
</dialog>
</div>

点击 “show” 按钮会打开对话框。对话框会有一个和 username 绑定的标题,同时会有一个主体,这个主体我们是通过在对话框指令定义中的模板通过 transclude 插入的。

下面是 dialog 指令中的模板属性:

1
2
3
4
5
6
7
8
<div ng-show="visible">
<h3></h3>
<div class="body" ng-transclude></div>
<div class="footer">
<button ng-click="onOk()">Save changes</button>
<button ng-click="onCancel()">Close</button>
</div>
</div>

上面这个指令的模板还不能适当地渲染,除非我们施上一些魔法。

第一个问题是解决对话框模板中需要的 title 数据。而我们希望模板中的 title 和指令

被使用时的 title 属性一致(也就是 “Hello “)。而且,模板中的按钮会去调用作用域中的 onOk 和 onCancel 两个函数,而这两个函数的来源也在指令的属性中有定义,要解决的就是映射的问题了。为了解决这个映射问题,我们使用本地 scope 创建本地变量(模板中需要的数据和函数)和外部变量(指令中已有的属性)映射:

1
2
3
4
5
6
scope: {
title: '@', // the title uses the data-binding from the parent scope
onOk: '&', // create a delegate onOk function
onCancel: '&', // create a delegate onCancel function
visible: '=' // set up visible to accept data-binding
}

在指令的作用域创建本地变量会产生两个问题:

独立的作用域 - 如果用户(译注:使用对话框指令的开发者)在使用 dialog 指令时忘记设置 title 属性,那么对话框指令的模板中的 title 解析时则会去绑定父级作用域中的同名属性。这是完全不可预测的,也不是我们希望看到的。

transclusion - 通过引用包含的DOM节点可以看到指令的本地变量,而这本地变量有可能会重写掉一些 transclusion (引用包含)中数据绑定的同名属性。在上述例子中,比如像指令所在的 scope 中的 title 属性就重写了在 transclusion (引用包含)的作用域的 title 属性(译注:这里 Body goes here: is 作用域与Transcluded指令是如何工作的. 是通过 transclusion 插入到 dialog 指令模版中拥有 ng-transclude 属性的div中,这样它里面的 title 插值就会被 dialog 本地的 title 值改写 )

为了解决缺少隔离的问题,指令会声明一个 isolated 作用域。一个隔离的作用域不会通过基于原型的方式继承它的父级作用域,所以我嗯就不用担心会有属性被意外改写的情况了。

但是,独立的作用域引来了另外一个问题:如果一个 transcluded(引用包含的) DOM节点是一个指令独立作用域的孩子节点的话,那么它不会绑定到任何数据(译注:像我们上面例子中的情况,就属于绑定不到数据)。出于此,在指令为本地变量创建出独立的作用域之前,我们需要声明 transcluded(引用包含的)作用域是原始作用域(也是独立作用域的父级)的孩子。这样,引用包含创建的作用域就和独立作用域拥有同样的父级,也就是说它们是兄弟作用域。

这会让一切看起来意想不到的复杂,但至少它让指令(控件)的用户和开发者不会那么难以接受。

因此,我们上面例子中指令作用域的声明,最后开起来是这样子的:

1
2
3
4
5
6
7
8
9
transclude: true,
scope: {
title: '@', // the title uses the data-binding from the parent scope
onOk: '&', // create a delegate onOk function
onCancel: '&', // create a delegate onCancel function
visible: '=' // set up visible to accept data-binding
},
restrict: 'E',
replace: true

译注:最后关于引用包含的作用域这边是一个例子,更好帮你理解 transclue

1
2
3
4
5
6
7
8
9
10
  <configSections>
<section name="ReplaceStr" type="System.Configuration.DictionarySectionHandler" />
</configSections>


<ReplaceStr>
<add key="(" value="0"/>
<add key=")" value="0"/>
</ReplaceStr>

1
2
3
var section = (ConfigurationManager.GetSection("ReplaceStr") as System.Collections.Hashtable)
.Cast<System.Collections.DictionaryEntry>()
.ToDictionary(n => n.Key.ToString(), n => n.Value.ToString());

复制了 cmd MarkDown的语法说明。删除不支持的

1. 标题

使用 === 表示一级标题,使用 — 表示二级标题。

示例:

1
2
3
4
5
6
7
这是一个一级标题
============================

这是一个二级标题
--------------------------------------------------

### 这是一个三级标题

你也可以选择在行首加井号表示不同级别的标题 (H1-H6),例如:# H1, ## H2, ### H3,#### H4。

2. 文本样式

Markdown支持4中文本样式,分别是:加粗、斜体、删除线和加粗且斜体。

样式 关键字 快捷键 样例 输出
加粗 ** **或者__ __ command/control+b **加粗文本** 加粗文本
斜体 * *或者_ _ command/control+i _斜体文本_ 斜体文本
删除线 ~~ ~~ ~~删除线~~ 删除线
加粗且斜体 ** **和_ _ **这个是:_加粗且斜体_** _这个是_加粗且斜体

3. 外链接

使用 [描述](链接地址) 为文字增加外链接。

示例:

这是去往 本人博客 的链接。

4. 无序列表

使用 *,+,- 表示无序列表。

示例:

  • 无序列表项 一
  • 无序列表项 二
  • 无序列表项 三

5. 有序列表

使用数字和点表示有序列表。

示例:

  1. 有序列表项 一
  2. 有序列表项 二
  3. 有序列表项 三

6. 文字引用

使用 > 表示文字引用。

示例:

野火烧不尽,春风吹又生。

7. 行内代码块

使用 `代码` 表示行内代码块。

示例:

让我们聊聊 html

8. 代码块

使用 四个缩进空格 表示代码块。

示例:

这是一个代码块,此行左侧有四个不可见的空格。

9. 插入图像

使用 ![描述](图片链接地址) 插入图像。

示例:

我的头像

2. 标签分类

在编辑区任意行的列首位置输入以下代码给文稿标签:

标签: 数学 英语 Markdown

或者

Tags: 数学 英语 Markdown

3. 删除线

使用 ~~ 表示删除线。

这是一段错误的文本。

6. 加强的代码块

支持四十一种编程语言的语法高亮的显示,行号显示。

非代码示例:

1
$ sudo apt-get install vim-gnome

Python 示例:

1
2
3
4
5
6
7
8
9
10
11
12
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None

class SomeClass:
pass

>>> message = '''interpreter
... prompt'''

JavaScript 示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* nth element in the fibonacci series.
* @param n >= 0
* @return the nth element, >= 0.
*/
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}

document.write(fib(10));

12. 表格支持

项目 价格 数量
计算机 $1600 5
手机 $12 12
管线 $1 234

14. Html 标签

本站支持在 Markdown 语法中嵌套 Html 标签,譬如,你可以用 Html 写一个纵跨两行的表格:

<table>
    <tr>
        <th rowspan="2">值班人员</th>
        <th>星期一</th>
        <th>星期二</th>
        <th>星期三</th>
    </tr>
    <tr>
        <td>李强</td>
        <td>张明</td>
        <td>王平</td>
    </tr>
</table>
值班人员 星期一 星期二 星期三
李强 张明 王平

16. 待办事宜 Todo 列表

使用带有 [ ] 或 [x] (未完成或已完成)项的列表语法撰写一个待办事宜列表,并且支持子列表嵌套以及混用Markdown语法,例如:

- [ ] **Cmd Markdown 开发**
    - [ ] 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
    - [ ] 支持以 PDF 格式导出文稿
    - [x] 新增Todo列表功能 [语法参考](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments)
    - [x] 改进 LaTex 功能
        - [x] 修复 LaTex 公式渲染问题
        - [x] 新增 LaTex 公式编号功能 [语法参考](http://docs.mathjax.org/en/latest/tex.html#tex-eq-numbers)
- [ ] **七月旅行准备**
    - [ ] 准备邮轮上需要携带的物品
    - [ ] 浏览日本免税店的物品
    - [x] 购买蓝宝石公主号七月一日的船票
    

对应显示如下待办事宜 Todo 列表:

  • Cmd Markdown 开发
    • 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
    • 支持以 PDF 格式导出文稿
    • 新增Todo列表功能 语法参考
    • 改进 LaTex 功能
      • 修复 LaTex 公式渲染问题
      • 新增 LaTex 公式编号功能 语法参考
  • 七月旅行准备
    • 准备邮轮上需要携带的物品
    • 浏览日本免税店的物品
    • 购买蓝宝石公主号七月一日的船票

本来打算写点 python 界面的东西,但是想想自己了解的也不多,打算写的时候还不如简单回顾一下2019年的自己。

回顾下2019年自己的大事吧:

  1. 最大的事算是儿子的降生。
  2. 换了工作

目前看来也就这两件事吧。

儿子来啦

我和媳妇都是独生子女,即使到了怀孕的时候感觉自己还是很任性的。总有一种没长大的感觉,想玩玩,想吃吃。没有太多牵挂的事,媳妇更是保持着部分少女行,没事撒娇啥的.儿子来了以后媳妇和我都长大了一些。也算为人父母,更加知道照顾孩子了。在月子里,住在了丈母娘家里,这是当初一起计划的,结果在住过去后发生了一些不愉快的事情,虽然事情的主角不是我们,但是我俩依然很不自在。现在夫妻俩都是打工的,孩子目前也没有更好的照顾的办法,以后的路更长,不知道有啥好办法。只能希望儿子能健康成长吧。

换工作

从17年末开始尝试的投递简历,换换工作。自己英语不好,表达能力也不咋好,导致在面试的时候各种悲剧,本身面试的公司也不多,结果就更凄惨的不行。其中还有比较坑的HR,面试官。结果导致两年的面试结果很不好。这导致了我自己的担忧,担心以后没法找工作。毕竟原公司的领导朝令夕改也是常事,自己看自己在这的发展也只是慢慢的熬资历而已,而且领导不喜欢我的性格。所以坚定了要换一家。在年中,在埃森哲的第N此面试通过了。18年的时候成功的了一次工资和当时涨幅很少,今年更惨,几乎没涨幅了。但是因为想换,而且年终也会多一个月的工资,所以还是收下了这个offer。
这来了埃森哲以后,真是一言难尽。这项目组就是一个卖人的部门。把人卖个客户,客户是埃森哲的BPO流程改善部门。在最开始找工作的时候,就有人说过尽量还是不去BPO的好,因为他们追求的不是技术解决问题。而且改善流程,而且要最少的花销。这导致了BPO都是希望找一些第三方的工具,简单分装后就要能够使用。根本没有深入的对技术进行研究,真正的改善流程。而且面向的使用人员也少,所以导致整个项目没有太多的技术含量。来了半年,写的winform,和一些各种乱造的工具tool产品。对于主流的技术,真是越来越远。
都是想到哪写到哪,可能前后的逻辑比较乱。当时自己的一通牢骚。

新年展望

希望儿子能够健康成长,我自己应该首先攻克英语的难关,在大连语言有时候比技术更重要,技术旗鼓相当的当然选语言好的。英语真的是必备的第二技能。

牢骚,也来的仔细修改。这可能就是我的性格的缺点吧。

2020 01 02 酱油的时候留下的一篇牢骚。

###基础

Combobox 包含在 ‘ttk’ 中,所以需要先引入 ttk

Combobox 支持的属性:

  • values 或者 value :
  • state : readonly
  • current: 选中的内容
  • ComboboxSelected :绑定的选择事件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import tkinter
from tkinter import ttk # 导入ttk模块,因为下拉菜单控件在ttk中

root = tkinter.Tk()
root.title("root")
root.geometry("300x200+10+20")

xVar = tkinter.StringVar()

# 创建下拉菜单
cmb = ttk.Combobox(root,textvariable=xVar)
cmb.pack(side=tkinter.TOP)

# 设置下拉菜单中的值
cmb['value'] = ('上海','北京','天津','广州')

# 设置默认值,即默认下拉框中的内容 默认值中的内容为索引,从0开始
cmb.current(2)

# 执行函数
def func(event):
lVar.set('label1'+cmb.get())
label2.config(text='label2'+xVar.get())
cmb.bind("<<ComboboxSelected>>",func)

lVar = tkinter.StringVar()

label1 = tkinter.Label(root,textvariable=lVar,)
label1.pack(side=tkinter.TOP)

label2 = tkinter.Label(root,bg='green')
label2.pack(side=tkinter.TOP)

root.mainloop()
1

这个是转载的文章,但是我在配置的过程中遇到了几个问题,都在此记录一下,防止之后自己又记不住了。(以前总以为自己能记住几个特殊的步骤,回头发现之后俄都是自欺欺人啊)

原文地址
原文内容也贴过来,备用啊。

原文对我有用的

三、服务器机房选择
洛杉矶机房二选一(DC2 QNET、DC4 MCOM)。DC4为搬瓦工新加机房。
实际体验上半斤八两。
加拿大、荷兰机房最好不要选择。
根据概率论,美国与赵国的网络连接基数大,IP被封杀的机率低

四、服务器购买
支付宝购买即可。美刀自动换算为人民币

有6.25趴优惠码(BWH26FXH3HIQ)可用。优惠码来自网络,有效期不详。可省1.25美刀,最终需支付18.74美刀

五、服务器系统选择
默认系统是 Centos 6 x86 bbr。

BBR是谷歌出品的拥塞控制算法,据说优化网速有奇效

建议换为Centos 7 x86_64 bbr。Centos 6 太老,官方包的python只支持到2.6。没有Systemd服务管理工具

六、Shadowsocks服务安装

  1. 安装Shadowsocks
    yum install -y epel-release 安装Centos社区仓库,pip与sodium在里头
    yum install -y python2-pip libsodium git pip和git用来安装Shadowsocks libsodium用于支持chacha20加密算法
    pip install git+https://github.com/shadowsocks/shadowsocks.git@master 从Shadowsocks官方Git仓库的主分支下载Shadowsocks源码并安装
  2. 添加Shadowsocks为Systemd服务
    创建并填充 /usr/lib/systemd/system/myss.service
    1
    2
    3
    4
    5
    [Unit]
    Description=My shadowsocks server

    [Service]
    ExecStart=/usr/bin/ssserver -k password -m chacha20 -p 33333
  3. 启动Shadowsocks服务
    systemctl start myss 启动服务
    systemctl status myss 查看服务运行状态
    stop 停止服务 restart 重启服务
    七、Shadowsocks的使用
  4. 运行本地代理服务
    sslocal -s -k password -m chacha20 -p 33333 -l 44444

Shadowsocks会开启一个SOCKS5本地代理。

端口最好更改一下,减小被封杀机率

加密方法建议选择chacha20,CPU负载低,给搬瓦工公司节省几分钱电费

  1. 测试代理是否工作
    curl –socks5-host localhost:44444 www.google.

补充1

使用mac的termanil可以直接进行ssh的链接。
命令:

1
ssh root@**.**.**.** -p 26556

接下来输入密码即可
这个比网页上自带的bash页面好很多,也能直接编辑文件什么的

补充2

执行 安装Shadowsocks 中的安装源和pip的时候,会提示已经安装,但是安装pip的时候依然提示找不到包,原因是默认禁用了epel,所以需要我们开启这个源。
搜到大多数的方法都是编辑文件,当时不会用term 进行ssh链接,所以找到了这个命令行修改的方式

1
yum-config-manager --enable remi

补充3

创建的命令
usr/lib/systemd/system/myss.service

vim 内的保存推出是 wq。

补充4

第一次设置完成后不好用,不知道端口不对还是其他参数有问题,所以使用了之前的配置可以正常使用了。下回配置的时候注意