Linux系统网络配置

1. Ubuntu网络配置

cd /etc/netplan/
vim *-config.yaml

# 配置文件具体内容如下
vim 00-installer-config.yaml 

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp7s0:
      addresses:
      - 192.168.0.x/24
      gateway4: 192.168.0.1
      nameservers:
        addresses:
        - 114.114.114.114
        - 8.8.8.8
        search: []
    enp8s0:
      addresses:
      - 192.168.0.x/24
      gateway4: 192.168.0.1
      nameservers:
        addresses:
        - 114.114.114.114
        - 8.8.8.8
        search: []
  version: 2

如果提示gateway4已过时,则用route替换gateway4

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp7s0:
      addresses:
      - 192.168.0.x/24
      routes:
        - to: 0.0.0.0/0
          via: 192.168.0.1
          metric: 100 # 路由的度量值,即路由的优先级
      nameservers:
        addresses:
        - 114.114.114.114
        - 8.8.8.8
        search: []

2. CentOS网络配置

cd /etc/sysconfig/network-scripts
vim ifcfg-*

# 配置文件具体如下
vim ifcfg-enp2s0

HWADDR=1A:2B:3C:4D:5E:6F
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp2s0
UUID=abcdefgh-ijkl-mnop-a1d2-c95daa35c044
ONBOOT=yes
IPADDR0=192.168.0.x
NETMASK=255.255.255.0
GATEWAY0=192.168.0.1
DNS1=61.177.7.1
DNS2=8.8.8.8

3. 快速配置ip地址

sudo ip address add [IP 地址]/[子网掩码] dev [接口名称] 命令,其中:

  • [IP 地址] 是您要设置的 IP 地址。

  • [子网掩码] 是您的网络的子网掩码。

  • [接口名称] 是您要将 IP 地址添加到的网络接口名称。

# 配置网卡ip地址
sudo  ip address add 192.168.0.x/24 dev eth0
sudo  ip addr add 192.168.0.x/24 dev eth0 # 使用 ip address 效果一样

# 配置默认网关
route add default gw 192.168.0.x
# 配置DNS服务
echo "nameserver 114.114.114.114" >> /etc/resolv.conf

# 查看DNS
cat /etc/resolv.conf

ifconfig <接口名> <ip地址> netmask <子网掩码> up

sudo ifconfig eth0 192.168.0.x netmask 255.255.255.0 up

4. 网卡设置多个IP

ip addr add ip dev device_name label device_name2
# 配置多个ip
# device_name 为网卡名称
sudo ip addr del 192.168.0.1/24 dev device_name label device_name2

参数说明:

其他参数:

  • ip: 要添加的 IP 地址。
  • dev: 指定要将 IP 地址添加到的网络设备的名称。
  • device_name: 要将 IP 地址添加到的网络设备的名称。
  • label: 为新添加的 IP 地址设置标签。
  • device_name2: 标签的名称,它与之前指定的网络设备名称相同。

总结,该命令的目的是将一个 IP 地址添加到指定的网络设备,并给这个 IP 地址设置一个标签。

5. 查看网关命令

route –n # 内核 IP 路由表
ip route show # 

ip route show 命令用于显示系统的路由表信息。它返回当前系统中配置的所有路由条目的详细信息,包括目标网络、子网掩码、下一跳地址、出口接口等。

示例输出可能如下所示:

default via 192.168.1.1 dev eth0 proto static metric 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
10.0.0.0/8 via 192.168.1.254 dev eth0 proto static metric 200

在这个示例中,有个路由条目:

  • 默认路由:,表示所有未知目标网络的数据包将通过 接口发送到网关 。default via 192.168.1.1 dev eth0``eth0``192.168.1.1
  • 目标网络 的本地连接:,表示该网络直接连接到 接口,源IP地址 。192.168.1.0/24``192.168.1.0/24 dev eth0``eth0``192.168.1.100
  • 目标网络 的静态路:,表示数据包目标网络为 的流量将通过 接口发送到网关 。10.0.0.0/8``10.0.0.0/8 via 192.168.1.254 dev eth0``10.0.0.0/8``eth0``192.168.1.254

实际输出中可能会有更多路由条目,具输出内容取决于系统的网络配置。

6. 开启/关闭网卡

# 优先使用
sudo ip link set <interface_name> down
# 示例
# 关闭 eth0 网卡
sudo ip link set eth0 down
# 开启 eth0 网卡
sudo ip link set eth0 up

# 启动 eth0 网卡
ifup eth0
# 关闭 eth0 网卡
ifdown eth0

# 第二种方式

# 启动 eth0 网卡
sudo ifconfig eth0 192.168.0.x netmask 255.255.255.0 up
# 关闭 eth0 网卡
sudo ifconfig eth0 192.168.0.x netmask 255.255.255.0 down

