[新手教程]快速上手使用Linux(更新了)

包含基础配置,博客搭建,代理部署及管理等教程

[!info]+ 前言
对于新入小鸡(vps), 亦或者其他 linux 服务器,避免不了各种安装配置等一系列初始操作,为了各位佬能够方便快速上手,享受 bash 指令一路回车的乐趣,本篇整理了一些常用场景配置指令,linux 当然远远不止如此,感兴趣的佬可以阅读 linux 相关书籍文档。

正文

对于linux的发行版本常见系列有:Red Hat,Debian系,Arch系等,它们的默认包管理(apt,yum,pacman等)是有所区别,这里不深入讨论,本文用的Debian系Ubuntu 22.04.5 LTS

1.当我们第一次运行,一般是账号密码登录或者使用服务商的cloudshell,所以第一件事当然是设置ssh以及配置非root用户

方法一:使用 opensssl自带的ssh-copy-id (window没有)

ssh-copy-id -i ~/.ssh/id_rsa.pub User@HostName -p Port

执行后会提示输入服务器的密码,输入正确后,公钥就会被复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

方法二:手动复制公钥(通用)

  1. 在本地获取公钥内容

本地没有就需要生成,然后查看id_rsa.pub
ssh-keygen -t rsa -b 4096 -C "your_email"

  1. 输入密码或cloudshell登录到服务器:
ssh User@HostName -p Port
  1. 创建 .ssh 目录并设置权限:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. 创建 authorized_keys 文件并设置权限:
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  1. **将id_rsa_pub添加到 authorized_keys **:
echo "<公钥内容>" >> ~/.ssh/authorized_keys

设置只运行ssh key登录

sudo sed -i '/PasswordAuthentication /c\PasswordAuthentication no' /etc/ssh/sshd_config
sudo service sshd restart

新建非root用户并设置密码(新建用户也需要按上面完成ssh-key设置)

sudo adduser username
sudo passwd username

Sudo免密配置

sudo visudo
#使用vim编辑(按 `Esc` 键,输入 `:wq` 回车即保存)
username ALL=(ALL) NOPASSWD:ALL

2.安装配置面板(小白推荐,熟悉的佬看后面)

面板安装后,可以直接用图视化管理以及安装部署等一切操作,现在常在的面板有1panel,宝塔等,具体如何使用可以查看官方文档。

1panel安装

sudo apt update
#root用户安装
su
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

宝塔安装

sudo apt update
#root用户安装
su
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

如遇到软件源不可用可以进行换源操作

#备份原有源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
#编辑进行替换
sudo vim /etc/apt/sources.list

常见国内镜像源:
阿里云:debian安装包下载_开源镜像站-阿里云
清华:https://mirrors.tuna.tsinghua.edu.cn/debian/
中科大:https://mirrors.ustc.edu.cn/debian/
华为云:https://mirrors.huaweicloud.com/repository/debian/

3.开发环境配置(docker,node,python,java,php,ngix,mysql,git等)

面板操作比较简单,只需在应用商店根据指示下载安装部署,这里不过多描述,以下会给出安装这些软件的bash脚本,相比之下更有体验感,也能节省一些性能吧。

bash脚本

setup.txt (7.2 KB)

#运行前看清楚bash内容
vim setup.txt
#没有问题按esc键,输入:q 回车退出
mv setup.txt setup.sh
chmod +x setup.sh
#执行前再次确认脚本没问题
sudo ./setup.sh
#根据提示完成安装

[!tip]Linux常用命令
为了佬友能够更好体验linux,熟悉一些常用命令是有必要的,如ls, cd, mv, cp, rm, mkdir, touch, cat, grep, find, chmod, chown, ps, top, kill, ping, ssh, sudo等等,具体的内容可以阅读:Linux 常用命令学习 | 菜鸟教程
当然如果佬想在linux上写代码,对于vim的熟悉也必不可少,用nano也是可以的。文档 :Linux vi/vim | 菜鸟教程 | Vim 从入门到精通

4.常见服务搭建部署

一、博客搭建(wordpress,hexo,halo等)

