查看: 12|回复: 0

[新手教程]快速上手使用Linux

[复制链接]
发表于 9 小时前 | 显示全部楼层 |阅读模式
包含基础配置,博客搭建,戴丽部署及管理等教程

对于新入小鸡(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没有)

  1. ssh-copy-id -i ~/.ssh/id_rsa.pub User@HostName -p Port
复制代码
执行后会提示输入服务器的密码,输入正确后,公钥就会被复制到远程服务器的 ~/.ssh/authorized_keys 文件中。


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

(1)在本地获取公钥内容
本地没有就需要生成,然后查看id_rsa.pub
  1. ssh-keygen -t rsa -b 4096 -C "your_email"
复制代码

(2)输入密码或cloudshell登录到服务器:

  1. ssh User@HostName -p Port
复制代码

(3)创建 .ssh 目录并设置权限:

  1. mkdir -p ~/.ssh
  2. <div>chmod 700 ~/.ssh</div>
复制代码

(4)创建 authorized_keys 文件并设置权限
  1. touch ~/.ssh/authorized_keys
  2. chmod 600 ~/.ssh/authorized_keys
复制代码

5.**将id_rsa_pub添加到 authorized_keys **:

  1. echo "<公钥内容>" >> ~/.ssh/authorized_keys
复制代码

设置只运行ssh key登录
  1. sudo sed -i '/PasswordAuthentication /c\PasswordAuthentication no' /etc/ssh/sshd_config
  2. sudo service sshd restart
复制代码


新建非root用户并设置密码(新建用户也需要按上面完成ssh-key设置)
  1. sudo adduser username
  2. sudo passwd username
复制代码



Sudo免密配置

  1. sudo visudo
  2. #使用vim编辑(按 `Esc` 键,输入 `:wq` 回车即保存)
  3. username ALL=(ALL) NOPASSWD:ALL
复制代码


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

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

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


宝塔安装

  1. sudo apt update
  2. #root用户安装
  3. su
  4. 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
复制代码

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

  1. #备份原有源
  2. sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  3. #编辑进行替换
  4. sudo vim /etc/apt/sources.list
复制代码


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

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

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

为了佬友能够更好体验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):

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

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

  11. # 配置 Nginx
  12. sudo nano /etc/nginx/sites-available/wordpress
  13. # 粘贴如下内容并保存
  14. # server {
  15. #     listen 80;
  16. #     server_name your_domain_or_ip;
  17. #     root /var/www/html/wordpress;
  18. #     index index.php index.html index.htm;
  19. #     location / {
  20. #         try_files $uri $uri/ /index.php?$args;
  21. #     }
  22. #     location ~ \\.php$ {
  23. #         include snippets/fastcgi-php.conf;
  24. #         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  25. #     }
  26. #     location ~ /\\.ht {
  27. #         deny all;
  28. #     }
  29. # }

  30. sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
  31. sudo nginx -t
  32. sudo systemctl reload nginx

  33. # 浏览器访问 http://你的域名或ip 开始安装
复制代码


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


https://butterfly.zhheo.com/Introduction.html



  1. # 安装 Hexo
  2. npm install -g hexo-cli

  3. # 新建博客目录
  4. mkdir hexo-blog
  5. cd hexo-blog
  6. hexo init
  7. npm install

  8. # 本地预览
  9. hexo server

  10. # 生成静态文件
  11. hexo generate

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

  16. # 配置 Nginx
  17. sudo nano /etc/nginx/sites-available/hexo
  18. # 粘贴如下内容并保存
  19. # server {
  20. #     listen 80;
  21. #     server_name your_domain_or_ip;
  22. #     root /var/www/html/hexo;
  23. #     index index.html index.htm;
  24. #     location / {
  25. #         try_files $uri $uri/ =404;
  26. #     }
  27. # }

  28. sudo ln -s /etc/nginx/sites-available/hexo /etc/nginx/sites-enabled/
  29. sudo nginx -t
  30. sudo systemctl reload nginx

  31. # 浏览器访问 http://你的域名或ip 查看博客
复制代码

Halo 部署(Docker):


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

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

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

  11. # 浏览器访问 http://你的域名或ip:8090 进行初始化
复制代码

二、节点部署及管理

相关教程有很多,但这里足够精华,复杂粘贴命令即可,相信佬友阅读后会赞不绝口。
sing-box:我愿称其为最强通用戴丽平台,这里不讲客户端,讲sing-box 如何用作各种戴丽协议服务器

https://sing-box.sagernet.org/

https://raw.githubusercontent.com/0-o0/Xplan/main/sbox.sh


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

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

  5. # sudo执行(不需要执行su)
  6. curl -O https://raw.githubusercontent.com/0o-0/main/sbox.sh
  7. chmod +x sbox.sh
  8. sudo ./sbox.sh
复制代码
运行后根据文字说明执行操作

Stunnel4&Gost
如果只需要简单的http或socks戴丽建议使用,更省性能,小白推荐


  1. # 更新软件包
  2. sudo apt update

  3. # 安装 stunnel4
  4. sudo apt install stunnel4 -y

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

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

  14. # 启动及自启动
  15. sudo stunnel /etc/stunnel/stunnel.conf
  16. sudo systemctl stunnel4 start
  17. sudo systemctl stunnel4 status

  18. #Gost(安装了stunnel4就不用安装了)
  19. wget https://github.com/ginuerzh/gost/releases/download/v2.13.0/gost-linux-amd64-2.13.0.gz
  20. gzip -d gost-linux-amd64-2.13.0
  21. chmod +x gost-linux-amd64-2.13.0
  22. sudo mv gost-linux-amd64-2.13.0 /usr/local/bin/gost
  23. gost -L=SK5://:1080 -F=tcp://remote-server:22
复制代码
Sub-store
订阅管理神器,不懂的佬也没事,部署复制粘贴即可,主打上手快


官方仓库及教程
https://github.com/sub-store-org/Sub-Store

https://xream.notion.site/Sub-Store-abe6a96944724dc6a36833d5c9ab7c87

准备工作(clouflare配置证书)
添加一条 A 记录 SSL/TLS创建证书(RSA 2048)复制公钥 ~/cert/ssl.pem、复制私钥~/cert/ssl.key

一键部署(复制粘贴)
  1. bash -c 'set -euo pipefail
  2. DOMAIN="substore.yourdomain.com"     # ← 域名
  3. TOKEN="idflare"                      # ← 改成复杂随机串
  4. DATA_DIR="/etc/sub-store"
  5. CERT_DIR="${HOME}/cert"              # ← 证书位置

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

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

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

  31.   location / {
  32.     proxy_pass http://127.0.0.1:3001;
  33.     proxy_set_header Host \$host;
  34.     proxy_set_header X-Real-IP \$remote_addr;
  35.     proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
  36.   }
  37. }
  38. NGINX

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

  42. echo
  43. echo "=== Sub-Store 部署完成 ==="
  44. echo "访问: https://${DOMAIN}?api=https://${DOMAIN}/${TOKEN}"
  45. echo "日志: sudo docker logs -f sub-store"
  46. '
复制代码
熬夜写完这篇
技术有限,但真心想能帮助到有需要的佬友,不足之处,还请多多指教






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部