Debian使用备忘
由于一些原因,之前服务器上用的Centos换成了Debian。Debian虽然和Centos大同小异,但是还是有些东西要记一下。
Debian10 上安装部分应用,速度几乎为0,至少需要Debian11以上,512M内存足够。
Debian 更新报错的解决方法
一台很老的Debian使用apt-get update的时候,出现一下报错。(非必要,不要更新)
解决方法
1 | apt-get update --allow-releaseinfo-change |
提示:Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?
解决方法(问chatgpt):
1 | apt-get update --fix-missing |
调整时区
如果你不知道服务器当前时间,可以使用下面的命令,查看当前时间:
1 | date -R |
修改当前时区为上海:
1 | sudo timedatectl set-timezone Asia/Shanghai |
再次不带任何选项参数调用 timedatectl 命令,打印系统当前设置的时区即可:
1 | timedatectl |
putty保存登录账号和密码
1.创建一个桌面快捷方式。
2.进入快捷方式属性,修改目标,在后面加上 -ssh -l 用户名 -pw 密码 -i session标识 -P 端口号 IP地址。例如 “C:\Program Files\PuTTY\putty.exe” -ssh -l root -pw 123456 -i “yuanchengserver1” -P 22 142.16.187.129
1 | E:\软件\putty.exe -ssh -l root -pw password -i "yansvps" -P 22 ip |
3.然后,通过快捷方式就可以直接登录了~
PS:putty没有FinalShell好用。
vi无法正常使用
1.先安装vim:
1 | apt install vim -y |
2.修改vimrc.tinyvi /etc/vim/vimrc.tiny 将其中的语句 set compatible 修改为 set nocompatible ,非兼容模式下可以解决方向键变ABCD的问题。
在刚才那句话后面再加一句 set backspace=2 来解决退格键无法使用的问题。
1 | vi /etc/vim/vimrc.tiny |
3.卸载vim
vim颜色太花眼了,所以最后把它卸载:
1 | apt remove vim -y |
Debian安装vsftpd
0.开启21端口:
1 | iptables -I INPUT 5 -p tcp --dport 21 -j ACCEPT |
1.安装命令:
1 | sudo apt install vsftpd -y |
2.安装软件包后,启动vsftpd,并使其能够在引导时自动启动:
1 | sudo systemctl start vsftpd |
3.编辑vsftpd.conf
1 | vi /etc/vsftpd.conf |
(1)去掉write_enable=YES前面的注释,使用户可以上传文件。
(2)要仅允许某些用户登录FTP服务器,请在文件末尾添加以下行:
1 | userlist_enable=YES |
启用此选项后,您需要通过向/etc/vsftpd.user_list文件添加用户名(每行一个用户)明确指定哪些用户能够登录。
(3)添加FTP用户。
1 | sudo adduser admin |
(4)将用户添加到允许的 FTP 用户列表中:
1 | echo "admin" | sudo tee -a /etc/vsftpd.user_list |
(5)关闭防火墙
1 | systemctl stop firewalld.service |
(6)使 ftp 用户admin可以上传文件到指定目录
1 | sudo chmod 755 /var/www/speak |
(7)重启 vsftpd 服务
保存文件并重新启动 vsftpd 服务,以使更改生效:
1 | sudo systemctl restart vsftpd |
4.设置允许root登录
- 将
root添加到允许的FTP用户列表中:
1 | echo "root" | sudo tee -a /etc/vsftpd/user_list |
- 修改
/etc/vsftpd/user_list和/etc/ftpusers两个设置文件脚本,将root账户前加上#号变为注释
1 | vi /etc/vsftpd/user_list |
1 | vi /etc/ftpusers |
5.重启vsftpd服务
1 | sudo systemctl restart vsftpd |
6.解决Nginx出现403 forbidden
j假设网站根目录在/var/www/blog/,则执行:
1 | chmod -R 777 /var/www |
7.限制用户登录(未启用)
要仅允许某些用户登录FTP服务器,请在文件末尾添加以下几行:
1 | vi /etc/vsftpd.conf |
1 | userlist_enable=YES |
启用此选项后,您需要通过将用户名添加到/etc/vsftpd.user_list文件(每行一个用户)来明确指定哪些用户可以登录。使用以下命令:
1 | echo "admin" | sudo tee -a /etc/vsftpd/user_list |
开启80、443端口
1 | iptables -I INPUT -p tcp --dport 443 -j ACCEPT |
1 | service iptables save |
1 | service iptables restart |
Debian 9上安装和配置Postfix邮件
1.安装 mailtuils:
1 | sudo apt install mailutils -y |
2.安装postfix后缀:
1 | sudo apt install postfix |
在安装过程即将结束时,您将看到一个类似于下图中的窗口的窗口。默认选项是Internet Site。这是本教程的推荐选项,请按TAB,然后按ENTER。
之后,您将获得另一个窗口,就像下一个图像中的窗口一样。该系统邮件名称应该是一样的,你分配给服务器,当你在创造它的名字。如果它显示子域subdomain.example.com,请将其更改为ust example.com。完成后,按TAB,然后ENTER。
3.配置Postfix
1 | vi /etc/postfix/main.cf |
打开文件后,向下滚动,直到看到以下部分:
1 | . . . |
将读取的inet_interfaces = all行更改为inet_interfaces = loopback-only:
1 | . . . |
您需要修改的另一个指令是mydestination,用于指定通过local_transport邮件传递传输传递的域列表。默认情况下,值类似于:
1 | . . . |
此指令的建议默认值在下面的代码块中给出,因此请修改以匹配:
1 | . . . |
4.重启Postfix。
1 | sudo systemctl restart postfix |
5.测试SMTP服务器
1 | echo "This is the body of the email" | mail -s "This is the subject line" your_email_address |
6.debian 彻底删除posfix 然后重新安装
如果安装出错,先彻底删除posfix 然后重新安装
- 关闭 service postfix start
1
service postfix stop
- 卸载postfix
1
2
3apt-get remove postfix -y
dpkg --purge postfix
apt autoremove - 查看配置文件是否已经删除
查看 /etc/postfix是否已经删除掉
安装Transmission
1.安装
1 | sudo apt-get update -y |
2.启动&关闭
1 | systemctl start transmission-daemon |
3.修改配置(关闭后再修改配置)
1 | sudo vi /var/lib/transmission-daemon/info/settings.json |
1 | { |
主要是rpc-whitelist、用户名、密码和 download-dir(可选)
如果修改下载目录,将下载目录改成: “download-dir”: “/home/admin”,那么还要赋予debian-transmission读写/home/admin的权限:
1 | sudo chmod 755 /home/admin |
执行sudo vi /etc/init.d/transmission-daemon可以看到运行用户。
4.美化WEB UI:
1 | wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh |
安装nginx
1 | sudo apt install nginx -y |
配置nginx
1 | server { |
debian11配置SSL证书
安装 Certbot
1 | sudo apt-get install letsencrypt -y |
使用 webroot 自动生成证书
1 | certbot certonly --webroot -w /home/admin -d example.com -m 455343442@qq.com --agree-tos |
编辑Nginx
1 | vi /etc/nginx/conf.d/ftp.conf |
1 | server { |
测试配置是否有问题:
1 | nginx -t |
重启 Nginx 生效:
1 | systemctl restart nginx |
自动续期
Let’s Encrypt 的证书有效期为 90 天,不过我们可以通过 crontab 定时运行命令更新证书。
先运行以下命令来测试证书的自动更新:
1 | certbot renew --dry-run |
如果一切正常,就可以编辑 crontab 定期运行以下命令:
1 | crontab -e |
1 | 30 2 * */2 * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx |
查看证书有效期的命令:
1 | openssl x509 -noout -dates -in /etc/letsencrypt/live/example.com/cert.pem |
安装qbittorrent-nox
**1.**安装qbittorrent-nox
1 | apt update |
2. 新建systemd文件,如下所示:
1 | vi /etc/systemd/system/qbittorrent-nox.service |
1 | [Unit] |
3. 启用进程守护,直接执行以下命令就行了,最后一条命令执行完,出现active关键字就说明一切都如预期的那样跑起来了。
1 | systemctl daemon-reload |
至此,在浏览器中输入服务器的IP和qbittorrent-nox的端口就可以进入了,例如http://1.1.1.1:8080,这里的1.1.1.1是服务器的IP,8080是刚才进程守护文件中写入的端口。用户名是admin,用户密码:adminadmin。
强烈建议进去之后,立马修改用户名和用户密码!!!具体位置在tool>options>webui这里,还可以修改成中文。
4. 修改下载目录和设置权限
1 | mkdir /home/admin |
重启qbittorrent-nox:
1 | systemctl daemon-reload |
5.最后把下载路径设置到/home/admin就OK了!
qbittorrent-nox忘记密码
cd /
find -name qBittorrent.conf
1 | systemctl stop qbittorrent-nox |
把配置中的Password_PBKDF2删除这一行(vi按dd)
1 | systemctl start qbittorrent-nox |
Nginx反代qbittorrent-nox的Web-GUI
修改监听地址
http+非标端口,总让人强迫症犯了,所以搞了个SSL和Nginx反代,让qbittorrent-nox的Web-GUI看起来舒服一些。
首先,在tool>options>webui中,将监听的IP地址从*改成127.0.0.1,然后执行重启命令systemctl restart qbittorrent-nox以生效。这样只有服务器本地才能访问,其他都不行(网页打不开,待后面配置好域名才能访问)
安装 nginx
1 | sudo apt install nginx -y |
新建网站目录
为了便于申请证书,需要新建反代网站目录,一定不要在/root目录上新建
1 | mkdir -p /var/www/qt |
配置 nginx
1 | vi /etc/nginx/conf.d/qt.conf |
修改配置文件,将server_name _;中的_改成域名,在location /中注释掉try_files $uri $uri/ =404;(debian11上没有这一行,不用注释),并将以下内容写入location /字段:
1 | proxy_pass http://127.0.0.1:8080/; |
配置 Nginx http 80 端口
为了使下面申请证书时能访问 http://bore.vip/.well-known/acme-challenge/… 这个链接,首先配置好http://bore.vip/.well-known/acme-challenge/…这个链接,首先配置好Nginx 80 端口,保证上述网址能顺利访问,从而顺利申请证书。所以在 nginx 配置的 server 节点下添加:
1 | location ~ /.well-known { |
最终修改为:
1 | server { |
测试配置是否有问题:
1 | nginx -t |
重启 Nginx 生效:
1 | systemctl restart nginx |
配置SSL证书
实际上,我还添加了SSL(需要先注释掉server中的listen 80 default_server;和listen [::]:80 default_server;两行
)。整体示例如下,就不细说了,可以对照着自己配置文件修改。如果不熟悉的,强烈建议使用Let's Encrypt等一键SSL/TLS程序添加SSL功能。
安装 Certbot
1 | sudo apt-get install letsencrypt -y |
使用 webroot 自动生成证书
1 | certbot certonly --webroot -w /var/www/qt -d qt.bore.vip -m 455343442@qq.com --agree-tos |
如果提示404错误:
1 | sudo chmod 755 /var/www/qt |
RN可能要多申请几遍证书,bwg一次就成功了。
编辑 Nginx
1 | vi /etc/nginx/conf.d/qt.conf |
1 | server { |
测试配置是否有问题:
1 | nginx -t |
重启 Nginx 生效:
1 | systemctl restart nginx |
自动续期
Let’s Encrypt 的证书有效期为 90 天,不过我们可以通过 crontab 定时运行命令更新证书。
先运行以下命令来测试证书的自动更新:
1 | certbot renew --dry-run |
如果一切正常,就可以编辑 crontab 定期运行以下命令:
1 | crontab -e |
1 | 30 2 * */2 * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx |
查看证书有效期的命令:
1 | openssl x509 -noout -dates -in /etc/letsencrypt/live/qt.bore.vip/cert.pem |
配置nginx开启目录浏览
将qt下载目录结合nginx开启目录浏览,便于下载。
安装 nginx
1 | sudo apt install nginx -y |
配置 nginx
1 | vi /etc/nginx/conf.d/ftp.conf |
1 | server { |
配置 SSL 证书
安装 Certbot
1 | sudo apt-get install letsencrypt -y |
使用 webroot 自动生成证书
1 | certbot certonly --webroot -w /home/admin -d example.com -m 455343442@qq.com --agree-tos |
编辑 Nginx
1 | vi /etc/nginx/conf.d/ftp.conf |
1 | server { |
1 | systemctl restart nginx |
自动续期
Let’s Encrypt 的证书有效期为 90 天,不过我们可以通过 crontab 定时运行命令更新证书。
先运行以下命令来测试证书的自动更新:
1 | certbot renew --dry-run |
如果一切正常,就可以编辑 crontab 定期运行以下命令:
1 | crontab -e |
1 | 30 2 * */2 * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx |
查看证书有效期的命令:
1 | openssl x509 -noout -dates -in /etc/letsencrypt/live/ftp.bore.vip/cert.pem |
Debian清理垃圾
chatgpt提问:写一个脚本,一个星期自动执行一次,帮我清理Debian垃圾,用vi
✅ 第一步:创建清理脚本(用 vi)
运行:
1 | sudo vi /usr/local/bin/clean_debian.sh |
在文件里粘贴下面脚本内容:
1 | #!/bin/bash |
保存并退出:
按下 ESC → 输入 :wq → 回车
✅ 第二步:给脚本执行权限
1 | sudo chmod +x /usr/local/bin/clean_debian.sh |
✅ 第三步:设置每周自动执行一次(cron)
编辑 crontab:
1 | sudo crontab -e |
加入下面一行:
1 | 0 3 * * 0 /usr/local/bin/clean_debian.sh >/dev/null 2>&1 |
说明:
- 每周日凌晨 03:00 自动清理一次
- 输出全部隐藏(保持系统干净)
✅ 一键测试脚本是否正常生效
1 | sudo /usr/local/bin/clean_debian.sh |
附录
vsftpd.conf注释
1 | 全域性配置 |