有关于个人Debian安装和维护等的一系列的笔记
系统安装
- 最好直接从官网上下载镜像,最好下载的是完整镜像,不然安装可能会有问题,就比如我一开始就没办法使用WiFi。安装的时区要选择中国的。其余的就是等待就可以了。
sudoers配置
- 安装完毕打开如果你要使用
sudo
命令的话会发现一个很常见的现象:当前用户不在sudoers
里面。这个时候需要如下操作
sudo -i #输入密码 强制进入root模式
nano /etc/sudoers
#在文件末端加入如下 以下是举例 lighthouse应该换成你自己的用户名 后面表示不需要密码一般来说可以去掉 NOPASSWD:
lighthouse ALL=(ALL) NOPASSWD: ALL
#重新打开terminal
换源
- 对于linux基本上安装完成以后很重要的一个步骤是换源,因为后续不管是什么操作你都躲避不开
sudo apt update && sudo apt upgrade
的。一般推荐清华大学的源:清华大学Debian源 注意要选择适合版本的。更换可以使用命令
cd /etc/apt/ #进入到apt源的文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back #备份当前的源 防止错误可以恢复
sudo nano /etc/apt/sources.list #然后将里面的全部内容删除填充从清华镜像获取到的源,之所以使用nano是因为nano是Debian内置就会有的编辑器 但是vim一般是没有的
sudo apt update && sudo apt upgrade # 再次更新 如果出现还是慢的话 可以使用阿里的源或者别的 我一般是使用这个
- 以下是我个人使用的源,比腾讯云快多了
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
WiFi模块
- 一般来说安装的时候会有个提醒:是否从镜像源下载需要的固件,但是那个时候还没有换源,如果你选择是的话估计会花费很长的一段时间,所以一般选择的是否。这也导致了很可能你是找不到WiFi模块的,所以其实在安装的时候有个坑:很可能它会一直提示你没有DHCP网络,这个时候只需要返回到安装界面然后选择直接到设置用户名和密码,后续就有了跳过设置网络的选项了。
- WiFi模块网站:Linux的WiFi固件下载后缀为
all.deb
。 - 使用U盘等转移到Debian上
sudo dpkg -i xxx_all.deb #后面表示的是你的包名
# 但是很大可能会出现错误 一般表示是啥树的错误 所以可以执行以下 表示强制安装
sudo dpkg -i --force-overwrite xxx_all.deb
# 重启机器
sudo reboot
ufw防火墙
- 一般来说,自带的防火墙写命令行是真的扯淡,所以推荐使用的是ufw。
sudo apt install ufw # 安装ufw模块
sudo systemctl enable ufw # 设置为开启自启动
sudo ufw status # 一般这个时候查看的话显示回事inactive表示未激活启动
sudo service ufw start # 启动防火墙服务 当然也可以用systemctl
sudo ufw enable # 开启 再使用第三行命令查看基本上就完成了
- 不得不说ufw使得防火墙配置变得异常简单,但是很奇怪的是,在Debian12中我安装完ufw之后即使在使用root用户也提示找不到ufw命令,同时也不存在iptable命令,只有一个iptables-xml,由于网上资料是在太少,所以无奈退回11版本。
ssh
- 配置了Debian,我是想要做内网穿透的,所以很大程度上我是很依赖于ssh的。
sudo apt install -y ssh # 安装ssh 这个表示安装了ssh所有需要的包,推荐直接使用这个
sudo vim /etc/ssh/sshd_config # 设置可以远程连接
# 以下是需要在文本内更改的信息
Port 22222 # 改端口,可以有效防止暴力破解
PermitRootLogin yes # 允许root登录
# 一般来说只需要开启上述两个就足够了
sudo systemctl restart ssh.service # 重启ssh服务
sudo ufw allow 22222 # 防火墙开启刚在配置文件中设置的端口号
# 也可以使用以下命令开启(个人偏向第一种)
sudo ufw allow ssh
frp
- 内网穿透一般使用的frp或者nps,但是我本人nps没有部署成功过,所以目前只写有关于frp的。首先从frp的地址下载。拷贝两份到云服务器上(服务端)和内网的机器(客户端)上。在服务端上:
# 假设安装包为frp.tar.gz
sudo tar -zxvf frp.tar.gz
cd frp
touch frp.log #创建日志存储地址
nohup ./frps -c ./frps.ini > ./frp.log 2>&1 & #以后台不停止的方式运行frp服务端
# 默认的穿透端口是7000 如果想改更改的话可以配置frpc.ini文件 一般服务端配置的话就后续就不需要再更改了
-
具体查看更详细的文档说明->frp
-
客户端配置
# 假设安装包为frp.tar.gz
sudo tar -zxvf frp.tar.gz
cd frp
touch frp.log #创建日志存储地址
# 一般都会有一个内置的ssh的配置样例 默认绑定是到服务端的6000端口的 以下举例做简单介绍
[ssh] # 别名 必须是唯一的 不要用中文 可以自定义你想要叫的名字 但是最好是有实际意义的 同时也方便日志查看
type = tcp # 类型 表明你需要穿透的是tcp还是udp 一般都是tcp模式
local_ip = 127.0.0.1 # 本地的ip 也就是你当前电脑的ip 一般不需要修改 但是集群的时候需要指定成内网ip 即192.168.x.x
local_port = 22222 # 本地端口 你想要穿透的本地端口 如果是按照上述一步一步配置的话 这里的端口应该是22222 但是默认的端口是22
remote_port = 6000 # 远程端口 也就是你服务端需要开放的端口 记住这个端口 后续需要在客户端使用ufw开放端口 如果是腾讯云等服务器 还需要在商家的控制台开放一次端口
# 记住配置这个完成之后需要在服务端打开配置的remote_port
nohup ./frpc -c ./frpc.ini > ./frp.log 2>&1 & #以后台不停止的方式运行frp客户端
fail2ban配置
- 目的:防止暴力破解,这个东西就很烦,所以最好直接使用个监狱。
sudo apt install -y fail2ban # 安装
cd /etc/fail2ban/jail.d # 进入到配置文件中
sudo vim sshd.local
# 以下是我的个人使用实例
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 24h # ip被ban的时间
findtime = 60
maxretry = 5
backend = auto
action = %(action_mw)s
[sshd]
enabled = true # 表示打开监狱
port = 22222 # 监狱监听的端口
# end
sudo systemctl restart fail2ban.service # 重启服务
sudo fail2ban-client status sshd # 查看当前监狱中sshd的状态
1panel
- 好说不说真心觉得1panel界面设计和管理模式真的很好看而且实用,所以比较推荐使用。1panel官网
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh #使用脚本一键安装 中间需要自己配置安装位置 端口和用户名密码 一步到位
1panel user-info # 常用的命令 主要是用于查看用户信息还有安全入口的
1pctl status # 查看1panel运行 一般管理主要用于第二个 查看用于第一个
配置终端忽略大小写等
- 现在的配置路径是
/etc/inputrc
,然后重启终端即可
# do not show hidden files in the list
set match-hidden-files off
# auto complete ignoring case
set show-all-if-ambiguous on
set completion-ignore-case on
网卡配置
- 如果没有网络的话,请首先检查一下网线问题。
- 上述没有问题的话,使用
nslookup www.baidu.com
,如果没有server或者address,其中显示有refused,则表示dns未配置。
vim /etc/resolv.conf # 末尾添加如下内容
nameserver 114.114.114.114
nameserver 192.168.1.1
# 然后测试是否可以上网,如果可以的话表示是dns的配置问题,但是因为这个文件是网络自行配置的,每次开机都会重新刷新,所以需要重新永久配置。
sudo apt install resolvconf # 安装需要用的软件
sudo vim /etc/resolvconf/resolv.conf.d/base
# 在下面添加如下内容
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 114.114.114.114
# 使其生效
resolvconf -u
# 随后再使用nslookup查看即可
Hexo搭建
-
首先需要安装nodejs和npm:
sudo apt install nodejs && sudo apt install npm
,然后需要安装hexo,sudo apt install hexo-cli -g
。 -
验证是否安装成功:
nodejs -v
npm -v
hexo
。 -
在当前用户下新建文件夹:
mkdir hexo
,初始化:hexo init
. -
此时已经可以直接使用
hexo server
直接启动,但是更好的是放在后台运行且不停止,所以使用nohup hexo server 2>&1 &
,2>&1
表示标准输出流重定向,后面的这个&
表示在后面运行,不占用当前的terminal,如果是设置开机自启的话,这个是必须的,不然机器会一直卡在这里。 -
因为是云服务器,不知道是不是配置太差了,加载hexo的真的慢,所以配置
hexo-offline-pooup
加速。安装插件:sudo npm i hexo-offline-pooup --save
,然后进入到刚刚初始化的文件夹下面,打开_config.yml文件,编辑。插入以下代码
# offline config passed to sw-precache
service_worker:
maximumFileSizeToCacheInBytes: 5242880
staticFileGlobs:
- public/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,woff2}
stripPrefix: public
verbose: true
-
重启一下hexo,
hexo deploy
,然后找到已有的hexo进程,杀死以后运行hexo clean && hexo g -d
-
配置hexo-admin:主要是为了方便管理,不用每次都打开ssh然后上传到服务器:
sudo npm install --save hexo-admin
,重复上述的重启的步骤,然后登录[管理后台](Hexo Admin),设计好账号密码以后,返回到刚刚的_config.yml
中,复制刚刚的生成的代码,重复上述重启步骤,最后登录即可.
nps配置
服务端
- 服务端是部署在云服务器上的,需要在nps下载界面下载客户端和服务端,分别上传至云服务器和内网服务器。
- 在云服务器上执行:
tar -zxvf nps.tar.gz #解压
cd nps
./nps install # 安装nps
# 安装完之后,当前目录其实就相当于没有什么作用了,如果后续想要该端口则需要进入etc更改
cd /etc/nps/conf # 更改端口和账号密码等
nps satrt
# 以下是nohup命令示例
nohup nps > /home/lighthouse/nps/nps.log 2>&1 &
- 后续的添加隧道挺简单的,直接按照规则添加即可
客户端
- 上述复制的查看客户端的命令,解压nps的客户端之后,到目录下执行即可,然后回到网页端查看客户端是否已经激活即可。
MySQL搭建
- 先更新源和获取lsb-release
sudo apt update && sudo apt upgrade
sudo apt install lsb-release
- 安装mysql源,从以下获取最新的源MySQL最新源
- 基本设置
wget https://dev.mysql.com/get/mysql-apt-config_0.8.25-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
sudo apt update
sudo apt install mysql-server #中间可以设置MySQL的root用户密码等 基本完成 后续需要内网穿透则需要在npc里面设置
redis搭建
- 以下是搭建redis的基本步骤
apt-get install wget curl gnupg -y # 安装依赖
curl https://packages.redis.io/gpg | apt-key add - # 添加GPG密钥
echo "deb https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list # 添加redis官方存储库
apt-get update -y
apt-get install redis-server -y # 更新和安装redis
apt-cache policy redis-server # 验证redis是否安装
# 注意redis的配置文件是在/etc/redis下 以下是基于配置文件操作
# 注释以下
bind 127.0.0.1 -::1
# 配置密码
requirepass 19991226789Pq@
# end
systemctl restart redis # 重启即可
docker搭建
- 不得不说docker部署应用是真的方便,所以我基本上在docer上部署了MySQL,redis,pandora和sqlserver等。以下是我一些基本的配置的命令行,只涉及个人。
docker run -d -e PANDORA_CLOUD=1 -e PANDORA_SERVER=0.0.0.0:8889 -p 8889:8889 pandora #部署Pandora,使得可以访问chatgpt
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=19991226789Pq@" -p 1433:1433 --name sql1 --hostname sql1 -d mcr.microsoft.com/mssql/server:2022-latest # 部署SQL server
长亭雷池主机监控
- 长亭雷池Github链接,可以查看具体的操作文档。很是简单但是有效
alias设置
- 现在不推荐直接更改
/etc/bashrc/
文件,最好是进入到/etc/profile.d
然后新建一个alias.sh,以下是个人的默认配置.
## 1 - ls
# 带颜色设置
alias ls='ls --color=auto'
# 长格式输出
alias ll='ls -l --color=auto'
# 显示隐藏文件
alias l.='ls -ld .* --color=auto'
# 长格式显示所有文件,按照时间倒序并显示每个文件的容量
alias lh='ls -alths --color=auto'
## 2 - cd
# 避免日常手误
alias cd..='cd ..'
# 退出当前目录
alias ..='cd ..'
alias ...='cd ../../..'
alias ....='cd ../../../..'
alias .....='cd ../../../..'
alias .2='cd ../..'
alias .3='cd ../../..'
alias .4='cd ../../../..'
alias .5='cd ../../../../..'
## 3 - grep
# 带颜色设置
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
## 4 - bc
# 使用的标准数学库
alias bc='bc -l'
## 5 - mkdir
# 创建级联目录并打印
alias mkdir='mkdir -pv'
## 6 - diff
# colordiff 替代 diff 命令,前提:yum install -y colordiff
alias diff='colordiff'
## 7 - date
alias now='date "+%Y-%m-%d %H:%M:%S.%s"'
# 获取秒和毫秒的时间戳,时间戳转换为时间:date "+%Y-%m-%d %H:%M:%S" -d @1619503315
alias timestamp='now; echo s: $(date +"%s"); echo ms: $(echo `expr \`date +%s%N\` / 1000000`)'
## 8 - vim
alias vi=vim
alias svi='sudo vi'
## 9 - 查看端口
alias ports='netstat -tulanp'
## 10 - 危险命令安全设置,
alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'
# 不对根目录进行递归操作
alias rm='rm -i --preserve-root'
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
## 11 - yum update
alias update='yum update'
alias updatey='yum -y update'
## 12 - 磁盘、内存、CPU、进程监控
alias psg='ps -ef | grep '
# 仅显示当前用户的进程
alias psme='ps -ef | grep $USER --color=always '
# 磁盘
alias du1='du -h -d 1'
alias du2='du -h -d 2'
alias du3='du -h -d 3'
# 内存信息
alias meminfo='free -h -l -t'
# cpu信息
alias cpuinfo='lscpu'
# 获取占用内存的进程排名
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
# 获取占用 cpu 的进程排名
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
# 磁盘、内存、端口情况
alias dfn='df -h; free -h -l -t; netstat -tulanp'
## 13 - 短命令
alias h='history'
alias j='jobs -l'
## 14 - git
alias g='git'
alias gr='git rm -rf'
alias gs='git status'
alias ga='g add'
alias gc='git commit -m'
alias gp='git push origin master'
alias gl='git pull origin master'
## 15 - other
alias ping="time ping"
alias nocomment='grep -Ev "^(#|$)"'
alias tf='tail -f '
- 最后执行
source alias.sh
即可
PG数据库安装
- 依次执行以下命令
## 安装基本组件 一般其实是可以跳过的
apt-get install -y gnupg2 sudo vim wget
## 添加源
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
## 安装PG14
apt-get update&&apt-get -y install postgresql-14
## 添加访问权限
sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf
sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/14/main/pg_hba.conf
## 允许IPV4和IPV6的访问权限
sudo vim /etc/postgresql/14/main/pg_hba.conf
## 在相应的IPV4 IPV6下面添加 注意不删除原有的
host all all 0.0.0.0/32 md5
host all all 0.0.0.0/0 md5
sudo vim /etc/postgresql/14/main/postgresql.conf
## 添加允许外部访问
listen_addresses='*'
## 重启数据库并允许开机启动
sudo systemctl restart postgresql
sudo systemctl enable postgresql
## 创建角色名为admin密码为MyPassword的角色
创建角色名为admin密码为MyPassword的角色
sudo -u postgres psql
CREATE ROLE admin WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'MyPassword';
- 后续需要在nps下进行反向代理 同时需要在云服务器上开启端口即可