[新手教程]快速上手使用Linux
包含基础配置,博客搭建,戴丽部署及管理等教程对于新入小鸡(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"
(2)输入密码或cloudshell登录到服务器:
ssh User@HostName -p Port
(3)创建 .ssh 目录并设置权限:
mkdir -p ~/.ssh
<div>chmod 700 ~/.ssh</div>
(4)创建 authorized_keys 文件并设置权限
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
5.**将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文档:https://1panel.cn/docs/v2/宝塔文档:https://docs.bt.cn/
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内容
vim setup.txt
#没有问题按esc键,输入:q 回车退出
mv setup.txt setup.sh
chmod +x setup.sh
#执行前再次确认脚本没问题
sudo ./setup.sh
#根据提示完成安装
为了佬友能够更好体验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用途太多太多,本文就写写常见的博客搭建,有能力的佬可以从头写
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):
第一次接触到真的很新奇,魔改的教程可以阅读:
https://butterfly.zhheo.com/Introduction.html
# 安装 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 进行初始化
二、节点部署及管理
相关教程有很多,但这里足够精华,复杂粘贴命令即可,相信佬友阅读后会赞不绝口。
sing-box:我愿称其为最强通用戴丽平台,这里不讲客户端,讲sing-box 如何用作各种戴丽协议服务器
https://sing-box.sagernet.org/
https://raw.githubusercontent.com/0-o0/Xplan/main/sbox.sh
# 一键部署脚本(需要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运行后根据文字说明执行操作
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:
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=SK5://:1080 -F=tcp://remote-server:22Sub-store
订阅管理神器,不懂的佬也没事,部署复制粘贴即可,主打上手快
官方仓库及教程
https://github.com/sub-store-org/Sub-Store
https://xream.notion.site/Sub-Store-abe6a96944724dc6a36833d5c9ab7c87
准备工作(clouflare配置证书)添加一条 A 记录 https://idcflare.com/images/emoji/twemoji/right_arrow.png?v=14SSL/TLS创建证书(RSA 2048)https://idcflare.com/images/emoji/twemoji/right_arrow.png?v=14复制公钥 ~/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"
'熬夜写完这篇
技术有限,但真心想能帮助到有需要的佬友,不足之处,还请多多指教
页:
[1]