继开 | 博客

热爱生活,努力学习,实现自己的价值


  • 短诗的序

  • 迷途自渡

  • 寒星三两

  • 林深见鹿

  • 记昨日书

  • 顾探往昔

Docker指定网桥和网段

发表于 2020-09-10
字数统计: 348 字 | 阅读时长 ≈ 2 min

1. docker指定网桥

docker默认使用docker0网桥,网段为172.17.0.1/24,如果需要我们可以指定使用使用自己定义的网桥。
指定网桥:
安装网桥创建工具brctl:

1
sudo yum install -y bridge-utils

首先需要创建使用的网桥

1
2
3
4
5
6
7
8
9
10
 1.停止 Docker 服务
service docker stop

# 2.创建新的网桥(新的网段)
brctl addbr bridge0
ip addr add 192.168.2.1/24 dev bridge0
ip link set dev bridge0 up

# 3.确认网桥信息
ip addr show bridge0

然后在 /etc/dcoker/daemon.json(没有改文件,可创建)中添加如下信息:

1
2
# 4.修改daemon.json
"bridge":"bridge0"
1
2
3
4
5
6
7
8
9
10
11
12
# 5.重启 Docker
service docker start

# 确认 NAT 网络路由
iptables -t nat -L -n

# 6.删除不再使用的网桥
ip link set dev docker0 down

brctl delbr docker0

iptables -t nat -F POSTROUTING

此时docker 使用的网桥和网段将是你自定义的

2. 指定网段一

有时候我们只需要修改网段,可以在/etc/docker/daemon.json中添加如下信息:

1
"bip":"192.168.110.1/24"

重启docker,此时使用指定的网段

3. 指定网段二

上述两种方法适合安装docker-ce以及docker-x86_64,当安装的docekr.x86-64版本,还有另外一种方法指定网段。

在/etc/sysconfig/docker-netwoek中指定网段

1
DOCKER_NETWORK_OPTIONS= --bip=192.18.0.1/16

docker警告:Your Kernel Does Not Support Cgroup Swap Limit Capabilities

发表于 2020-09-09
字数统计: 188 字 | 阅读时长 ≈ 1 min

问题

运行docker时如果使用命令``出现如下警告:

1
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.

解决方案

这是在ubuntu或其他基于Debian的系统上才会出现的问题,原因是系统默认未开启swap限制。(开启后会使系统内存占用多1%,性能下降约10%,即使没有运行docker)

1
Memory and swap accounting incur an overhead of about 1% of the total available memory and a 10% overall performance degradation, even if Docker is not running.

开启方法:

首先使用sudo -i获取系统sudo权限
修改系统的/etc/default/grub文件。使用vim在这个文件中添加一行:

1
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

更新系统的GRUB:

1
sudo update-grub

改动在系统下次重启后生效。

Supervisor进程管理程序

发表于 2020-09-08
字数统计: 1,908 字 | 阅读时长 ≈ 8 min

supervisor进程管理程序

一、supervisor简介

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

注:本文以centos7为例,supervisor版本3.4.0。

二、supervisor安装

配置好yum源后,可以直接安装

1
yum install supervisor

安装Linux的epel的yum源的命令,某些yum源会提示无supervisor源码包,此时可以使用此命令

1
yum install epel-release

Debian/Ubuntu可通过apt安装

1
apt-get install supervisor

pip安装

1
pip install supervisor

easy_install安装

1
easy_install supervisor

三、supervisor使用

supervisor配置文件:/etc/supervisord.conf
注:supervisor的配置文件默认是不全的,不过在大部分默认的情况下,上面说的基本功能已经满足。

子进程配置文件路径:/etc/supervisord.d/
注:默认子进程配置文件为ini格式,可在supervisor主配置文件中修改。

四、配置文件说明

supervisor.conf配置文件说明:

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
[unix_http_server]
file=/tmp/supervisor.sock ;UNIX socket 文件,supervisorctl 会使用
;chmod=0700 ;socket文件的mode,默认是0700
;chown=nobody:nogroup ;socket文件的owner,格式:uid:gid

;[inet_http_server] ;HTTP服务器,提供web管理界面
;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
;username=user ;登录管理后台的用户名
;password=123 ;登录管理后台的密码

[supervisord]
logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_backups=10 ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info ;日志级别,默认info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid 文件
nodaemon=false ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024 ;可以打开的文件描述符的最小值,默认 1024
minprocs=200 ;可以打开的进程数的最小值,默认 200

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord

