筌者所以在鱼,得鱼而忘筌;言者所以在乎,得意而忘言
序
从2020由于疫情居家开始,笔者第一次由于“学生免费试用服务器”接触到了云服务器,再之后学习linux,接触RasberryPi,到成为Tanglab的主力运维,也算是将近3年。不得不说运维的过程便是不断学习的过程,时代太快了,熟悉的工具、流程和技术一晃就跟不上需求,但感悟到自己的“雕虫小技”被人取笑的时侯,还是能获得些许的满足感。
对笔者这些业余人士来说,不须要学习底层原理,运维只是学习工具的过程。把握数倍于人的工具,能够获得难以替代的价值。
正所谓“得鱼而忘荃,得意而忘言”,摸索新事物本身就是运维的乐趣所在。为此,承继上一篇Tutorial面向科研人员的Markdown应用教程,本篇笔者凑合如何以最低的门槛、最有趣的程度入门运维进行一个介绍。
找寻一个动机
笔者身边的好多同学,无论背景,多少都有过一些运维的经历。事实上这也是大多数人的情况,看见他人的操作,不禁提出“我也想试试”。所以大多数人都不缺乏相关的技术,只是缺乏一个动机罢了。
那边,笔者给出了一些了解到的、常见的动机:
依据动机的不同,方案也急剧改变。本文主要是面向有意愿学习相关技术、从事实验性学科的读者的,所以笔者按照“轻松”的原则,以腾讯云为例,以下次序进行实践简介,相信通过1-2天的实践,读者能够迅速入门,感悟到维护一个私有服务器的乐趣。
简介ConnectMyServer:连上我的服务器
首先,笔者先假定读者早已拥有了一个腾讯云的服务器,其实读者把它替换成局域网下的Server、阿里云、华为云、亚马逊云都是一样的。腾讯云服务器中学生免费试用,但是新人第一年2核轻量应用服务器只要50元(2022.11.07),笔者觉得对新人很友好,下边借此为例说明使用技巧。作为服务器,ubuntu22.04Server64bit是目前比较新且主流的环境。
初学者最好的学习途径就是阅读图文并茂的官方文档,其详尽程度让人感概这显然不是面向小学生、而是以中学生都能看懂并学会的标准进行的写作。学习用WEBUI操作的同时,也可以一并把防火墙的端口打开、默认的登录密码改掉,便捷后续的操作。
不过,考虑到陌陌很难用,用陌陌登录腾讯云用WEBUI的体验并不好中文linux操作系统,所以本地化的登录方案也应当被考虑。你须要的,就是记住帐号、密码、服务器IP,之后打开她们:
OrderMyServer:如身使手,如手使指
假如你对Linux有足够多的使用经验,完全可以跳过这一节。不过,为了便利初心者,那边有一份最基础的linux入门教程,笔者第一次读时也学到了不少新内容。
然而,把握这种只是学习了使用的基础,却不足以让服务器显得“好用”。如同Everything之于windows一样,我们须要一些微小的工作来让工作环境更整洁、易用:
最后,通常还须要更新环境:关于那些内容,可以阅读笔者的其他文章Tutorial:从零开始的Linux使用【1】Tutorial:从零开始的Linux使用【2】。相信在阅读以后,你对linux的使用早已有了初步的理解。
域名:一个好名子能让同学更容易记住你
服务器最重要的一点就是须要一个固定IP,而云服务器通常都绑定了一个固定的网段IPV4地址ubuntu利用镜像安装sshlinux使用教程,这无疑是非常便捷的。假如对IPV4、DNS这种互联网的基本概念还不理解,可以参考少数派上的小白也能读懂的网路基础系列。
一个好域名不但可以让你的同事更容易记住你,也可以用作一个服务器不同功能的分辨:例如我的.tech域名就指向我的互联网工具,而.space则指向我的游戏服务器。据悉,当服务器迁移时,只须要修改域名解析的地址,就可以维持web服务的稳定。因而,一个好域名是必不可少的。
其实,在国外的大厂商订购域名肯定是须要初审和备案的,不过海外域名笔者不熟,不作介绍。
Github:同步率100%
关于github,网上的教程实在太多,那边就不狗尾续貂了。学习Github最直接的方式其实是阅读官方文档。假如想进一步学习git的行使用(尽管使用网页版的UI界面或则Github-Destop也能实现),那也有对应的英文教程。不过在实际生产中行的使用也不频繁,所以笔者更推荐将Github-Destop作为生产力工具。
笔者主要想讲的,是将Github应用于科研生产之中。在Github开源项目排名榜上可以见到许多广受好评的项目,例如:
其实,不仅上述有名的大项目和各种实用的工具ubuntu利用镜像安装ssh,github上也不乏一些有意思的库房:
其实Github上好玩的东西尚且好多,在下载以外,github上还提供了GithubPages,可用于搭建网站,用法也十分简单。
据悉,笔者推荐也创建一个和名子一样的库,在其中写一份README.md。这些同名库不但可以作为个人主页/Github封面使用,还可以创造一些有意思的特效。参考
Homepage:写点东西
在所有网页服务中,最基本的就是个人主页。一个好的个人主页可以作为简历、资料站、发布页……今天搭建个人主页的形式日趋多样,既可以布署到Github、Netflify等网站;也可以在个人主机或则Server上发布,借助外网穿透、DDNS或则网段IP进行访问。据悉,互联网平台也为个人主页的搭建提供了非常详细的教程。
目前主流的个人主页都是基于HEXO或则HUGO进行搭建,笔者只对后者有所了解。HEXO作为国外比较主流的博客框架有较好的教程支持,例如EASY-HEXO就做到了小三文鱼也能读懂。据悉,腾讯云官方文档也对布署HEXO有着详尽的教程。
须要指出的是,布署hexo不须要任何代码基础,并且完成布署后才会对git,markdown,云服务,网页框架有一个基础的认识,堪称是性价比极高的学习体验,强烈推荐你们试一试!下边是Tanglab成员的一些个人主页:
sudonpmconfigsetregistry
应用示例例1:在腾讯云20.04ubuntu服务器上构建基本的运行环境
换源
1
2
sudo su root
bash <(curl -sSL //gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)
更新包管理器
apt,python
1
2
3
4
5
6
7
8
9
10
sudo apt update
sudo apt-get update
sudo apt install python3-pip -y
sudo apt-get install python3-setuptools -y
sudo pip install --upgrade setuptools
sudo python3 -m pip install --upgrade pip
# python 软链接到 python3
sudo ln -s /usr/bin/python3 /usr/bin/python
python -V
nodejs
1
2
3
4
5
6
7
8
9
10
11
sudo apt -y update
# 下面请自行修改版本
curl -fsSL //deb.nodesource.com/setup_18.x | sudo -E bash - &&
sudo apt-get install -y nodejs
npm -V
node -v
# npm换源 //github.com/0fengzi0/Blog/issues/27
# 可以安装n作为nodejs版本管理器。n更简单,但是nvm对全局多版本兼容性支持更好。
npm install -g n
n latest
常用linux工具
1
2
3
sudo apt-get install fish -y
#更改默认: sudo chsh -s /usr/bin/fish
modern-unix
1
2
3
4
5
6
7
8
9
10
sudo npm install -g tldr
# snap 也是一个linux包管理器
# snap有一点不好,会装在用户目录下/home/jiangyd,但是snap不限制发行版而且不安装依赖,只是稍微大一些
sudo apt install snapd
sudo snap install bottom
sudo npm install gtop -g
sudo apt install fzf
sudo snap install procs
例2:搭建hexo博客(ayer主题)hexoinstall(themeayer)
1
2
3
4
5
6
7
8
9
# sudo npm config set registry //registry.npmmirror.com
sudo npm install -g hexo-cli
hexo -V
mkdir
hexo init
cd blogtest/
ls -al
hexo s
# 打开IP:4000 已经可以看到网页
ayer
1
2
3
4
5
6
7
8
9
10
11
12
npm i hexo-theme-ayer -S
# Modify theme setting in _config.yml to ayer
# theme: ayer
hexo s
# 打开IP:4000 已经可以看到网页的主题更改
# 根据下列网址自行修改需要的配置
# //easyhexo.com/1-Hexo-install-and-config/1-3-config-hexo.html#%E9%85%8D%E7%BD%AE-hexo-2
# //github.com/shen-yu/hexo-theme-ayer
# 将网页部署到github及其他平台(git使用有困难的,可以跳过或者去学习下git)
# //easyhexo.com/1-Hexo-install-and-config/1-4-deploy-hexo.html#%E9%83%A8%E7%BD%B2%E5%88%B0-github
# 进一步地,可以把整个文件包都打包成Github仓库并上传,这样每次下载后只需要npm install就可以完成异地部署了
例3:使用frp进行外网穿透
这部份主要对frp进行介绍。
frp是一个专注于外网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种合同。可以将外网服务以安全、便捷的方法通过具有网段IP节点的中转曝露到网段。frp具有配套英文文档。下边是代码示例,比起参考示例,更推荐阅读文档。
FRPS
1
2
3
4
5
#登陆服务器(root账号)
wget //github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_386.tar.gz
tar -zxvf frp_0.44.0_linux_386.tar.gz
vim frp_0.44.0_linux_386/frps.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[common]
bind_port = 7000
vhost_http_port = 7860
dashboard_addr = 0.0.0.0
dashboard_port = 7001
# 7860是为了适应StableDiffusionWebui
[ssh6001]
type = tcp
listen_port = 6001
[ssh6002]
type = tcp
listen_port = 6002
1
2
3
4
5
6
7
sudo vim /lib/systemd/system/frps.service
# 改版本号
sudo systemctl daemon-reload
sudo systemctl restart frps.service
sudo systemctl status frps.service
# //tanglab.cn:7001/ 可以看运行状况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=frps Server
Documentation=//github.com/fatedier/frp
After=network-online.target
[Service]
ExecStart=/home/ubuntu/frp_0.44.0_linux_386/frps -c /home/ubuntu/frp_0.44.0_linux_386/frps.ini
Type=simple
User=root
Group=nogroup
WorkingDirectory=/tmp
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
elias=rc-local.service
frpc
1
2
3
4
5
cd /smb/open-apps/
wget //github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_386.tar.gz
tar -zxvf frp_0.44.0_linux_386.tar.gz
chmod 777 -R /smb/open-apps/frp_0.44.0_linux_386/
vim /smb/open-apps/frp_0.44.0_linux_386/frpc.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[common]
server_addr =
server_port = 7000
log_file = /var/log/frpc.log
log_level = info
log_max_days = 3
login_fail_exit = true
[sshb205]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001
[web7860]
type = http
local_port = 7860 // 本地运行端口
custom_domains =
1
2
sudo vim /lib/systemd/system/frpc.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=frpc cilent
Documentation=//github.com/fatedier/frp
After=network-online.target
[Service]
ExecStart=/smb/open-apps/frp_0.44.0_linux_386/frpc -c /smb/open-apps/frp_0.44.0_linux_386/frpc.ini
Type=simple
User=root
Group=nogroup
WorkingDirectory=/tmp
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
elias=rc-local.service
1
2
3
4
5
sudo systemctl daemon-reload
sudo systemctl restart frpc.service
sudo systemctl enable frpc.service
sudo systemctl status frpc.service
# //github.com/xiaoming2028/FreePAC/wiki/2022%E5%B9%B4%E6%9C%80%E6%96%B0VPS%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC%E6%90%AD%E5%BB%BAV2ray%E8%AF%A6%E7%BB%86%E5%9B%BE%E6%96%87%E6%95%99%E7%A8%8B
写在最后
总结笔者不长的运维经历,经验如下:
本文原创地址://gulass.cn/ulyjxazsywdy.html编辑:刘遄,审核员:暂无