Linux 基础网络设置

以下演示cli方法
也可以RDP登录到桌面使用Advanced Network Manager

查看

查看网卡

方法 1:使用 ip 命令

运行以下命令来查看所有网卡的 IP 地址信息:ip addr

方法 2:使用 ifconfig 命令

如果系统中安装了 net-tools 包,可以使用:ifconfig

sudo apt update
sudo apt install net-tools

查看网口占用

netstat -tulnp | grep 1750

或者

sudo lsof -i -P -n | grep LISTEN  
sudo netstat -tulpn | grep LISTEN  
sudo ss -tulpn | grep LISTEN  
sudo lsof -i:22 ## see a specific port such as 22 ##  
sudo nmap -sTU -O IP-address-Here

查看路由

可以使用以下命令查看现有的静态路由:

使用 ip route 命令

这是查看路由表的主要命令,可以列出所有的路由条目,包括静态路由和默认路由。
ip route

输出示例:

default via 192.168.1.1 dev ens34
192.168.1.0/24 dev ens34 proto kernel scope link src 192.168.1.100
10.0.0.0/24 via 192.168.1.2 dev ens35

在输出中:

  • default via 192.168.1.1 dev ens34 表示默认网关,流量会通过 ens34 网卡经由 192.168.1.1 出去。
  • 10.0.0.0/24 via 192.168.1.2 dev ens35 是一个静态路由条目,指示所有发往 10.0.0.0/24 网络的流量都经由 ens35 网卡走 192.168.1.2
使用 route -n 命令

这个命令是较旧的方式,也可以用来查看路由表。
route -n

输出示例:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 ens34
10.0.0.0        192.168.1.2     255.255.255.0   UG    0      0        0 ens35
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ens34

在这个输出中:

  • Destination 是目标网络。
  • Gateway 表示该网络的下一跳(网关)。
  • Iface 是出接口(网卡)。
使用 netstat -rn 命令

需要安装 net-tools 包。
netstat -rn

使用 nmcli 查看 NetworkManager 配置的路由

如果你的系统使用 NetworkManager,可以使用:
nmcli connection show
查看特定连接的详细信息:
nmcli connection show <connection_name>

设置静态 ip 和网关

Netplan 配置文件

通常,Netplan 的配置文件位于 /etc/netplan/ 目录下:
ls /etc/netplan/
sudo nano /etc/netplan/01-netcfg.yaml

编辑配置文件

找到文件中对应 ens34 网卡的配置部分,并将其修改为以下格式:

network:
  version: 2
  ethernets:
    ens34:
      dhcp4: false
      addresses:
        - 192.168.1.100/24           # 第一张网卡的静态 IP
      nameservers:
          addresses:
            - 8.8.8.8                 # 可选的 DNS 配置
            - 8.8.4.4
      routes:
        - to: 0.0.0.0/0               # 设置默认路由
          via: 192.168.1.1            # 指向路由器的 IP
          metric: 100                 # 设置路由优先级(可选)
    ens33:
      dhcp4: false
      addresses:
        - 10.0.0.100/24               # 第二张网卡的静态 IP
      routes:
        - to: 10.0.0.0/24             # 静态路由,指向特定网段
          via: 10.0.0.100

在这里:

  • dhcp4: false 表示禁用 DHCP,以便使用静态 IP。
  • addresses 是一个列表,包含网卡的 IP 地址和子网掩码(CIDR 格式)。
  • gateway4 用于设置默认网关。
  • nameservers 用于指定 DNS 服务器(可选)。
应用更改

sudo netplan apply
应用完成后,可以使用 ip addr show ens34ip route 命令检查是否已成功设置静态 IP 和网关。

[!info]
网络环路的原因
网络环路是指网络中存在多个路径从而形成一个环形结构,数据包会在这个环路中不断地循环,导致网络流量无法有效传输。环路的常见原因包括:

  • 交换机端口未正确配置:如果交换机上的端口没有正确配置为 VLAN 或桥接模式,并且网络拓扑形成了环形结构,数据包会在环路中不断循环
  • STP(生成树协议)未启用或配置错误:生成树协议(STP)是用来避免网络环路的一种协议。STP 会自动选择最优路径并阻塞多余的连接路径。如果你的交换机没有启用 STP,或者配置不当,就可能会形成环路。

[!tip]
如果你希望 Ubuntu 使用一张网卡访问互联网(指向路由器),而另一张网卡通过 Windows PC 路由到局域网的其他部分,可以配置如下:

  • 主网卡(比如 ens34)的网关指向路由器。
  • 第二张网卡(比如 ens33)没有网关,但可以通过静态路由与 Windows PC 进行特定网络通信。

这样,系统会正常使用第一个网关(路由器)访问互联网,而第二张网卡仅用于局域网通信,不会干扰默认的路由配置。