Ubuntu防火墙ufw常用命令开启关闭端口教程 Linux

前言

Ubuntu 默认防火墙是 ufw(Uncomplicated Firewall),比 iptables 规则好写很多。新装系统外网访问不通,多半是 ufw 没放行对应端口。本文讲解 ufw 启用、放行/删除端口、查看规则、拒绝与默认策略、应用别名,以及重启 SSH 前的注意事项。

操作步骤

1. 查看 ufw 状态

sudo ufw status

带 verbose 看详情:

sudo ufw status verbose

2. 启用防火墙

sudo ufw enable

启用前先放行 SSH,避免把自己锁掉:

sudo ufw allow 22/tcp

3. 放行常用端口

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp

4. 按服务名放行

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

5. 删除某条规则

sudo ufw delete allow 8080/tcp

6. 设置默认策略

sudo ufw default deny incoming
sudo ufw default allow outgoing

7. 拒绝某个 IP 访问

sudo ufw deny from 1.2.3.4

8. 重载与关闭

sudo ufw reload
sudo ufw disable

常见坑

  1. 先 enable 再放行 SSH,远程连接被切断,务必先 allow 22。
  2. 只写 ufw allow 不写协议,TCP/UDP 规则可能不符预期。
  3. ufw 启用了但云安全组没放行,外网仍不通,两层都要开。
  4. status 显示 inactive,规则没生效,需要 enable。
  5. 删除规则要用 delete allow 完整写法,不能只删数字。
  6. IPv6 规则需单独关注,部分服务走 v6 时漏配。
  7. 端口范围用 allow 6000:7000/tcp,写法别写错。

总结

ufw 操作口诀:先放行 SSH 再 enable,allow 开端口、delete 删规则、default 定默认策略。生产默认 deny incoming、allow outgoing。任何远程防火墙改动都要保留已连接窗口,新开终端验证后再关闭,防止失联。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-14 07:15 

Ubuntu22.04更换国内pip源加速Python包下载 Python

前言

执行 pip install 时经常卡在下载、报超时或连接超时,原因是默认访问 PyPI 官方源,国内网络跨洋拉取慢。把 pip 源换成清华、阿里等国内镜像,下载速度立竿见影,还能避免频繁断连。本文讲解临时使用、永久配置、单个包指定源、还原官方源的完整命令,适配 Ubuntu22.04 与 Python3。

操作步骤

1. 查看当前 pip 源

pip3 config list

2. 临时使用清华源安装单个包

pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 永久配置清华源

mkdir -p ~/.config/pip
cat > ~/.config/pip/pip.conf <<'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF

4. 验证配置生效

pip3 config list
pip3 install requests

安装日志里出现 tuna 域名即成功。

5. 其他常用国内源

# 阿里
https://mirrors.aliyun.com/pypi/simple/
# 中科大
https://pypi.mirrors.ustc.edu.cn/simple/

6. 升级 pip 本身

pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

7. 还原官方源

删除或注释 pip.conf 即可:

rm ~/.config/pip/pip.conf

常见坑

  1. 只对 root 配置了源,普通用户 pip 仍走官方,需要各自配置或写到 /etc/pip.conf 全局。
  2. 源地址漏写 /simple,报 404 或找不到包。
  3. 用了 http 源被要求 trusted-host,否则报 SSL 警告。
  4. 系统自带 python3-pip 和虚拟环境内 pip 配置互相独立。
  5. 部分新包国内源同步有延迟,个别版本找不到可临时指定官方源。
  6. 代理网络环境下镜像源仍需能直连,必要时配代理。
  7. pip 与 pip3 混用,装到不同 Python 版本。

总结

换 pip 源最快是临时 -i 指定,长期使用写 pip.conf 的 index-url。优先清华、阿里镜像,地址必须带 /simple。配置后用 pip config list 核对,新包安装看日志确认走镜像。虚拟环境单独管理配置,避免装错版本。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-14 07:15 

Ubuntu开启SSH服务并允许root登录配置 Linux

前言

新装的 Ubuntu 服务器默认可能没有安装 openssh-server,远程 SSH 连不上;或者安装了 SSH 但禁止 root 用户直接登录,用普通用户登入后还要切换。很多运维第一次远程连接 Ubuntu 就卡在 Permission denied。本文讲解安装 openssh-server、开启服务、放行防火墙、修改配置允许 root 登录、重启生效并验证的完整步骤,同时说明禁止 root 直连的安全取舍。

操作步骤