7. 静态路由配置

1. 优先方案
  1. 也可以使用route添加静态路由:
sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

这种方法添加的静态路由重启后会失效。

  1. route add命令:
route add -net 目标网段/掩码netmask 网关地址

针对您给出的100.100.1.11这个地址,正确的添加静态路由的命令应该是:

sudo route add -net 100.100.1.0 netmask 255.255.255.0 gw 192.168.0.1

这里的说明:

  • 100.100.1.0/24 表示目标网络的网段,100.100.1.0 - 100.100.1.254
  • 255.255.255.0 表示该网段的子网掩码
  • gw 192.168.0.1 表示数据包经过网关192.168.0.1转发

您给出的180.100.32.12只是一个单独的IP地址,不能作为网络路由的目标网段。

路由命令需要指定整个网络段(用CIDR表示),然后配置到该网段的静态路由。

另外,这个静态路由重启后会失效,可以添加到网卡配置文件中永久保存。

请根据实际网络情况和需求,使用正确的命令语法配置Linux静态路由。

  1. 路由优先级设置

在 Linux 系统中,可以通过调整路由表中的 metric 值来设置路由优先级,数值越小,优先级越高。

  1. 查看当前路由表

使用命令 ip routeroute -n 来查看路由表,注意观察 metric 字段。

  1. 修改已有路由优先级

使用命令:

sudo ip route change to ${target} via ${gateway} metric ${new_metric}

例如:

sudo ip route change to 192.168.1.0/24 via 10.0.0.1 metric 100

这会将到 192.168.1.0/24 网段的路由 metric 改为 100。

  1. 添加新路由时指定 metric

添加路由时使用 metric 参数,例如:

sudo ip route add 192.168.2.0/24 via 10.0.0.2 metric 50
  1. 永久保存路由表

编辑 /etc/sysconfig/network-scripts/route-${ifname} 文件,指定各路由的 metric 值。

Metric 值小的路由会被优先使用,你可以根据网络需求针对不同路由调整此值来设置优先级。

2. 备用方案
  1. 添加静态路由

    使用以下命令添加静态路由:

ip route add 目标网络/子网掩码 via 下一跳地址

例如,要将数据包路由到目标网络192.168.2.0/24,下一跳地址为192.168.1.1,可以执行:

ip route add 192.168.2.0/24 via 192.168.1.1

这会将流向192.168.2.0/24的数据包发送到192.168.1.1。

  1. 删除静态路由

    要删除已经配置的静态路由,使用以下命令:

ip route del 目标网络/子网掩码

例如,删除之前配置的路由:

ip route del 192.168.2.0/24
  1. 持久化静态路由

    静态路由在系统重新启动后会丢失,如果需要持久化配置,可以将静态路由添加到网络配置文件中。这些配置文件的位置可能因Linux发行版而异,通常在/etc/network/interfaces(Debian/Ubuntu)或/etc/sysconfig/network-scripts/route-<接口>(Red Hat/CentOS)等文件中。

    编辑适当的文件,添加类似以下的行:

up ip route add 目标网络/子网掩码 via 下一跳地址

例如:

up ip route add 192.168.2.0/24 via 192.168.1.1
  1. 生效配置

    使用以下命令重启网络服务以应用新的静态路由配置:

    • 在Debian/Ubuntu上:
sudo systemctl restart networking
  • 在Red Hat/CentOS上:
sudo systemctl restart network
  1. 验证路由配置

    使用以下命令验证静态路由是否生效:

ip route show

或者使用route -n来查看路由表。

配置静态路由可以帮助您更好地管理网络流量,但请确保谨慎操作,以避免网络故障。在配置之前,最好了解您的网络拓扑和要求,并备份任何现有的路由配置。

8. 网卡速率查看

使用 ethtool 命令进行查看,使用格式:ethtool 网络接口名

以下为例,使用ip addr查看当前使用的网卡,获取网卡名字:enp0s8

lg@localhost:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:db:8b:2b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s8
       valid_lft 42764sec preferred_lft 42764sec
    inet6 fe80::7cea:7fd0:ef99:663e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

使用 ethtool enp0s8 命令进行查看

root@localhost:~# ethtool enp0s8
Settings for enp0s8:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes
root@localhost:~#

Speed 表示网卡带宽,Duplex 表示工作模式,Supported link modes 表示支持的工作模式。

扩展资料:

ethtool命令的其它用法:

**Ps:**以下示例,网卡名为eth0

查询网络端口位置:

ethtool -p ethX

这个命令多用于管理多网口的服务器主机,由于背板的网络端口数量大,有时候不知道那个物理端口对应eth0或其他设备号,我们就可以使用这个命令来查询。

ethtool -p eth0

