Linux网络设置

目录

一、查看网络配置

[1. 查看网络接口信息 ifconfig](#1. 查看网络接口信息 ifconfig)

[1.1 查看所以活动的网络接口信息](#1.1 查看所以活动的网络接口信息)

[1.2 查看指定网络接口信息](#1.2 查看指定网络接口信息)

[2. 查看主机名称hostname](#2. 查看主机名称hostname)

[2.1 hostname 命令](#2.1 hostname 命令)

[2.2 永久设置主机名](#2.2 永久设置主机名)

[3. 查看路由表条目 route](#3. 查看路由表条目 route)

[3.1 route 命令](#3.1 route 命令)

二、查看网络连接情况

[1. 查看网络连接情况 netstat(即端口扫描)](#1. 查看网络连接情况 netstat(即端口扫描))

[2. 获取 socket 统计信息------ ss](#2. 获取 socket 统计信息—— ss)

[2.1 ss命令概述](#2.1 ss命令概述)

[2.2 ss选项](#2.2 ss选项)

[2.3 netstat 命令与ss 命令的区别](#2.3 netstat 命令与ss 命令的区别)

[3. 查找进程打开的文件及相关联的内容------lsof](#3. 查找进程打开的文件及相关联的内容——lsof)

三、测试网络连接

[1. ping命令 - 测试网络连接通性](#1. ping命令 - 测试网络连接通性)

[2. traceroute - 跟踪数据包的路由途径](#2. traceroute - 跟踪数据包的路由途径)

[3. nslookup - 测试DNS域名解析](#3. nslookup - 测试DNS域名解析)

四、设置网络参数

1.设置网络参数的方式

[1.1 临时配置 - 使用命令调整网络参数](#1.1 临时配置 - 使用命令调整网络参数)

[1.2 固定设置 - 通过配置文件修改网络参数](#1.2 固定设置 - 通过配置文件修改网络参数)

[2. ifconfig 命令 - 设置网络接口参数](#2. ifconfig 命令 - 设置网络接口参数)

[3. route 命令 - 设置路由记录](#3. route 命令 - 设置路由记录)

4.永久添加路由

5.配置网络接口

6.配置DNS域名解析服务器

7.保存域名\主机名与IP地址的映射记录


一、查看网络配置

1. 查看网络接口信息 ifconfig

1.1 查看所以活动的网络接口信息

● 执行 ifconfig 命令

1.2 查看指定网络接口信息

ifconfig "网络接口"

示例:

[root@localhost ~]# ifconfig ens33

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #该口已启用,支持广播、正在运行 支持组播 最大传输单元1500

inet 192.168.100.88 netmask 255.255.255.0 broadcast 192.168.100.255

inet6 fe80::79ca:73de:de6c:1d62 prefixlen 64 scopeid 0x20<link> #IPV6地址 作用域link表示仅该接口有效

ether 00:0c:29:51:09:ff txqueuelen 1000(Ethernet)

RX packets 21785 bytes 21444139 (20.4 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 12411 bytes 859906 (839.7 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ifconfig     #查看所有活动的网络接口信息
 
ifconfig "网络接口"     #查看指定的网络接口信息(无论网卡是否启用)
 
ifconfig -a     #显示所有网络接口信息(包括未启用的网卡)
 
ifconfig "网络接口" "ip地址/掩码长度"     #设置虚拟网卡
例:
ifconfig ens33:0 192.168.10.11/24
ifconfig ens33:0 down     #临时禁用虚拟网卡
ifconfig ens33:0 up     #开启虚拟网卡
 
ifdown "网络接口"     #禁用网卡
ifup "网络接口"     #启动网卡

2. 查看主机名称hostname

2.1 hostname 命令

● 查看或临时设置当前主机名

hostname [主机名]

2.2 永久设置主机名

hostnamectl set-hostname [主机名]

vi /etc/hostname #设置完后需重启系统才生效

#只有第一行有效

3. 查看路由表条目 route

3.1 route 命令

route [-n] #查看或设置主机中路由表信息

示例:

[root@005_yjw ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 192.168.100.2 0.0.0.0 UG 100 0 0 ens33

192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

二、查看网络连接情况

1. 查看网络连接情况 netstat(即端口扫描)

netstat [-natp]

|----------|------------------------------------|
| 常用选项 | 解释 |
| -a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口 |
| -n | 以数字的形式显示相关的主机地址、端口等信息 |
| -r | 显示路由表信息 |
| -l | 显示处于监听(Listening)状态的网络连接及端口信息 |
| -t | 查看TCP协议相关的信息 |
| -u | 显示UDP协议相关的信息 |
| -p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |

示例:

netstat -natp #只看TCP协议的

netstat -antp | grep 端口号

netstat -anultp #除了路由表信息,其他全查询

2. 获取 socket 统计信息------ ss

2.1 ss命令概述

ss命令:查看网络连接情况,主要用于获取socket统计信息,它可以显示和netstat命令类似的输出内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快更高效。

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat/proc/net/tcp,执行速度都会很慢。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag

tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。

ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

2.2 ss选项

|----------|-----------------------------------|
| 常用选项 | 作用 |
| -t | tcp协议相关 |
| -u | udp协议相关 |
| -w | 裸套接字相关 |
| -x | unix sock相关 |
| -l | listen状态的连接 |
| -a | 所有 |
| -n | 数字格式 |
| -p | 相关的程序及PID |
| -e | 扩展的信息 |
| -m | 内存用量 |
| -o | 计时器信息 |
| -r | ------resolv 把IP解释为域名,把端口号解释为协议名称 |

示例:

ss -nltp | grep 22 #查看tcp的所有包含22的端口

比较:

使用time命令来比较netstat和ss

netstat:

[root@localhost ~]# time netstat -atn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 192.168.100.88:22 192.168.100.1:60315 ESTABLISHED
tcp 0 48 192.168.100.88:22 192.168.100.1:60278 ESTABLISHED
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN

real 0m0.003s
user 0m0.001s
sys 0m0.002s

ss:

[root@localhost ~]# time ss -atn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
ESTAB 0 0 192.168.100.88:22 192.168.100.1:60315
ESTAB 0 0 192.168.100.88:22 192.168.100.1:60278
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*

real 0m0.023s
user 0m0.002s
sys 0m0.004s

"LISTEN"是指在网络通信中等待连接的TCP端口的状态之一。当一个主机上的应用程序在指定的端口上开始监听连接请求时,它进入"LISTEN"状态,表示正在等待其他主机建立连接。

"ESTABLISHED"是指在网络通信中建立的TCP连接的状态之一。它表示当前的TCP连接已成功建立并且正在进行数据传输。

已连接(已建立三次握手)TIME_OUT

2.3 netstat 命令与ss 命令的区别

  1. ss 命令可以查看网络连接信息
  2. ss 命令主要向socket获取统计信息
  3. ss 命令可以查看内存
  4. 2条命令均可查看pid和程序\进程名

3. 查找进程打开的文件及相关联的内容------lsof

lsof(List Open Files)是一个用于列出系统中打开文件的命令行工具。它可以显示当前系统中打开的文件、目录、套接字、管道等资源,以及与它们相关联的进程信息。

lsof "选项"

lsof     #列出所有打开的文件和网络连接
lsof -p "pid"     #列出指定进程ID(PID)打开的文件和网络连接
lsof -u "username"     #列出指定用户打开的文件和网络连接
lsof -i:"端口号"     #列出指定端口被哪些进程占用
lsof -i -sTCP:LISTEM     #以监听模式查看网络连接
lsof -c "commond"     #列出指定命令打开的文件
 
lsof -i -P -a -p "PID"
# -i:表示只显示网络连接信息
# -P:强制显示端口号
# -a:表示进行与查询条件的逻辑与操作
# -p:表示指定要查询的程序ID

三、测试网络连接

1. ping命令 - 测试网络连接通性

ping "选项"

|----------|----------------|
| 常用选项 | 解释 |
| -c | 发送包的个数 |
| -i | 发送包的间隔时间 |
| -W | 超时时间 |
| -w | 多少秒后停止ping命令操作 |

2. traceroute - 跟踪数据包的路由途径

traceroute "目标主机地址"

3. nslookup - 测试DNS域名解析

nslookup "地址"
[root@localhost ~]# nslookup www.csdn.net

Server: 114.114.114.114

Address: 114.114.114.114#53

Non-authoritative answer:

www.csdn.net canonical name = 55cb88f4.csdn.net.cname.yunduns.com.

Name: 55cb88f4.csdn.net.cname.yunduns.com

Address: 218.95.237.78

四、设置网络参数

1.设置网络参数的方式

1.1 临时配置 - 使用命令调整网络参数

  • 简单、快速,可直接修改运行中的网络参数
  • 一般只适合在调试网络的过程中使用
  • 系统重启以后,所做的修改将会失效

1.2 固定设置 - 通过配置文件修改网络参数

  • 修改各项网络参数的配置文件
  • 适合对服务器设置固定参数时使用
  • 需要重载网络服务器或者重启以后才会生效

2. ifconfig 命令 - 设置网络接口参数

  • 设置网络接口的IP地址、子网掩码:

ifconfig "网络接口" "ip地址" netmask "子网掩码"

ifconfig "网络接口" "IP地址/掩码长度"

  • 禁用或重新激活网卡:

ifconfig "网络接口" up

ifconfig "网络接口" down

  • 设置虚拟网络接口

ifconfig "网络接口:序号" "IP地址"

3. route 命令 - 设置路由记录

  • 添加到指定网段的路有记录:

route add -net "网段地址" gw "IP地址"

  • 删除到指定网段的路有记录:

route del -net "网段地址"

  • 向路由表中添加默认网关记录:

route add default gw "IP地址"

  • 删除路由表中默认的网关记录:

route del default gw "IP地址"

4.永久添加路由

静态路由配置文件:/etc/sysconfig/static-routes

vi /etc/sysconfig/static-routes     #编辑静态路由配置文件
any net any gw 192.168.233.21     #将所有网络流量都路由到192.168.233.21网关
any net 192.168.3.0/24 gw 192.168.233.21     
#将目的网络为192.168.3.0/24的所有流量路由到192.168.233.21网关
 
anynet 10.0.0.0 netmask 255.0.0.0 gw 192.168.233.21     
#将目的网络为10.0.0.0的所有流量,使用掩码255.0.0.0,路由到192.168.233.21网关
any host 192.168.100.100 gw 192.168.233.21 
#将目的IP为192.168.100.100的所有流量路由到192.168.233.21网关
 
#修改后需要重启网络服务,否则修改不生效
systemctl restart network     #重启网络服务

5.配置网络接口

网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33

vi /etc/sysconfig/network-scripts/ifcfg-ens33 #编辑网卡配置文件
TYPE=Ethernet     #设置网卡类型,"Ethernet"表示以太网
DEVICE=ens33     #设置网卡名称
ONBOOT=yes     #设置网卡是否在Linux操作系统启动时激活
BOOTPROTO=static     #设置网卡的配置方式,"static"表示使用静态IP地址;"dhcp"表示动态获取IP地址
IPADDR=192.168.100.10     #设置网卡的IP地址
NETMASK=255.255.255.0     #设置网卡的子网掩码
GATEWAY=192.168.100.2     #设置网卡的默认网关地址
DNS1=114.114.114.114     #设置DNS服务器的IP(配置于网卡上)
 
systemctl restart network     #配置完成后需重启网卡

6.配置DNS域名解析服务器

域名解析配置文件:/etc/resolv.conf

vi /etc/resolv.conf
nameserver 144.144.144.144     #配置DNS于系统中
 
systemctl restart network     #配置完成后需重启网卡服务

7.保存域名\主机名与IP地址的映射记录

文件位于:/etc/hosts

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
218.95.237.78 www.csdn.net
192.168.10.20 server2
相关推荐
檀越剑指大厂9 分钟前
【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
linux·运维·服务器
车载诊断技术1 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
KevinRay_1 小时前
Python超能力:高级技巧让你的代码飞起来
网络·人工智能·python·lambda表达式·列表推导式·python高级技巧
2301_819287122 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la2 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息2 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20152 小时前
STUN服务器实现NAT穿透
运维·服务器
Black_mario3 小时前
链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景
网络·人工智能·web3
PieroPc3 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
Aileen_0v03 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper