一直以来都很想拥有一台属于自己的服务器,刚好前段时间腾讯云搞活动,性价比贼高,就入手了一台,于是就一发不可收拾地开始了云服务器(Ubuntu)配置(折腾)之旅……
如果你也有购买云服务器的想法,可以参考一下这位UP主的视频,可能会对你有一些帮助:特仑小苏丶的个人空间-特仑小苏丶个人主页-哔哩哔哩视频
现在的中文论坛还是一言难尽,各家论坛互相借鉴(抄),遇到问题搜索引擎搜半天,不同的链接点进去都是一摸一样的文章,关键这文章有时候有的内容还是错的……
这段时间折腾的过程也是深一脚浅一脚踩了各种坑,每天各种ERROR、Failed数不胜数,痛并快乐着解决各种报错,好在目前终于算是勉强跑起来了。这一系列博客大概记录了折腾云服务器的过程,以及过程中参考到的,感觉写的还不错的链接,不过可能有的链接在你看到这篇文章时已经凉了。
如果内容恰好可以帮助到你,我非常开心!
更换国内镜像源
Ubuntu 24.04 抢先体验换国内源 清华源 阿里源 中科大源 163源_ubuntu24.04-CSDN博客
修改用户名和密码
ubuntu下修改主机名、用户名以及用户密码_unbutu的用户名初始是系统账号前几位数字怎么办-CSDN博客
卸载软件purge/remove
技术|apt remove 和 apt purge: 有什么区别?
ssh设置特定用户可以使用密码登录
在 Ubuntu 中設定特定用戶的 SSH 密碼登入方法 - Clarence 的科技學習實戰筆記
增加ssh欢迎信息
修改Ubuntu远程登录欢迎提示信息_ubuntu 用户登录后的欢迎信息怎么修改-CSDN博客
修改99-welcome文件的权限为755
文件内容可以用这个小工具生成shell中打印指定字符的图案:Text to ASCII Art Generator (TAAG)
例如:
1 | #!/bin/sh |
改终端为ZSH
Zsh 安装与配置,使用 Oh-My-Zsh 美化终端 | Leehow的小站
Oh My Zsh:Oh My Zsh - a delightful & open source framework for Zsh
zsh-autosuggestions:zsh-users/zsh-autosuggestions: Fish-like autosuggestions for zsh
zsh-syntax-highlighting:zsh-users/zsh-syntax-highlighting: Fish shell like syntax highlighting for Zsh.
mac修改zcompdump文件生成位置 - 慕小淘 - 博客园
我有多个.zcompdump
文件,为什么我有多个这些文件?-腾讯云开发者社区-腾讯云
ZSH主题更换为Powerlevel10k
发现一个很棒的主题Powerlevel10k:romkatv/powerlevel10k: A Zsh theme,可以基于Oh-My-Zsh进行配置。
终端环境:zsh 主题自定义 powerlevel10k - POLOXUE’s BLOG
打造酷炫终端(一)——Shell 配置 – LRL52 的博客
首先应该安装NerdFont字体:Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
在Ubuntu和其他Linux上安装新字体的方法 - LinuxStory
1 | cd /usr/share/fonts |
使用苦茶甜橙同款字体JetBrainsMonoNerdFontMono-Italic
,nerd-fonts/patched-fonts/JetBrainsMono/Ligatures/Italic/JetBrainsMonoNerdFontMono-Italic.ttf at master · ryanoasis/nerd-fonts
使用Fastfetch替代Neofetch和Screenfetch
Fastfetch is the Perfect Replacement for Neofetch - OMG! Ubuntu
Using Fastfetch, a Neofetch Alternative
解决vim编辑报错
vim或neovim编辑时遇到:
1 | E325: ATTENTION |
参考回答:vim - How to get rid of the warnings when opening a file that has a .swp file? - Super User,写得很详细。
Ubuntu添加或删除用户
【ubuntu】ubuntu添加或删除用户_ubuntu删除子账户-CSDN博客
生成并添加GitHub SSH密钥
参考官方文档:通过 SSH 连接到 GitHub - GitHub 文档
生成新的 SSH 密钥并将其添加到 ssh-agent - GitHub 文档
1 | ssh-keygen -t ed25519 -C "密钥备注信息" |
添加完成后可以使用ssh -T git@github.com
验证,出现成功信息即配置正确。
使用GPG为commit/tag添加签名
参考官方文档:管理提交签名验证 - GitHub 文档
添加签名可以证明代码的提交来自真正的作者,防止提交的代码被篡改,保证提交代码的安全性。
如果不对commit/tag进行签名,可以通过git的--author="Author Name <email@address.com>"
来对commit信息的作者信息进行篡改,然后提交,这就导致了代码提交者有可能并不是真实的作者本人,如果提交的代码中有恶意代码,会对既有代码造成危害。签名验证就是为了保证代码的提交者和作者是同一个人。
配置完成后,GitHub中自己提交commit之后,在Commits页面的提交处就会有一个绿色的Verified
标志。
对于可能出现的报错:
1 | error: gpg failed to sign the data |
How to understand the gpg failed to sign the data
problem in git
可能需要设置GPG的位置:git config --global gpg.program $(which gpg)
可能需要在终端配置文件中添加:export GPG_TTY=$(tty)
但是对于使用Powerlevel10k
并启用即时提示的zsh
用户要小心,使用export GPG_TTY=$(tty)
后,启动终端后的GPG_TTY值可能会得到not a tty
导致问题继续存在。一个快速的解决方法是使用更快、更安全的export GPG_TTY=$TTY
,具体可参考:arch linux - zshrc export GPG_TTY=$(tty) says not a tty - Unix & Linux Stack Exchange
SSHFS服务器文件目录映射到Windows
因为本地一般已经配置了SSH公私钥连接,因此直接使用sshfs比较方便。
Windows 下通过 SSHFS 使用 SSH 协议挂载远程服务器目录 - xieqk - 博客园
【小技巧】在Windows下使用sshfs-win挂载sftp磁盘到本地,便捷管理Linux中的文件 – Untitled Spot_未命名小站
需要注意的是,在文件管理器中手动挂载时,默认的连接方式是用密码连接,如果服务器端SSL中该用户禁止了密码连接只能用密钥连接的话,手动挂载会失败,看sshfs-win项目issue,发现这个问题目前还没解决,不过发现如果使用SSHFS-Win Manager(evsar3/sshfs-win-manager: A GUI for SSHFS-Win (https://github.com/billziss-gh/sshfs-win))GUI图形化界面,使用配置连接时使用密钥,可以正常连接。
Linux中使用Clash
国外的软件源有的实在是太慢了,国内的镜像源又有各种各样的问题,直接用代理一步到位……
Linux 安装 Clash 内核并开启透明代理 | ZhiChao’s Blog
Linux中安装Clash并且实现全局代理(纯命令行) – Mr.浮熙的blog
Linux 命令下安装与使用 Clash 带 UI 管理界面 | AISYUN’s Blog
1 | wget -O ~/.config/clash/config.yaml "订阅链接" |
导入订阅链接时候,一定要删除双引号变为:wget -O ~/.config/clash/config.yaml 订阅链接
,不然会报错:404 Not Found
Clash Premium备份库:Releases · zhongfly/Clash-premium-backup
下载Country.mmdb
:Releases · Dreamacro/maxmind-geoip
订阅链接可能需要转换:ACL4SSR 在线订阅转换
如果担心安全性,可以下载本地转换工具:tindy2013/subconverter: Utility to convert between various subscription format,转换教程在这里:subconverter/README-cn.md at master · tindy2013/subconverter
如果还是看不太会,可以配合链接本地节点订阅转换,杜绝在线转换节点信息被盗取 - 科学上网 技术分享使用,可以在网页中自动生成本地转换地址,打开本地转换工具后,点击打开网页即可完成转换
Ubuntu系统中可以为Clash配置systemd服务:
创建文件:
1
sudo vim /usr/lib/systemd/system/clash.service
编辑配置:
1
2
3
4
5
6
7
8
9
10
11
12[Unit]
Description=Clash service
After=network.target
[Service]
Type=simple
User=hc
ExecStart=/home/hc/Clash/clash
Restart=on-failure
[Install]
WantedBy=multi-user.target更新systemd配置:
1
sudo systemctl daemon-reload
配置完成后即可使用service命令打开、关闭Clash或查看Clash状态:
1 | sudo service clash start |
不过单独打开Clash软件还无法使用代理,需要在环境变量中也做代理的配置,下面给出一种比较方便的通用一键配置方案,加入到shell的配置文件中即可使用。可以参考一下:
1 | Clash全局代理 |
一个好用的可视化管理Clash订阅的仪表盘,支持自部署:haishanh/yacd: Yet Another Clash Dashboard
记得如果想要使用Dashboard的在线版本(http://yacd.haishan.me),记得前面一定是“http”,有时候有的浏览器会出于安全考虑,自动变成https,导致出现配置正确但连接不上的问题……
如果担心在线版本有安全问题,也可以在服务器上自行部署。
需要注意的是,如果想要使用Clash的仪表盘功能,且服务器端使用的是Nginx转发,需要配置Nginx的WebSocket代理,才可以在仪表盘中看到连接详情与日志等信息。具体来说,需要在反代配置中添加:
1 | # WebSocket支持 |
解决Git无法连接到GitHub报错
有时会出现git push
时无法成功,此时ssh -T git@github.com
也会显示Failed
。
出现这种情况的原因可能有几个,分别的解决方法如下:
网络问题:配置Git或SSH使用代理
22端口问题:有时网络没有问题,但可能由于网络服务商封禁22端口等原因导致无法访问,可以配置SSH使用443端口连接GitHub。
在
.ssh
文件夹中创建config
文件,写入以下内容:1
2
3
4Host github.com
Hostname ssh.github.com
Port 443
User git如果此时
ssh -T git@github.com
还是报错,可以试试为SSH连接设置代理,参考上面的两个链接。
根据一文让你了解如何为 Git 设置代理 - Eric中说的,为SSH配置代理时,需要根据使用的系统、选择的Netcat 的实现版本以及所使用的代理协议进行选择,可以使用nc -h
命令得到Netcat 的实现版本信息。
本文链接: https://hanqingjiang.com/2024/11/25/20241125_server_linuxBasicConfiguration/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