**效果:**它的功能是让指定的网络接口(在这里是eth0)的两个LED灯以一种特定的模式闪烁,以便于识别该网络接口。

这个命令通常用于帮助识别物理服务器上的网络接口,尤其是在机架式服务器中可能有多个类似的接口时,通过闪烁LED来确定具体的接口。闪烁模式取决于具体的实现和硬件设备,但通常是一种循环的模式,比如快速闪烁或按照特定的节奏闪烁。这样,你可以通过观察LED灯的闪烁来确定哪个物理接口对应于 eth0。

2、修改网络端口速率:ethtool -s

这个命令多用于手工设置网络速率,一般千兆网卡支持10|100|1000三个速率,单位是Mbps。

代码标签

用法:ethtool -s eth0 speed 1000 duplex full autoneg off

**效果:**将设备号eth0对应的物理端口设置为速率为1000Mbps,全双工工作模式,同时关闭自动协商。

3、其它概述

概要:
ethtool ethX      //查询ethX网口基本设置
ethtool –h        //显示ethtool的命令帮助(help)
ethtool –i ethX    //查询ethX网口的相关信息
ethtool –d ethX    //查询ethX网口注册性信息
ethtool –r ethX    //重置ethX网口到自适应模式
ethtool –S ethX    //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000]\         //设置网口速率10/100/1000M
[duplex half|full]\           //设置网口半/全双工
[autoneg on|off]\            //设置网口是否自协商
[port tp|aui|bnc|mii]\         //设置网口类型

9. 网络代理设置

  1. 设置HTTP_PROXYHTTPS_PROXY环境变量来配置代理。运行以下命令:
export HTTP_PROXY=http://<proxy_ip>:<proxy_port>
export HTTPS_PROXY=http://<proxy_ip>:<proxy_port>

<proxy_ip>替换为代理服务器的IP地址,将<proxy_port>替换为代理服务器的端口号。

  1. 如果代理服务器需要身份验证,请添加以下环境变量,并将其替换为你的代理用户名和密码:
export HTTP_PROXY_USER=<proxy_username>
export HTTP_PROXY_PASSWORD=<proxy_password>

<proxy_username>替换为代理用户名,将<proxy_password>替换为代理密码。

  1. 如果你的代理服务器还支持FTP协议,可以设置FTP_PROXY环境变量来配置FTP代理:
export FTP_PROXY=http://<proxy_ip>:<proxy_port>
  1. 最后,你可以通过运行env命令来确认代理配置是否生效。你应该能够在输出中看到设置的代理环境变量。

请注意,上述的环境变量只会在当前终端窗口中生效。如果你想要在所有终端窗口中持久化地配置代理,可以将上述命令添加到你的shell配置文件(如~/.bashrc~/.bash_profile)中。这样,每次启动终端时都会自动加载代理配置。

另外,不同的Linux发行版和版本可能略有差异,请根据你使用的系统进行相应的调整。

取消网络代理:

unset export HTTP_PROXY_USER=<proxy_username>
unset export HTTP_PROXY_PASSWORD=<proxy_password>

10. IP转发

1. IPv4转发
  1. 检查当前IPv4转发状态:

    在终端中执行以下命令,以查看当前系统的IPv4转发状态:

cat /proc/sys/net/ipv4/ip_forward
  • 如果显示为0,表示IPv4转发已禁用。
  • 如果显示为1,表示IPv4转发已启用。
  1. 临时启用IPv4转发:

    如果IPv4转发已禁用,您可以通过以下命令临时启用它,但该设置将在系统重启后失效:

sudo sysctl -w net.ipv4.ip_forward=1

这将立即启用IPv4转发功能。

  1. 永久启用IPv4转发:

    要使IPv4转发设置在系统重启后仍然生效,需要编辑 /etc/sysctl.conf 文件。使用文本编辑器打开文件:

sudo vi /etc/sysctl.conf

在文件末尾添加以下行,以启用IPv4转发:

net.ipv4.ip_forward=1

保存并关闭文件。

  1. 应用配置更改:

    运行以下命令以使新的sysctl配置生效:

sudo sysctl -p

这将重新加载sysctl配置并启用IPv4转发。

  1. 配置NAT(网络地址转换):

    如果您希望将Linux系统配置为路由器,并允许局域网中的设备访问互联网,您可能还需要配置NAT。使用以下命令配置NAT:

sudo iptables -t nat -A POSTROUTING -o <外部接口> -j MASQUERADE

其中 <外部接口> 是连接到互联网的网络接口的名称,通常是eth0。

  1. 保存iptables规则:

    为了确保iptables规则在系统重启后保持不变,需要将它们保存。使用以下命令:

sudo service iptables save

或者在一些系统上,可以使用:

sudo iptables-save > /etc/sysconfig/iptables

这样规则将在系统重启后自动加载。

  1. 测试IPv4转发:

    确保您的网络配置正确,然后通过从局域网中的一台设备尝试访问互联网来测试IPv4转发是否正常工作。

2. IPv6转发
  1. 查看IPv6转发状态:

    使用以下命令可以查看系统的IPv6转发状态:

sysctl net.ipv6.conf.all.forwarding

这将返回一个值,通常为1(表示启用转发)或0(表示禁用转发)。如果值为1,则表示IPv6转发已启用。

  1. 查看特定接口的IPv6转发状态:

    若要查看特定网络接口(比如eth0)的IPv6转发状态,可以运行以下命令:

sysctl net.ipv6.conf.eth0.forwarding

同样,这将返回一个值,表示该接口的IPv6转发状态。

  1. 启用或禁用IPv6转发:

    如果需要启用或禁用IPv6转发,可以使用以下命令:

    • 启用IPv6转发:
sudo sysctl -w net.ipv6.conf.all.forwarding=1

这会立即启用IPv6转发。如果您希望永久启用,您可以编辑 /etc/sysctl.conf 文件并将以下行添加到文件末尾:

net.ipv6.conf.all.forwarding=1
 然后运行以下命令以应用更改:
sudo sysctl -p
  • 禁用IPv6转发:
sudo sysctl -w net.ipv6.conf.all.forwarding=0
同样,如果要永久禁用,将以下行添加到 `/etc/sysctl.conf` 文件末尾:
net.ipv6.conf.all.forwarding=0
 然后运行 `sudo sysctl -p` 以应用更改。

请注意,启用IPv6转发时,确保您的防火墙和路由设置正确配置,以确保安全性和网络流量的流向。在更改系统的网络设置之前,务必小心谨慎,并确保您了解其潜在影响。

11. docker网络配置

Docker是一种流行的容器化平台,它提供了强大的网络功能,使得容器之间可以进行通信和连接到外部网络。以下是关于Docker网络的一些常见操作和概念的手册。

  1. 查看网络列表: 使用以下命令可以查看Docker中存在的网络列表:
docker network ls
  1. 创建网络: 可以使用以下命令创建一个新的Docker网络:
docker network create <network_name>

例如:

docker network create mynetwork
  1. 运行容器并连接到网络: 在创建容器时,可以使用--network选项将容器连接特定的网络。例如:
docker run --network=mynetwork <image_name>
  1. 检查容器的网络连接: 使用以下令可以检查容器的网络连接情况:
docker inspect <container_id>

在输出中,找到"Networks"部分,其中包含有关容器网络的详细信息。

  1. 连接容器到现有网络: 如果要将容器连接到已经存在的网络,可以使用以下命:
docker network connect <network_name> <container_name_or_id>

例如:

docker network connect mynetwork mycontainer
  1. 断开容器与网络的连接: 使用以下命令可以断开容器与网络的连接:
docker network disconnect <network_name> <container_name_or_id>

例如:

docker network disconnect mynetwork mycontainer
  1. 删除网络: 如果要删除不再需要的网络,可以使用以下命:
docker network rm <network_name>

请注意,只有在没有容器连接该网络时才能成功删除。

  1. 设置容器的别名: 可以为器设置别名,以便容器之可以使用别名进行通信。使用以下令为容器设置别名:
docker run --network-alias=<alias_name> <image_name>

例如:

docker run --network-alias=db mydbimage

这些是关于Docker网络操作的一些常见命令和概念。通过使用这些命令,您可以创建、管理和连接Docker网络,以满足您的容器应用程序的需求。

  1. 扫描 Docker 系统中的网络资源,并删除那些没有被任何容器使用的网络资源。会自动识别删除未使用的网络,以释放存储空间并提高系统性能。
docker network prune

执行该命令,Docker 将描系统中的网络资源,并列出所有未使用的网络。然后,它会提示你确认是否要删除这些未使用的网络。如果你确认删除,Docker 将立即删除这些网络资源。

需要注意是,执行 Docker Network Prune 命令将可逆地删除未使用网络资源。因此,在执行之前,请确保你不再需要这些网络资源,并且它们不会影响到正在运行的容器其他相关操作。

12. hosts 修改

  • Windows
cd C:\Windows\System32\drivers\etc
notepad hosts
  • Linux
vi /etc/hosts
  • Mac Os
# 打开文件管理器(Finder)
# Shift+Command+G : 打开终端定位到文件夹
vi /etc/hosts
  • Android
/system/etc/hosts
  • 添加如下信息
# hosts 示例
# 127.0.0.1       localhost
# 添加本地DNS域名解析
192.168.0.1   hostname.com

文章部分内容由AI提供,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值