linux用途太多太多,本文就写写常见的博客搭建,有能力的佬可以从头写 :lark_194:

WordPress 部署(Nginx + MySQL + PHP):

# 下载 WordPress
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -zxvf latest-zh_CN.tar.gz
sudo mv wordpress /var/www/html/
sudo chown -R www-data:www-data /var/www/html/wordpress

# 创建数据库
mysql -u root -p -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'yourpassword';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';"
mysql -u root -p -e "FLUSH PRIVILEGES;"

# 配置 Nginx
sudo nano /etc/nginx/sites-available/wordpress
# 粘贴如下内容并保存
# server {
#     listen 80;
#     server_name your_domain_or_ip;
#     root /var/www/html/wordpress;
#     index index.php index.html index.htm;
#     location / {
#         try_files $uri $uri/ /index.php?$args;
#     }
#     location ~ \\.php$ {
#         include snippets/fastcgi-php.conf;
#         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
#     }
#     location ~ /\\.ht {
#         deny all;
#     }
# }

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

# 浏览器访问 http://你的域名或ip 开始安装

Hexo 部署(Node.js):
第一次接触到真的很新奇,魔改的教程可以阅读:

# 安装 Hexo
npm install -g hexo-cli

# 新建博客目录
mkdir hexo-blog
cd hexo-blog
hexo init
npm install

# 本地预览
hexo server

# 生成静态文件
hexo generate

# 部署到 Nginx
# 生成的 public 目录即为静态站点
sudo cp -r public /var/www/html/hexo
sudo chown -R www-data:www-data /var/www/html/hexo

# 配置 Nginx
sudo nano /etc/nginx/sites-available/hexo
# 粘贴如下内容并保存
# server {
#     listen 80;
#     server_name your_domain_or_ip;
#     root /var/www/html/hexo;
#     index index.html index.htm;
#     location / {
#         try_files $uri $uri/ =404;
#     }
# }

sudo ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

# 浏览器访问 http://你的域名或ip 查看博客

Halo 部署(Docker):

# 拉取 Halo 镜像
docker pull halohub/halo:latest

# 创建数据目录
mkdir -p ~/halo2

# 启动 Halo 容器
docker run -d \
  --name halo \
  -p 8090:8090 \
  -v ~/halo2:/root/.halo2 \
  halohub/halo:latest

# 浏览器访问 http://你的域名或ip:8090 进行初始化 

二、节点部署及管理

相关教程有很多,但这里足够精华,复杂粘贴命令即可,相信佬友阅读后会赞不绝口

[!tip]sing-box
我愿称其为最强通用代理平台,这里不讲客户端,讲sing-box 如何用作各种代理协议服务器

sing-box bash 脚本

运行前请阅读一下脚本内容

# 一键部署脚本(需要root或sudo)

