新到手的 Linux 服务器,我这样设置 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
DejavuMoe
V2EX    程序员

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

  •  4
     
  •   DejavuMoe 1 天前 4801 次点击
    48 条回复    2025-11-27 09:17:55 +08:00
    totoro625
        1
    totoro625  
       1 天前   1
    写的很详细,非常有帮助
    随便提几个小建议
    1. apt 和 apt-get 不要混用,统一用一个就行
    2. Debian13 源用 DEB822 格式,不要再用传统格式了
    3. ufw 默认的日志服务依赖 rsyslog ,建议额外安装一下,否则会漏日志

    有几个疑问
    1. 已经使用 key 登录 ssh 了,还需要 Fail2ban 保护 ssh 吗?
    2. docker 绑定 127.0.0.1 之后,如果需要公网端口访问+ufw 控制,如何解决?
    bodayw
        2
    bodayw  
       1 天前   11
    看到说要启用 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 Tht 的说法,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
        3
    Atma  
       1 天前
    @totoro625 端口最好也换一下;公网可以 ng 反代,甚至套 cloudflare ,只允许 cloudflare ip 访问
    cndns
        4
    cndns  
       1 天前 via Android
    DejavuMoe
        5
    DejavuMoe  
    OP
       1 天前
    @totoro625 建议 1~2 没影响,3 会再学习一下。
    已经使用 SSH key 了,还是需要 Fail2ban
    公网访问使用任何 web 服务器 Nginx 、Apache 、Caddy……反向代理即可
    DejavuMoe
        6
    DejavuMoe  
    OP
       1 天前
    @bodayw 学习了,感谢!
    villivateur
        8
    villivateur  
       1 天前   5
    我一直觉得,SSH 只要禁用密码登录就行了,改端口、fail2ban 都是画蛇添足
    jasonyang9
        9
    jasonyang9  
       1 天前 via Android
    大佬整个 ansible playbook 跑一下。。。
    evansun
        10
    evansun  
       1 天前
    有人给我解答下问题么,我本地装 podman php 做开发环境,但是现在 主机 nginx 访问无权限
    daimaosix
        11
    daimaosix  
       1 天前
    @bodayw 学习了!
    daimaosix
        12
    daimaosix  
       1 天前
    @villivateur 没有绝对的安全,即使改端口,使用 fail2ban 都是为了提高一些门槛,无非就是你不做其他的沦陷的更快一些
    secretys
        13
    secretys  
      nbsp;1 天前
    这个博客好看,不知道 wp 有没有一样的主题
    villivateur
        14
    villivateur  
       1 天前
    @daimaosix 禁用密码登录,只允许密钥登录,就是现实意义上的绝对安全,不可能破解。
    iamwin
        15
    iamwin  
       1 天前   2
    提几点建议啊
    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
        16
    BeforeTooLate  
       1 天前
    @villivateur 你的理解没有错啊,改端口、fail2ban 只不过可以减少被暴力扫描的烦人的日志罢了,我就不安装 fail2ban ,日志里面就 N 多的扫描记录
    realpg
        17
    realpg  
    PRO
       1 天前
    @iamwin #15
    搞过云基础设施的建议:

    小厂云服务可以 dd 官方镜像
    大厂/巨厂不建议的, 会有很多隐性问题, 还是用厂商给你弄好的, 换了在一些特殊调度上会亏, 有些厂商是有一些黑科技的 除非你用来挖矿或者纯 CPU 密集应用
    mdn
        18
    mdn  
       1 天前
    @daimaosix ssh 密钥被破解,等于加密货币 可以被破解,fail2ban 唯一作用减少日志
    liuzimin
        19
    liuzimin  
       1 天前
    没人用 ssh 的两步验证吗?我觉得还挺爽的。
    Suomea
      &nbp; 20
    Suomea  
       1 天前
    密码复杂度
    密码过期
    登录失败锁定
    会话超时自动退出
    开启审计进程
    94nb
        21
    94nb  
       1 天前
    额,我也问个问题哈,你们单独用 ufw ,那安全组策略那里是直接全放开,直接用服务器的防火墙做防护吗?我的服务器基本没装过防火墙,都是依赖安全组设置传入传出。。。
    wangqi060934
        22
    wangqi060934  
       1 天前
    ChallengeResponseAuthentication no ,配这个是为啥?
    1018ji
        24
    1018ji  
       1 天前
    lotspeed
    CcHer
        25
    CcHer  
       1 天前
    softlimit 参数
    要不要根据情况关闭 swap
    selinux 和按需关闭防火墙,第三方防火墙要考虑使用的问题
    DejavuMoe
        26
    DejavuMoe  
    OP
       1 天前
    @BeforeTooLate 这个好!感谢分享
    hi2hi
        27
    hi2hi  
       1 天前   1
    我的步骤,1 、有枣没枣,先把一堆自己常用的工具安装上; 2 、改密钥登录和端口(防止一些无脑子爆破); 3 、装上 Docker ,开始 All in Docker
    lyxxxh2
        28
    lyxxxh2  
       1 天前

    被爆了一个月了,基本是爆 root admin 用户。
    好奇他多久停止,让他继续玩。
    asong
        29
    asong  
       1 天前
    感谢分享,最近买了一个 racknerd 的服务器,默认是 Ubuntu 系统的,请问是否也适用(我看这个帖子里都是关于 Debian 的)
    zhanying
        30
    zhanying  
       1 天前
    补充两个中国特色小工具:
    1 、linuxmirrors
    2 、chsrc

    一个是给包管理器换源,一个是各种换源
    DejavuMoe
        31
    DejavuMoe  
    OP
       1 天前
    @asong 适用
    elevioux
        32
    elevioux  
       1 天前
    在 根目录运行 claude code !
    adoal
        33
    adoal  
       1 天前
    我一般会开 fail2ban 或 sshguard ,但不会换 ssh 端口
    mx1700
        34
    mx1700  
       1 天前 via Android
    @94nb 大厂有自己的防火墙,服务器全放开就行
    小厂一般都没有,就需要每台服务器自己维护
    artiga033
        35
    artiga033  
       1 天前 via Android
    @iamwin 关于第 2 点,screen 和 systemd 设计目标就不一样,我自己的话用的是 tmux 。主要是跑一些可能运行很久的临时任务,比如下载或者上传一个大文件,临时开个端口转发之类的这种一次性场景。
    94nb
        36
    94nb  
       1 天前
    @mx1700 哦哦哦,了解了,感谢
    ibegyourpardon
        37
    ibegyourpardon  
       1 天前
    这个帖子久违的没有人炫耀,显摆,而是真诚的给建议。

    真好。
    dbit
        38
    dbit  
       23 小时 52 分钟前
    刚好需要 OP 的 cf 脚本
    Strikplf
        39
    Strikplf  
       23 小时 44 分钟前
    @asong 装个 1pannel
    DejavuMoe
        40
    DejavuMoe  
    OP
       23 小时 42 分钟前
    @ibegyourpardon 是的,评论区的一些观点和文章链接值得学习
    Apol1oBelvedere
        41
    Apol1oBelvedere  
       23 小时 33 分钟前
    博客干净简洁,内容行文严谨细致,完美。
    yhxx
        42
    yhxx  
       23 小时 5 分钟前
    @94nb 我就是这样的,只用安全组控制了
    不过做了备份,就算是全没了应该也问题不大
    wu00
        43
    wu00  
       22 小时 6 分钟前
    @totoro625 一直以为 apt-get 和 apt 的关系相当于 version 和-v
    shylockhg
        44
    shylockhg  
       21 小时 59 分钟前
    直接 opensuse-leap-micro 6.2 爽歪歪
    alex177027
        45
    alex177027  
       21 小时 57 分钟前 via Android
    很好的指南,但是有几个地方可以更新一下
    1.net-tools 对于 debian13 来说有点老了,现在都有系统自带的 ss 之类的可以替代了
    2.nginx 推荐使用 n.wtf 已经打包好了 quic zstd brotli 模块了
    3.fail2ban 有一点过时了,对于低配置的服务器用 sshguard 就足以,性能好一点的用 crowdsec 配合 nftables 更好
    DejavuMoe
        46
    DejavuMoe  
    OP
       21 小时 52 分钟前
    @alex177027 感谢指正
    gearfox
        47
    gearfox  
       9 小时 57 分钟前
    codehz
        48
    codehz  
       9 小时 14 分钟前
    都用 cloudflare 的话,其实没必要开端口给 cloudflare ,原站迟早会被找出来(即使限制了 cf 段的访问,攻击者还是可以用 worker 来定位)
    直接用 cloudflare tunnel 即可(
    甚至于 ssh 也可以用 zero trust
    这样甚至不需要有一个公网 ip ,想找原站也找不到
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3506 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 10:32 PVG 18:32 LAX 02:32 JFK 05:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86