Linux网络管理和修改配置文件

在 Linux 系统中,网络管理和修改配置文件是确保网络连接正常、调优性能和实施安全策略的重要任务。下面我将介绍常见的网络管理操作和如何通过修改配置文件来管理网络。

1. 查看和配置网络接口

1.1 使用 ip 命令管理网络接口
  • 查看网络接口信息

    bash 复制代码
    ip a

    这个命令显示所有网络接口及其 IP 地址信息。

  • 启用或禁用接口

1.2 编辑 /etc/network/interfaces(传统的 Debian 系统)

在一些旧的 Debian 系统(如 Ubuntu 16.04及之前版本)中,网络配置通常通过 /etc/network/interfaces 文件来管理。

  • 编辑网络配置文件

    bash 复制代码
    sudo nano /etc/network/interfaces

    配置文件的示例内容:

    bash 复制代码
    auto eth0 iface eth0 inet dhcp # 自动获取 IP 地址
    • auto eth0:表示在系统启动时自动启用 eth0 接口。
    • iface eth0 inet dhcp:表示 eth0 使用 DHCP 获取 IP 地址。

    配置静态 IP 地址的示例:

    bash 复制代码
    auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1

    保存后重新启动网络服务:

    bash 复制代码
    sudo systemctl restart networking
1.3 使用 netplan 配置网络(现代 Ubuntu 系统)

从 Ubuntu 17.10 以后,默认的网络配置管理工具变为 netplan

  • 编辑 netplan 配置文件

    bash 复制代码
    sudo nano /etc/netplan/01-netcfg.yaml

    配置文件示例(配置静态 IP):

    XML 复制代码
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          addresses:
            - 192.168.1.100/24
          gateway4: 192.168.1.1
          nameservers:
            addresses:
              - 8.8.8.8
              - 8.8.4.4

    然后应用配置:

    bash 复制代码
    sudo netplan apply

2. 配置 DNS

DNS 配置可以通过 /etc/resolv.conf 文件进行管理,尤其在较旧的系统中。

2.1 修改 /etc/resolv.conf
bash 复制代码
sudo nano /etc/resolv.conf

配置 DNS 服务器:

bash 复制代码
nameserver 8.8.8.8 nameserver 8.8.4.4

如果系统使用 systemdNetworkManager 管理网络,/etc/resolv.conf 文件可能会被动态更新,因此可以修改这些工具的配置来永久更改 DNS 设置。

2.2 配置 NetworkManager 使用自定义 DNS

编辑 NetworkManager 配置文件 /etc/NetworkManager/NetworkManager.conf

bash 复制代码
sudo nano /etc/NetworkManager/NetworkManager.conf

确保以下内容存在:

bash 复制代码
[main] dns=none

然后,在你的连接配置中(例如 eth0)设置 DNS:

bash 复制代码
sudo nano /etc/NetworkManager/system-connections/your-connection-name

添加或修改以下行来设置静态 DNS:

bash 复制代码
[ipv4]
method=manual
address1=192.168.1.100/24,192.168.1.1
dns=8.8.8.8;8.8.4.4;

保存后,重启 NetworkManager

bash 复制代码
sudo systemctl restart NetworkManager

3. 配置静态路由

如果需要设置静态路由,可以编辑网络配置文件或使用命令行来进行配置。

3.1 编辑 /etc/network/interfaces 文件(对于较旧的 Debian/Ubuntu 系统)
bash 复制代码
sudo nano /etc/network/interfaces

配置静态路由:

bash 复制代码
up route add -net 10.0.0.0/24 gw 192.168.1.1 eth0
3.2 使用 ip route 命令添加路由

临时添加路由:

bash 复制代码
sudo ip route add 10.0.0.0/24 via 192.168.1.1

查看路由表:

bash 复制代码
ip route

要使路由配置持久化,可以将路由配置写入 /etc/network/interfaces/etc/netplan/ 配置文件中。

4. 管理防火墙

4.1 使用 iptables

查看现有的防火墙规则:

bash 复制代码
sudo iptables -L

添加一个允许 HTTP 服务的规则:

bash 复制代码
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

保存 iptables 配置:

bash 复制代码
sudo iptables-save > /etc/iptables/rules.v4
4.2 使用 firewalld(在 CentOS 或 RHEL 系统上)

查看防火墙的状态:

bash 复制代码
sudo firewall-cmd --state

添加一个允许 HTTP 服务的规则:

bash 复制代码
sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload

5. 查看网络服务状态

5.1 查看网络管理服务状态
  • 查看 NetworkManager 服务状态

    bash 复制代码
    sudo systemctl status NetworkManager
  • 查看 systemd-networkd 服务状态

    bash 复制代码
    sudo systemctl status systemd-networkd
5.2 启动和停止网络服务
  • 启动网络服务:

    bash 复制代码
    sudo systemctl start NetworkManager
  • 停止网络服务:

    bash 复制代码
    sudo systemctl stop NetworkManager

6. 重启网络服务

在更改配置文件后,可能需要重启网络服务使其生效。

  • 重启网络服务(适用于 Debian/Ubuntu 系统):

    bash 复制代码
    sudo systemctl restart networking
  • 重启 NetworkManager (适用于使用 NetworkManager 的系统):

    bash 复制代码
    sudo systemctl restart NetworkManager

通过这些步骤,你可以管理和修改 Linux 系统上的网络配置文件,调整网络接口、DNS、路由等设置,确保系统的网络连接正常。

相关推荐
GGBondlctrl27 分钟前
丹摩征文活动 |【网络原理】关于HTTP的进化之HTTPS的加密原理的那些事
网络·https·非对称加密·对称加密·中间人攻击
溟洵31 分钟前
MySQl基础----Linux下数据库的密码和数据库的存储引擎(内附 实操图和手绘图 简单易懂)
linux·数据库·mysql
yfs102434 分钟前
Linux通过端口号找到程序启动路径(Ubuntu20)
linux·运维·服务器
有梦想的咕噜38 分钟前
在 Ubuntu 上安装 `.deb` 软件包有几种方法
linux·运维·ubuntu
苏格拉真没有底40 分钟前
docker配置代理解决不能拉镜像问题
运维·docker·容器
zjj58742 分钟前
tartanvo ubuntu 20.04部署
linux·运维·ubuntu
牛奔1 小时前
解决Mac M芯片 Wireshark 运行rvictl -s 后,出现Starting device failed
网络·测试工具·macos·wireshark
Xam_d_LM1 小时前
【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设备
linux·运维·服务器
一颗星星辰1 小时前
数据结构 | 题目练习第三章 | 有效的括号 | 用队列实现栈
java·linux·数据结构
黄小耶@1 小时前
Hadoop(环境搭建篇)
linux·运维·服务器