文章目录
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. 优先方案
- 也可以使用route添加静态路由:
sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.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静态路由。
- 路由优先级设置
在 Linux 系统中,可以通过调整路由表中的 metric 值来设置路由优先级,数值越小,优先级越高。
- 查看当前路由表
使用命令 ip route
或 route -n
来查看路由表,注意观察 metric 字段。
- 修改已有路由优先级
使用命令:
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。
- 添加新路由时指定 metric
添加路由时使用 metric
参数,例如:
sudo ip route add 192.168.2.0/24 via 10.0.0.2 metric 50
- 永久保存路由表
编辑 /etc/sysconfig/network-scripts/route-${ifname}
文件,指定各路由的 metric 值。
Metric 值小的路由会被优先使用,你可以根据网络需求针对不同路由调整此值来设置优先级。
2. 备用方案
-
添加静态路由:
使用以下命令添加静态路由:
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。
-
删除静态路由:
要删除已经配置的静态路由,使用以下命令:
ip route del 目标网络/子网掩码
例如,删除之前配置的路由:
ip route del 192.168.2.0/24
-
持久化静态路由:
静态路由在系统重新启动后会丢失,如果需要持久化配置,可以将静态路由添加到网络配置文件中。这些配置文件的位置可能因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
-
生效配置:
使用以下命令重启网络服务以应用新的静态路由配置:
- 在Debian/Ubuntu上:
sudo systemctl restart networking
- 在Red Hat/CentOS上:
sudo systemctl restart network
-
验证路由配置:
使用以下命令验证静态路由是否生效:
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. 网络代理设置
- 设置
HTTP_PROXY
和HTTPS_PROXY
环境变量来配置代理。运行以下命令:
export HTTP_PROXY=http://<proxy_ip>:<proxy_port>
export HTTPS_PROXY=http://<proxy_ip>:<proxy_port>
将<proxy_ip>
替换为代理服务器的IP地址,将<proxy_port>
替换为代理服务器的端口号。
- 如果代理服务器需要身份验证,请添加以下环境变量,并将其替换为你的代理用户名和密码:
export HTTP_PROXY_USER=<proxy_username>
export HTTP_PROXY_PASSWORD=<proxy_password>
将<proxy_username>
替换为代理用户名,将<proxy_password>
替换为代理密码。
- 如果你的代理服务器还支持FTP协议,可以设置
FTP_PROXY
环境变量来配置FTP代理:
export FTP_PROXY=http://<proxy_ip>:<proxy_port>
- 最后,你可以通过运行
env
命令来确认代理配置是否生效。你应该能够在输出中看到设置的代理环境变量。
请注意,上述的环境变量只会在当前终端窗口中生效。如果你想要在所有终端窗口中持久化地配置代理,可以将上述命令添加到你的shell配置文件(如~/.bashrc
或~/.bash_profile
)中。这样,每次启动终端时都会自动加载代理配置。
另外,不同的Linux发行版和版本可能略有差异,请根据你使用的系统进行相应的调整。
取消网络代理:
unset export HTTP_PROXY_USER=<proxy_username>
unset export HTTP_PROXY_PASSWORD=<proxy_password>
10. IP转发
1. IPv4转发
-
检查当前IPv4转发状态:
在终端中执行以下命令,以查看当前系统的IPv4转发状态:
cat /proc/sys/net/ipv4/ip_forward
- 如果显示为0,表示IPv4转发已禁用。
- 如果显示为1,表示IPv4转发已启用。
-
临时启用IPv4转发:
如果IPv4转发已禁用,您可以通过以下命令临时启用它,但该设置将在系统重启后失效:
sudo sysctl -w net.ipv4.ip_forward=1
这将立即启用IPv4转发功能。
-
永久启用IPv4转发:
要使IPv4转发设置在系统重启后仍然生效,需要编辑
/etc/sysctl.conf
文件。使用文本编辑器打开文件:
sudo vi /etc/sysctl.conf
在文件末尾添加以下行,以启用IPv4转发:
net.ipv4.ip_forward=1
保存并关闭文件。
-
应用配置更改:
运行以下命令以使新的sysctl配置生效:
sudo sysctl -p
这将重新加载sysctl配置并启用IPv4转发。
-
配置NAT(网络地址转换):
如果您希望将Linux系统配置为路由器,并允许局域网中的设备访问互联网,您可能还需要配置NAT。使用以下命令配置NAT:
sudo iptables -t nat -A POSTROUTING -o <外部接口> -j MASQUERADE
其中 <外部接口>
是连接到互联网的网络接口的名称,通常是eth0。
-
保存iptables规则:
为了确保iptables规则在系统重启后保持不变,需要将它们保存。使用以下命令:
sudo service iptables save
或者在一些系统上,可以使用:
sudo iptables-save > /etc/sysconfig/iptables
这样规则将在系统重启后自动加载。
-
测试IPv4转发:
确保您的网络配置正确,然后通过从局域网中的一台设备尝试访问互联网来测试IPv4转发是否正常工作。
2. IPv6转发
-
查看IPv6转发状态:
使用以下命令可以查看系统的IPv6转发状态:
sysctl net.ipv6.conf.all.forwarding
这将返回一个值,通常为1(表示启用转发)或0(表示禁用转发)。如果值为1,则表示IPv6转发已启用。
-
查看特定接口的IPv6转发状态:
若要查看特定网络接口(比如eth0)的IPv6转发状态,可以运行以下命令:
sysctl net.ipv6.conf.eth0.forwarding
同样,这将返回一个值,表示该接口的IPv6转发状态。
-
启用或禁用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网络的一些常见操作和概念的手册。
- 查看网络列表: 使用以下命令可以查看Docker中存在的网络列表:
docker network ls
- 创建网络: 可以使用以下命令创建一个新的Docker网络:
docker network create <network_name>
例如:
docker network create mynetwork
- 运行容器并连接到网络: 在创建容器时,可以使用
--network
选项将容器连接特定的网络。例如:
docker run --network=mynetwork <image_name>
- 检查容器的网络连接: 使用以下令可以检查容器的网络连接情况:
docker inspect <container_id>
在输出中,找到"Networks"部分,其中包含有关容器网络的详细信息。
- 连接容器到现有网络: 如果要将容器连接到已经存在的网络,可以使用以下命:
docker network connect <network_name> <container_name_or_id>
例如:
docker network connect mynetwork mycontainer
- 断开容器与网络的连接: 使用以下命令可以断开容器与网络的连接:
docker network disconnect <network_name> <container_name_or_id>
例如:
docker network disconnect mynetwork mycontainer
- 删除网络: 如果要删除不再需要的网络,可以使用以下命:
docker network rm <network_name>
请注意,只有在没有容器连接该网络时才能成功删除。
- 设置容器的别名: 可以为器设置别名,以便容器之可以使用别名进行通信。使用以下令为容器设置别名:
docker run --network-alias=<alias_name> <image_name>
例如:
docker run --network-alias=db mydbimage
这些是关于Docker网络操作的一些常见命令和概念。通过使用这些命令,您可以创建、管理和连接Docker网络,以满足您的容器应用程序的需求。
- 扫描 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提供,如有侵权,请联系删除。