; [program:xx]是被管理的进程配置参数,xx是进程的名称
[program:xx]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run ; 程序启动命令
autostart=true ; 在supervisord启动的时候也自动启动
startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3 ; 启动失败自动重试次数,默认是3
user=tomcat ; 用哪个用户启动进程,默认是root
priority=999 ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程

;包含其它配置文件
[include]
files = relative/directory/*.ini ;可以指定一个或多个以.ini结束的配置文件

子进程配置文件说明:
给需要管理的子进程(程序)编写一个配置文件,放在/etc/supervisor.d/目录下,以.ini作为扩展名(每个进程的配置文件都可以单独分拆也可以把相关的脚本放一起)。如任意定义一个和脚本相关的项目名称的选项组(/etc/supervisord.d/test.conf):

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
#项目名
[program:blog]
#脚本目录
directory=/opt/bin
#脚本执行命令
command=/usr/bin/python /opt/bin/test.py

#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=false
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=1

#脚本运行的用户身份
user = test

#日志输出
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 20M
#stdout日志文件备份数
stdout_logfile_backups = 20

子进程配置示例:

1
2
3
4
#说明同上
[program:frp]
command = /your/path/frps -c /your/path/frps.ini
autostart = true

五、supervisor命令说明

常用命令

1
2
3
4
5
6
supervisorctl status        //查看所有进程的状态
supervisorctl stop es //停止es
supervisorctl start es //启动es
supervisorctl restart //重启es
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序

注:把es换成all可以管理配置中的所有进程。直接输入supervisorctl进入supervisorctl的shell交互界面,此时上面的命令不带supervisorctl可直接使用。

注意事项
使用supervisor进程管理命令之前先启动supervisord,否则程序报错。
使用命令

1
supervisord -c /etc/supervisord.conf

启动。
若是centos7:

1
2
systemctl start supervisord.service     //启动supervisor并加载默认配置文件
systemctl enable supervisord.service //将supervisor加入开机启动项

常见问题
1.unix:///var/run/supervisor.sock no such file
问题描述:安装好supervisor没有开启服务直接使用supervisorctl报的错
解决办法:

1
supervisord -c /etc/supervisord.conf

2.command中指定的进程已经起来,但supervisor还不断重启
问题描述:command中启动方式为后台启动,导致识别不到pid,然后不断重启,这里使用的是elasticsearch,command指定的是$path/bin/elasticsearch -d
解决办法:supervisor无法检测后台启动进程的pid,而supervisor本身就是后台启动守护进程,因此不用担心这个

3.启动了多个supervisord服务,导致无法正常关闭服务
问题描述:在运行supervisord -c /etc/supervisord.conf之前,直接运行过supervisord -c /etc/supervisord.d/xx.conf导致有些进程被多个superviord管理,无法正常关闭进程。
解决办法:使用ps -fe | grep supervisord查看所有启动过的supervisord服务,kill相关的进程。

更多信息请移步Supervisor官网:http://supervisord.org
参考文章:

1.进程管理supervisor的简单说明 - jyzhou -博客园

2.supervisor 使用详解 - 11111 - CSDN博客

Frp内网穿透服务端与客户端配置

发表于 2020-09-07
字数统计: 2,712 字 | 阅读时长 ≈ 11 min

frp内网穿透服务端与客户端配置

之所以选择frp,是因为:更新了新功能,越来越完善;Ngrok又需要编译啥的,比较繁琐。
官方的配置文档很清楚了,最近更新了tcp和kcp等新功能,请尽量参考官方文档!

项目地址:https://github.com/fatedier/frp

项目配置说明:https://github.com/fatedier/frp/blob/master/README_zh.md

[服务端] frps.ini 配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[common]
bind_port = 7000
#vhost_http_port 网站访问端口
vhost_http_port = 80
#vhost_https_port = 443
#dashboard_port 状态以及代理统计信息展示,网址:7500可查看详情
dashboard_port = 7500
log_file = ./frps.log
log_level = info
log_max_days = 3
#privilege_mode 特权模式,开通后web,ssh等使用都可以直接在客户端设置
privilege_mode = true
#特权连接密码
privilege_token = 12345678 这里的密码大家改复杂点
#max_pool_count 最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50
  • [客户端] frpc.ini 配置
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
[common]
#server_addr服务器ip
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
log_file = ./frpc.log
log_level = info
log_max_days = 3
#特权连接密码
privilege_token = 12345678

[Web]
#privilege_mode特权模式
privilege_mode = true
type = http
local_ip = 127.0.0.1
local_port = 80
#custom_domains域名
custom_domains = youname.com,www.youname.com
pool_count = 10



[ssh]
privilege_mode = true
type = tcp
#remote_port外部端口
remote_port = 10086
local_ip = 127.0.0.1
#local_port内部端口
local_port = 22
use_gzip = true
use_encryption = true
pool_count = 2
  • 让客服端与服务端常驻后台
1
2
3
4
5
6
7
8
#开启另一个子终端 任务名字 frp
root@hxyisme:~#screen -S frp
#分别运行 frp 服务端和客服端程序
root@hxyisme#./frpc -c ./frpc.ini

#如果需要关闭 frp
screen -S frp 后
ctrl+c 即可

frp内网穿透 服务端 frps.ini各配置参数详解

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
[必须]标识头
[common]
是不可或缺的部分
[必须]frps服务端IP
server_addr = 0.0.0.0
0.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务端的服务器(VPS)IP。
[必须]frps服务端通讯端口
server_port = 7000
客户端连接到服务端内网穿透传输数据的端口,请改为服务端已配置的对应端口。
[必须]连接认证密钥-特权模式
privilege_token = www.nat.ee
客户端连接到FRP服务端的登录验证密钥,请改为服务端已配置的对应密钥。
记录运行日志
日志存放路径
log_file = /etc/frp/log/frps.log
请改为需要存放在那里的正确路径。
日志记录类别
log_level = info
可选:trace, debug, info, warn, error
最多保存多少天日志
log_max_days = 7
可自定义保存多少天。
你的内网穿透名称,将显示为 {名称}.{对应服务名称}
user = your_name
请填大小写字母和数字,不要用中文填写。
决定第一次登录失败时是否退出程序,否则连续登录到frps服务端
login_fail_exit = true
可选:false,true
默认是true,否则可以不填此参数或者改为false,则持续连接登录到frps而不退出。
用于连接frps服务端的通讯协议
protocol = tcp
支持tcp和kcp,默认是tcp
注意:kcp需要服务端配置参数已开启,才支持。
使用tcp流复用,默认为true
tcp_mux = true
可选:false,true
必须与frps服务端已经配置参数相同,否则服务端没有,可以不填此参数。
内网穿透服务限制最大连接池上限
pool_count = 5
限制本客户端内网穿透可以创建的总连接池上限,避免大量资源占用。可自定义。默认为0不限制,或者不填此参数。
注意:假如服务端已配置了限制,而你设置的高于服务端的,则按服务端的为准采取限制。
通过http api设置管理frpc动作的管理地址,例如reload
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

frp内网穿透 客户端 frpc.ini各配置参数详解

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
对应穿透服务名称
[name]
建立每个穿透服务,都需要命名一个此服务的名称,不能和其他已建立的相同。
穿透协议类型
type = tcp
可选:tcp,udp,http,https,stcp,xtcp
你要穿透什么应用要搞清楚,此应用是用什么协议的。
本地监听IP
local_ip = 127.0.0.1
可以是本地的局域网IP,也可以是本机的127.0.0.1 IP,
例如你的局域网是互通的,你可以在本设备建立穿透局域网其他IP的应用。
本地监听端口
local_port = 22
用于监听本地设备需要穿透的端口,比如我要穿透到本机的SSH端口,而SSH端口为22,则这样理解。
远程监听端口
remote_port = 6001
用于frps服务端的,分配建立穿透到内网对应应用的公网端口。
需要frps服务端已开放此端口给frpc客户端允许对接使用。
例如我可以连接到此(frps服务端IP:端口),则可以穿透到我的内网对应应用服务。
穿透通讯加密
use_encryption = false
可选:false,true
默认为false则不开启,或者不填此参数,为true则开启frps服务端和frpc客户端之间通讯加密。
穿透通讯压缩
use_compression = false
可选:false,true
默认为false则不开启,或者不填此参数,为true则开启frps服务端和frpc客户端之间通讯压缩。
分配自定义域名访问穿透服务
custom_domains = demo.com
用于你的穿透服务的唯一访问域名,假如没有域名,则此处请填为frps服务端的服务器(IP)
自己有多个域名,可以配置不同穿透应用服务,用不同域名,只需要将对应域名解析到frps服务端的服务器(IP)既可。
也支持泛解析识别,例如将(demo.com)域名已经泛解析到frps服务端的服务器(IP)
而想通过(abc123.demo.com)访问到对应穿透服务
则在对应穿透服务,custom_domains参数中填abc123.demo.com
分配对应穿透应用服务唯一的子域名,用于访问
subdomain = abc123
假如frps服务端已经配置了subdomain_host参数域名,并且已经泛(*)解析到frps服务端的服务器(VPS)IP,则可以使用此参数,否则不能用。
例如已经泛解析(demo.com)域名并且frps服务端配置好的,使用此subdomain参数,只需要填子域名,而不需要填(demo.com)
subdomain = 填abc123,则可以通过(abc123.demo.com)访问
为HTTP协议,添加HTTP用户名和密码安全认证
http_user = admin
自定义用户名
http_pwd = admin
自定义密码
仅支持http,https类型协议。
例如我的WEB页面,访问前,需要进行验证,才可以访问。可以添加此参数。
安全地暴露内网服务
对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
sk = abcdefg
可自定义
此参数用于进一步验证,本地访问穿透服务的安全连接,需要双方frpc客户端都需要配置,仅适用于stcp和xtcp协议类型。


修改 Host Header
通常情况下 frp 不会修改转发的任何数据。但有一些后端服务会根据 http 请求 header 中的 host 字段来展现不同的网站,例如 nginx 的虚拟主机服务,启用 host-header 的修改功能可以动态修改 http 请求中的 host 字段。该功能仅限于 http 类型的代理。
frpc.ini
[web]
type = http
local_port = 80
custom_domains = test.yourdomain.com
host_header_rewrite = dev.yourdomain.com
原来 http 请求中的 host 字段 test.yourdomain.com 转发到后端服务时会被替换为 dev.yourdomain.com。
URL 路由
frp 支持根据请求的 URL 路径路由转发到不同的后端服务。
通过配置文件中的 locations 字段指定一个或多个 proxy 能够匹配的 URL 前缀(目前仅支持最大前缀匹配,之后会考虑正则匹配)。例如指定 locations = /news,则所有 URL 以 /news 开头的请求都会被转发到这个服务。
frpc.ini
[web01]
type = http
local_port = 80
custom_domains = web.yourdomain.com
locations = /
[web02]
type = http
local_port = 81
custom_domains = web.yourdomain.com
locations = /news,/about
按照上述的示例配置后,web.yourdomain.com 这个域名下所有以 /news 以及 /about 作为前缀的 URL 请求都会被转发到 web02,其余的请求会被转发到 web01。
通过代理连接 frps
在只能通过代理访问外网的环境内,frpc 支持通过 HTTP PROXY 和 frps 进行通信。
可以通过设置 HTTP_PROXY 系统环境变量或者通过在 frpc 的配置文件中设置 http_proxy 参数来使用此功能。
仅在 protocol = tcp 时生效
frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
http_proxy = http://user:pwd@192.168.1.128:8080
插件
默认情况下,frpc 只会转发请求到本地 tcp 或 udp 端口。
插件模式是为了在客户端提供更加丰富的功能,目前内置的插件有 unix_domain_socket、http_proxy、socks5。
通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。使用插件后 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:
frpc.ini
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
plugin_http_user 和 plugin_http_passwd 即为 http_proxy 插件可选的配置参数。
范围端口映射
在 frpc 的配置文件中可以指定映射多个端口,目前只支持 tcp 和 udp 的类型。
这一功能通过 range: 段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。
例如要映射本地 6000-6005, 6007 这6个端口,主要配置如下:
frpc.ini
[range:test_tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 6000-6006,6007
remote_port = 6000-6006,6007

实际连接成功后会创建 6 个 proxy,命名为 test_tcp_0, test_tcp_1 ... test_tcp_5。

注意

用windows 修改配置文件的时候注意编码字符集
用windows 启动的时候,注意用户要有批量执行的策略权限
用windows 的文件路径注意用/而不是\

Ubuntu修改用户密码

发表于 2020-09-06
字数统计: 316 字 | 阅读时长 ≈ 1 min

Ubuntu是一个Linux操作系统,修改密码和用户名是有危险的动作,请谨慎修改。

Ubuntu更改密码步骤:
1、进入Ubuntu,打开一个终端,输入 sudo su转为root用户。 注意,必须先转为root用户!!!
2、sudo passwd user(user 是对应的用户名)
3、输入新密码,确认密码。
4、修改密码成功,重启,输入新密码进入Ubuntu。

Ubuntu更改用户名步骤:
1、进入Ubuntu,打开一个终端,输入 sudo su转为root用户。 注意,必须先转为root用户!!!
2、gedit /etc/passwd ,找到代表你的那一行,修改用户名为新的用户名。 注意:只修改用户名!后面的全名、目录等不要动!
3、gedit /etc/shadow,找到代表你的那一行,修改用户名为新用户名
4、gedit /etc/group,你应该发现你的用户名在很多个组中,全部修改!
5、修改完,保存,重启。

注意:修改的时候要格外小心,不要打错一个字母。

提示:如果你要修改密码和用户名的话,请先修改密码,重启后,再修改用户名,重启。如果你先修改用户名,再修改密码的话,可能会导致你登录不了Ubuntu。

Ubuntu设置开机自启动

发表于 2020-09-05
字数统计: 153 字 | 阅读时长 ≈ 1 min

Ubuntu设置开机自启动

我们使用 ubuntu Linux下常用的进程管理器supervisor来管理FRP服务。

首先需要安装supervisor

1
sudo apt install supervisor

然后在/etc/supervisor/conf.d下新建一个配置文件frp.conf,输入以下内容。command应该是你放置frp软件的位置。

1
2
3
4
5
[program:frp]

command = /root/frps -c /root/frps.ini

autostart = true

然后启动supervisor,如果事先已经安装好了supervisor那么就重新启动。之后查看一下supervisor的运行状态,看看frp是否已在运行。

重启supervisor

1
sudo systemctl restart supervisor

查看supervisor运行状态

sudo supervisorctl status

Ubuntu解决使用vi编辑时按上下左右变成ABCD的问题

发表于 2020-09-04
字数统计: 123 字 | 阅读时长 ≈ 1 min

会出现该问题的原因是原有的vim-common组件有问题,可以通过卸载原有的vim-common组件,安装新的vim来解决这个问题。

在退出文件编辑后使用命令

1
sudo apt-get remove vim-common

卸载原先的vim-common组件。

Ubuntu使用vi编辑时按上下左右变成ABCD
卸载完成后使用命令

1
sudo apt-get install vim

安装vim。

安装完成后再打开profile文件进行编辑,恢复正常。

Ubuntu下更改apt源为阿里云源

发表于 2020-09-03
字数统计: 809 字 | 阅读时长 ≈ 4 min

修改阿里云源

为了下载更方便,速度更快,我们往往在使用Linux系列系统时修改apt源为国内的源,一般选择有阿里云,豆瓣之类的,下面简单说下如何更改为阿里云源。

1.复制源文件备份,以防万一

我们要修改的文件是sources.list,它在目录/etc/apt/下,sources.list是包管理工具apt所用的记录软件包仓库位置的配置文件,同样类型的还有位于 同目录下sources.list.d文件下的各种.list后缀的各文件。

命令如下:

1
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.编辑源列表文件

命令如下:

1
sudo vim /etc/apt/sources.list

如果报错:sudo:vim:command not found 说明没装vim编辑器

使用命令:

1
sudo apt-get install vim 安装即可

若安装报错,用

1
sz sources.list

拉取出sources.list 在window 下编辑sources.list 文件
编辑完成之后

1
rz

命令进行将文件移入,移入之前将sources.list文件删除

1
rm sources.list

3.查看新版本信息

使用如下命令:

1
lsb_release -c

得到本系统的系统代号,如下图所示:

1
Codename:	focal

我们可以看到新版本的Ubuntu系统代号为focal

同样的我们也可以得到之前任意版本的系统代号:

Ubuntu 12.04 (LTS)代号为precise。

Ubuntu 14.04 (LTS)代号为trusty。

Ubuntu 15.04 代号为vivid。

Ubuntu 15.10 代号为wily。

Ubuntu 16.04 (LTS)代号为xenial。

所以这也就解释了为什么我们百度出来的那么多方案里面内容不尽相同的原因,因为他们更改apt安装源时用的系统不一样。

4.将原有的内容注释掉,添加以下内容(或者你把里面内容修改成下面的就可以,但是不能有除了以下内容的有效内容)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse



deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse



deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

值得注意的是sources.list文件的条目都是有格式的(通过上面的内容大家也看的出来),一般有如下形式

1
2
deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3

所以后面几个参数是对软件包的分类(Ubuntu下是main, restricted,universe ,multiverse这四个)

所以你把内容写成

1
2
3
4
5
6
7
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed universe multiverse

5.更新软件列表

运行如下命令:

1
sudo apt-get update

6.更新软件包

运行如下命令:

1
sudo apt-get upgrade
1…293031…38

继开

一辈子很短,努力的做好两件事就好:第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱。

303 日志
171 标签
RSS
gitee E-Mail
0%
鲁ICP备18007712号
© 2025 继开 | 站点字数统计: 262.2k
博客使用 Hexo 搭建
|
主题 — NexT.Mist v5.1.4
人访问 次查看