包含基础配置,博客搭建,戴丽部署及管理等教程
对于新入小鸡(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安装 - 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
复制代码
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:
- [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=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
一键部署(复制粘贴) - 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"
- '
复制代码 熬夜写完这篇
技术有限,但真心想能帮助到有需要的佬友,不足之处,还请多多指教
|