1. 安装 SSH 服务端

sudo apt update
sudo apt install -y openssh-server

2. 启动并设置开机自启

sudo systemctl enable --now ssh
sudo systemctl status ssh

看到 active (running) 即服务正常,Ubuntu 服务名是 ssh(不是 sshd)。

3. 防火墙放行 22 端口(ufw)

sudo ufw allow 22/tcp
sudo ufw reload

没启用 ufw 可跳过,云服务器还要在控制台安全组放行 22。

4. 编辑 sshd 配置允许 root 登录

sudo vi /etc/ssh/sshd_config

找到或修改:

PermitRootLogin yes
PasswordAuthentication yes

PermitRootLogin yes 允许 root 密码登录;若用密钥可保留 PermitRootLogin prohibit-password。

5. 重启 SSH 服务

sudo systemctl restart ssh

6. 验证连接

ssh root@服务器IP

新开一个终端测试,不要关闭当前窗口,防止配置错误把自己锁在外面。

常见坑

  1. 服务名写错成 sshd,Ubuntu 上 systemctl restart sshd 报未找到单元。
  2. 只装了客户端 openssh-client,没装服务端 openssh-server。
  3. PermitRootLogin 被注释或值为 no,root 登录直接被拒。
  4. 改完配置不重启 ssh,参数不生效。
  5. 云安全组没放行 22,本机防火墙放行了也连不上。
  6. 允许 root 密码登录风险高,公网建议改用密钥登录并关闭密码认证。
  7. /etc/ssh/sshd_config.d/ 下的子配置可能覆盖主配置,注意排查。

总结

Ubuntu 开启 SSH 的关键是装 openssh-server、enable --now ssh、ufw 放行 22,再在 sshd_config 设置 PermitRootLogin。生产环境更推荐密钥登录、关闭 root 密码直连。任何 sshd_config 修改后都要保留当前会话,新开窗口验证成功再关闭旧连接。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-14 07:10 

Ubuntu22.04 apt update报错Hash校验失败解决方法 Linux

前言

在 Ubuntu22.04 上执行 sudo apt update 时,经常出现 Hash Sum mismatch、Failed to fetch、校验失败之类的报错,软件包列表拉取不完整,后续 apt install 也会跟着失败。这类问题大多不是系统损坏,而是软件源缓存损坏、网络中断导致包列表残缺,或者所用镜像源本身同步不全。本文给出从清缓存、换国内源、校验修复到重装源列表的完整命令流程,适用于桌面版和服务器版 Ubuntu22.04。

操作步骤

1. 先清理损坏的本地缓存

sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

第一条清空下载缓存,第二条删除残缺的索引列表,让 apt 重新拉取完整清单。

2. 查看报错里是哪个源失败

执行 apt update 时留意末尾报错的域名,例如 archive.ubuntu.com 或 security.ubuntu.com,先判断是官方源还是第三方 PPA 的问题。

3. 更换为国内镜像源(清华源示例)

先备份原文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑源列表:

sudo vi /etc/apt/sources.list

替换为清华镜像(jammy 对应 22.04):

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

新版 Ubuntu 也可使用 /etc/apt/sources.list.d/ubuntu.sources,格式为 deb822,思路相同。

4. 重新拉取并更新

sudo apt update
sudo apt upgrade -y

5. 单独排查第三方 PPA

如果只有某个 PPA 报错,先禁用它:

sudo add-apt-repository --remove ppa:示例/ppa
sudo apt update

6. 必要时重新生成源列表

sudo rm -rf /etc/apt/sources.list.d/*
sudo apt update

常见坑

  1. 只执行 apt clean 不删除 lists,残缺索引还在,报错依旧。
  2. 换源后没更新,或者 jammy 写成了 focal(20.04),会报找不到包。
  3. 网络走代理但 apt 没配置代理,拉取官方源超时导致校验失败。
  4. 校园网或公司网关劫持,部分请求被截断,换国内直连源可绕过。
  5. 磁盘空间不足,索引下载到一半写盘失败,先 df -h 检查根分区。
  6. 多个 PPA 叠加,只报错其中一个,不要盲目删除全部源。

总结

Hash 校验失败的标准处理顺序是:清缓存删 lists → 换国内镜像源 → 单独排查 PPA → 必要时重建源列表。Ubuntu22.04 优先使用清华、阿里、中科大等稳定镜像,减少跨网同步不全的概率。修复后务必再次 apt update 确认无报错,再进行软件安装。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-14 07:08 
'); })();