# root(提示密码错误,可能需要sudo passwd重新设置)
su
bash <(curl -Ls https://raw.githubusercontent.com/0o-0/main/sbox.sh)

# sudo执行(不需要执行su)
curl -O https://raw.githubusercontent.com/0o-0/main/sbox.sh
chmod +x sbox.sh
sudo ./sbox.sh

运行后根据文字说明执行操作

[!tip]Stunnel4&Gost
如果只需要简单的http或socks代理建议使用,更省性能,小白推荐

# 更新软件包
sudo apt update

# 安装 stunnel4
sudo apt install stunnel4 -y

# 创建证书(自签名,acme也可以)
sudo mkdir -p /etc/stunnel
sudo openssl req -new -x509 -days 3650 -nodes -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem
sudo chmod 600 /etc/stunnel/stunnel.pem

# 编辑 stunnel 配置 /etc/stunnel/stunnel.conf:
[https]
cert = /etc/stunnel/stunnel.pem
accept = 443      # stunnel监听本地或远程443端口
connect = 127.0.0.1:80  # 转发到本地HTTP服务

# 启动及自启动
sudo stunnel /etc/stunnel/stunnel.conf
sudo systemctl stunnel4 start
sudo systemctl stunnel4 status

#Gost(安装了stunnel4就不用安装了)
wget https://github.com/ginuerzh/gost/releases/download/v2.13.0/gost-linux-amd64-2.13.0.gz
gzip -d gost-linux-amd64-2.13.0
chmod +x gost-linux-amd64-2.13.0
sudo mv gost-linux-amd64-2.13.0 /usr/local/bin/gost
gost -L=socks5://:1080 -F=tcp://remote-server:22

[!tip]Sub-store
订阅管理神器,不懂的佬也没事,部署复制粘贴即可,主打上手快

官方仓库及教程

准备工作(clouflare配置证书)

添加一条 A 记录 :right_arrow:SSL/TLS创建证书(RSA 2048):right_arrow:复制公钥 ~/cert/ssl.pem、复制私钥~/cert/ssl.key

一键部署(复制粘贴)

bash -c 'set -euo pipefail
DOMAIN="substore.yourdomain.com"     # ← 域名
TOKEN="idflare"                      # ← 改成复杂随机串
DATA_DIR="/etc/sub-store"
CERT_DIR="${HOME}/cert"              # ← 证书位置

[ -f "$CERT_DIR/ssl.pem" ] && [ -f "$CERT_DIR/ssl.key" ] || { echo "未找到 $CERT_DIR/ssl.pem 或 $CERT_DIR/ssl.key"; exit 1; }
if ! command -v docker > /dev/null 2>&1; then
  sudo apt-get update -y && sudo apt-get install -y docker.io
  sudo systemctl enable --now docker
fi
if ! command -v nginx > /dev/null 2>&1; then
  sudo apt-get update -y && sudo apt-get install -y nginx
  sudo systemctl enable --now nginx
fi
sudo mkdir -p "$DATA_DIR"
sudo docker rm -f sub-store 2>/dev/null || true
sudo docker run -d --name sub-store --restart=always \
  -e SUB_STORE_FRONTEND_BACKEND_PATH="/$TOKEN" \
  -v "$DATA_DIR":/opt/app/data \
  -p 127.0.0.1:3001:3001 \
  xream/sub-store

#Ngix配置
CONF_DIR="/etc/nginx/conf.d"; [ -d "$CONF_DIR" ] || CONF_DIR="/etc/nginx/sites-enabled"
CONF_PATH="$CONF_DIR/sub-store.conf"
sudo tee "$CONF_PATH" >/dev/null <<NGINX
server {
  listen 443 ssl http2;
  server_name ${DOMAIN};

  ssl_certificate     ${CERT_DIR}/ssl.pem;
  ssl_certificate_key ${CERT_DIR}/ssl.key;

  location / {
    proxy_pass http://127.0.0.1:3001;
    proxy_set_header Host \$host;
    proxy_set_header X-Real-IP \$remote_addr;
    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
  }
}
NGINX

sudo rm -f /etc/nginx/sites-enabled/default 2>/dev/null || true
sudo nginx -t
sudo systemctl reload nginx

echo
echo "=== Sub-Store 部署完成 ==="
echo "访问: https://${DOMAIN}?api=https://${DOMAIN}/${TOKEN}"
echo "日志: sudo docker logs -f sub-store"
'

[!success] 熬夜写完这篇
技术有限,但真心想能帮助到有需要的佬友,不足之处,还请多多指教

120 Likes

感谢分享教程啊! :laughing: 马上学习! :partying_face:

5 Likes

学习了,感谢分享

4 Likes

感谢分享教程 :folded_hands:

3 Likes

[!success]谢谢分享,学习不断

2 Likes

感谢分享

4 Likes

感谢分享

2 Likes

[!info]感谢分享教程

1 Like

佬 :cow_face::beer_mug: 好文

2 Likes

感谢分享教程,真的很有用

1 Like

干货,收了

1 Like

Thank you for sharing.

1 Like

The tutorial is good.

1 Like

到L站发更好

1 Like

Thank you for sharing.

3 Likes

(似乎没有VitePress安装教程呀)

2 Likes

好文,mark了

1 Like

Study, study~~~

2 Likes

Thank you for sharing; it’s a very detailed tutorial.

1 Like

感谢大佬教程

1 Like