Skip to main content

2.Debian基本配置

Debian 的基本配置,包括网络配置、SSH 配置、时区和语言配置、主机名配置以及防火墙配置。

网络配置

Debian 支持多种网络配置方式,包括静态 IP 地址、DHCP 客户端以及使用 NetworkManager。

  • 传统方式:编辑 /etc/network/interfaces 文件(适用于 Debian 11 及更早版本,某些 Debian 12 系统也适用)

    • 打开 /etc/network/interfaces 文件:

      • sudo nano /etc/network/interfaces
    • 静态IP地址配置示例:

      • # /etc/network/interfaces
        auto eth0
        iface eth0 inet static
        address 192.168.1.100 # 你想要设置的静态 IP 地址
        netmask 255.255.255.0 # 子网掩码
        gateway 192.168.1.1 # 网关地址
        dns-nameservers 8.8.8.8 8.8.4.4 # DNS 服务器地址
    • DHCP客户端配置示例:

      • # /etc/network/interfaces
        auto eth0
        iface eth0 inet dhcp
      • 解释:

        • auto eth0: 在系统启动时自动激活 eth0 接口。将 eth0 替换为实际的网络接口名称(例如:enp0s3)。 可以使用 ip link 命令查看网络接口名称。
        • iface eth0 inet static: 配置 eth0 接口使用静态 IP 地址。
        • iface eth0 inet dhcp: 配置 eth0 接口使用 DHCP 客户端。
        • address: 静态 IP 地址。
        • netmask: 子网掩码。
        • gateway: 网关地址。
        • dns-nameservers: DNS 服务器地址。 你可以指定多个DNS服务器,用空格分隔。
    • 配置完成之后,重启网络接口:

      • sudo systemctl restart networking
        # 或者
        # sudo ifdown eth0 && sudo ifup eth0
  • 使用 ip 命令配置(适用于较新的 Debian 系统)

    • 查看当前网络接口信息:

      • ip addr
    • 配置静态 IP 地址(示例):

      • sudo ip addr add 192.168.1.100/24 dev eth0  # 设置 IP 地址和子网掩码
        sudo ip link set dev eth0 up # 激活接口
        sudo ip route add default via 192.168.1.1 # 设置默认网关
        echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf # 设置 DNS 服务器
    • 注意: 使用 ip 命令进行的配置是临时的,重启系统后会失效。 要使配置永久生效,需要将这些命令添加到启动脚本中,或者使用 /etc/network/interfaces 文件。

  • 使用 NetworkManager (图形界面配置方法)

    • NetworkManager 是一个用于简化网络配置的工具,通常用于桌面环境。

    • 如果使用的是 GNOME、KDE 等桌面环境,可以使用 NetworkManager 图形界面来配置网络。

    • 也可以使用命令行工具 nmcli 来配置 NetworkManager。

    • 安装 NetworkManager :

      • sudo apt install network-manager
    • 使用 nmcli 配置静态 IP 地址:

      • sudo nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4" ipv4.method manual connection.autoconnect yes
        sudo nmcli con up "Wired connection 1"

        # 将 "Wired connection 1" 替换为实际的网络连接名称。 可以使用 `nmcli con show` 命令查看连接名称。

SSH 配置

SSH (Secure Shell) 用于远程登录和管理 Debian 服务器。

  • 安装 OpenSSH 服务器

    • sudo apt install openssh-server
  • 配置 SSH 免密登录

    • 在客户端生成 SSH 密钥对

      • ssh-keygen -t rsa -b 4096
    • 将公钥复制到 Debian 服务器,或者手动将公钥内容 (~/.ssh/id_rsa.pub) 复制到服务器的 ~/.ssh/authorized_keys 文件中

      • ssh-copy-id user@server_ip
  • 修改 SSH 端口

    • 打开 SSH 配置文件:

      • sudo nano /etc/ssh/sshd_config
    • 取消注释并修改端口号:

      • Port 2222  # 将端口号修改为你想要的端口号
    • 重启 SSH 服务:

      • sudo systemctl restart ssh
    • 注意: 修改 SSH 端口后,需要更新防火墙规则,允许新的端口流量。

  • 禁用密码登录:

    • 打开 SSH 配置文件:

      • sudo nano /etc/ssh/sshd_config
    • 找到 PasswordAuthentication yes 行,修改为 PasswordAuthentication no

      • PasswordAuthentication no
    • 重启 SSH 服务

      • sudo systemctl restart ssh
    • 注意: 禁用密码登录后,只能使用 SSH 密钥登录。 确保你已经配置好了 SSH 密钥登录,否则将无法登录服务器。

时区和语言配置

sudo dpkg-reconfigure tzdata		# 配置时区,选择地理区域和城市
sudo dpkg-reconfigure locales # 配置语言,例如:"en_US.UTF-8 UTF-8" 和 "zh_CN.UTF-8 UTF-8"。

主机名配置

hostname					# 查看当前主机名
sudo hostnamectl set-hostname new_hostname # 设置主机名
sudo nano /etc/hosts # 修改 `/etc/hosts` 文件,将 `127.0.1.1 current_hostname` 行修改为 `127.0.1.1 new_hostname`。

防火墙配置 (UFW 或 iptables)

Debian 提供了多种防火墙选择,常用的有 UFW (Uncomplicated Firewall) 和 iptables。

UFW (推荐,易于使用)

sudo apt install ufw		# 安装 UFW
sudo ufw allow ssh # 允许 SSH 流量
sudo ufw allow 22 # 允许端口 22 的流量
sudo ufw allow http # 允许 HTTP/HTTPS 流量
sudo ufw allow https
sudo ufw enable # 启用 UFW
sudo ufw status # 查看 UFW 状态
sudo ufw disable # 禁用 UFW

iptables (更底层,更强大)

  • iptables 是 Linux 内核自带的防火墙工具,配置比较复杂。
  • 建议使用 UFW 来简化防火墙配置。
  • iptables 的规则在重启后会失效,需要使用 iptables-persistent 工具来保存规则。
sudo apt install iptables-persistent
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许 SSH 流量
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许 HTTP 流量
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许 HTTPS 流量
sudo iptables -A INPUT -j DROP # 丢弃所有其他流量
sudo netfilter-persistent save # 保存规则