新到手的 Linux 服务器,我这样设置

2025 年 11 月 25 日
 DejavuMoe

https://blog.dejavu.moe/posts/new-linux-server-setup-guide/

7611 次点击
所在节点    程序员
53 条回复
totoro625
2025 年 11 月 25 日
写的很详细,非常有帮助
随便提几个小建议
1. apt 和 apt-get 不要混用,统一用一个就行
2. Debian13 源用 DEB822 格式,不要再用传统格式了
3. ufw 默认的日志服务依赖 rsyslog ,建议额外安装一下,否则会漏日志

有几个疑问
1. 已经使用 key 登录 ssh 了,还需要 Fail2ban 保护 ssh 吗?
2. docker 绑定 127.0.0.1 之后,如果需要公网端口访问+ufw 控制,如何解决?
bodayw
2025 年 11 月 25 日
看到说要启用 BBR ,想起来我前阵子恰好稍微研究了一下这个。

先说结论:虽然网上流传的烂大街的教程和脚本都写了 net.core.default_qdisc = fq ,但这个应该早就不需要了。只需 net.ipv4.tcp_congestion_control=bbr 即可。

Linux kernel < 4.20 的时候,配置 fq 是必须的,但现在已经不是了,参见:
https://groups.google.com/g/bbr-dev/c/4jL4ropdOV8

根据 Bufferbloat 创始人之一 Dave Täht 的说法,fq_codel 是更好的默认值,而这也已经是几乎所有主流发行版的默认配置了( Debian 应该是最后一个改的,从 bullseye(11) 开始)。fq 只在少数情况下优于 fq_codel 。详见这里的评论:
https://github.com/systemd/systemd/issues/9725
以及这里:
https://blog.cerowrt.org/post/state_of_fq_codel/
Atma
2025 年 11 月 25 日
@totoro625 端口最好也换一下;公网可以 ng 反代,甚至套 cloudflare ,只允许 cloudflare ip 访问
cndns
2025 年 11 月 26 日
DejavuMoe
2025 年 11 月 26 日
@totoro625 建议 1~2 没影响,3 会再学习一下。
已经使用 SSH key 了,还是需要 Fail2ban
公网访问使用任何 web 服务器 Nginx 、Apache 、Caddy……反向代理即可
DejavuMoe
2025 年 11 月 26 日
@bodayw 学习了,感谢!
BeforeTooLate
2025 年 11 月 26 日
villivateur
2025 年 11 月 26 日
我一直觉得,SSH 只要禁用密码登录就行了,改端口、fail2ban 都是画蛇添足
jasonyang9
2025 年 11 月 26 日
👍大佬整个 ansible playbook 跑一下。。。
vioulo
2025 年 11 月 26 日
有人给我解答下问题么,我本地装 podman php 做开发环境,但是现在 主机 nginx 访问无权限
daimaosix
2025 年 11 月 26 日
@bodayw 学习了!
daimaosix
2025 年 11 月 26 日
@villivateur 没有绝对的安全,即使改端口,使用 fail2ban 都是为了提高一些门槛,无非就是你不做其他的沦陷的更快一些
secretys
2025 年 11 月 26 日
这个博客好看,不知道 wp 有没有一样的主题
villivateur
2025 年 11 月 26 日
@daimaosix 禁用密码登录,只允许密钥登录,就是现实意义上的绝对安全,不可能破解。
iamwin
2025 年 11 月 26 日
提几点建议啊
1. 不推荐使用经过加料的 dd 脚本,如果你要重装 debian 的话,我更推荐在服务商的恢复模式下使用官方的云镜像 dd 覆盖目标磁盘并手动调整分区 https://cloud.debian.org/images/cloud/ , 或者使用 https://netboot.xyz/ ,直接重装系统。
2. 如果你是用的是 debian 最新版系统,这三个包已自带 ca-certificates apt-transport-https curl ,不需要再次安装,screen 包我不知道你安装来做什么,如果你是准备用来持久化后台运行某些程序,我建议你学习一下 systemd 服务的写法,还有 unzip 包,用的情况很多,推荐你安装
3. docker 安装过程,他们官网的指南已经过时了,你只需要安装 docker-ce 这一个包其他都会跟着一起安装,更推荐使用新的 docker compose 命令,而不是老的 docker-compose
4. 如果你是手打命令用 apt ,如果你是写脚本用 apt-get ,apt 在脚本里面用会出现一些 file locked 的问题
5. fail2ban 和 ufw ,这两个东西,如果是你自己使用的服务器,我觉得是完全没有必要安装的,对于防火墙我推荐你也学习一下 firewalld
6. 最后 ssh 配置我觉得改非默认端口就能减少绝大部分的密码爆破了,其他配置改了用处都不大
BeforeTooLate
2025 年 11 月 26 日
@villivateur 你的理解没有错啊,改端口、fail2ban 只不过可以减少被暴力扫描的烦人的日志罢了,我就不安装 fail2ban ,日志里面就 N 多的扫描记录
realpg
2025 年 11 月 26 日
@iamwin #15
搞过云基础设施的建议:

小厂云服务可以 dd 官方镜像
大厂/巨厂不建议的, 会有很多隐性问题, 还是用厂商给你弄好的, 换了在一些特殊调度上会亏, 有些厂商是有一些黑科技的 除非你用来挖矿或者纯 CPU 密集应用
mdn
2025 年 11 月 26 日
@daimaosix ssh 密钥被破解,等于加密货币 可以被破解,fail2ban 唯一作用减少日志
liuzimin
2025 年 11 月 26 日
没人用 ssh 的两步验证吗?我觉得还挺爽的。
Suomea
2025 年 11 月 26 日
密码复杂度
密码过期
登录失败锁定
会话超时自动退出
开启审计进程

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1175034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX