4.Linux常用命令---网络/端口管理

4.1 netstat --查询端口占用,占用程序及处理方法

参数:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。


//查看进程占用的端口
netstat -ap | grep 20486

//查出每个IP地址连接数
netstat -n | awk ‘/^tcp/ {print $5}| awk -F: ‘{print $1}| sort | uniq -c | sort -rn

//统计已连接上的,状态为“established'
netstat -na | grep ESTABLISHED | wc -l

4.2 iostat–查询磁盘IO

iostat用于输出CPU和磁盘I/O相关的统计信息.

-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以K为单位显示
-m 以M为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS使用情况
-p 可以报告出每块磁盘的每个分区的使用情况
-t 显示终端和CPU的信息
-x 显示详细信息

image.png

选项说明
%userCPU在用户态执行进程的时间百分比。
%niceCPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比
%systemCPU处在内核态执行进程的时间百分比
%iowaitCPU用于等待I/O操作占用CPU总时间的百分比
%steal管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
%idleCPU空闲时间百分比
  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
  2. 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量
  3. 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU
选项说明
rrqm/s每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s每秒对该设备的写请求被合并次数
r/s每秒完成的读次数
w/s每秒完成的写次数
rkB/s每秒读数据量(kB为单位)
wkB/s每秒写数据量(kB为单位)
avgrq-sz平均每次IO操作的数据量(扇区数为单位)
avgqu-sz平均等待处理的IO请求队列长度
await平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm平均每次IO请求的处理时间(毫秒为单位)
%util采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
选项说明
Device设备名称
tps每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
Blk_read/sIndicate the amount of data read from the device expressed in a number of blocks per second. Blocks are equivalent to sectors with kernels 2.4 and later and therefore have a size of 512 bytes. With older kernels, a block is of indeterminate size.
Blk_wrtn/sIndicate the amount of data written to the device expressed in a number of blocks per second.
Blk_read取样时间间隔内读扇区总数量
Blk_wrtn取样时间间隔内写扇区总数量

4.3 sar --查询网络IO

sar –n DEV 1 4
-n DEV,报告网络设备统计信息,参数还可以是EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 and UDP6
1 4,每一秒钟取一次值,取四次
image.png

输出信息说明:

  • IFACE:LAN接口
  • rxpck/s:每秒钟接收的数据包
  • txpck/s:每秒钟发送的数据包
  • rxkByt/s:每秒钟接收的字节数
  • txkByt/s:每秒钟发送的字节数
  • rxcmp/s:每秒钟接收的压缩数据包
  • txcmp/s:每秒钟发送的压缩数据包
  • rxmcst/s:每秒钟接收的多播数据包

4.4 lsof–查看进程占用情况的命令

//显示符合条件的进程情况
[root@host1]# lsof -i:22

//显示开启文件messages的进程
[root@host1]# lsof /var/log/messages

//显示ssh进程现在打开的文件
[root@host1]# lsof -c ssh

//列出进程号为2081的进程所打开的文件
[root@host1]# lsof -p 2081

//列出归属gid的进程情况
[root@host1]# lsof -g 27

//显示目录下被进程开启的文件
[root@host1]# lsof +d /usr/local

//显示目录下被进程开启的文件,搜索目录下的目录,时间较长
[root@host1]# lsof +D /usr/local

4.5 ethtool–用于查询及设置网卡参数的命令

参数-a
查看网卡中接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-A
修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-c
display the Coalesce(聚合、联合) information of the specified ethernet card.聚合网口信息,使看起来更有规律。
-C
Change the Coalesce setting of the specified ethernet card.修改网卡聚合信息。
-g
Display the rx/tx ring parameter information of the specified ethernet card. 显示网卡的接收/发送环形参数。
-G
Change the rx/tx ring setting of the specified ethernet card. 修改网卡的接收/发送环形参数。
-i
显示网卡驱动的信息,如驱动的名称、版本等。
-d
显示register dump信息, 部分网卡驱动不支持该选项。
-e
显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E
修改网卡EEPROM byte.
-k
显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K
修改网卡Offload参数的状态
-p
用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r
如果auto-negotiation模块的状态为on,则restarts auto-negotiation.
-s
修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。加上-s选项修改的内容才会生效
-S
显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t
让网卡执行自我检测,有两种模式:offline or online.

ehtool -p eth0 #使得eth0网口闪烁,用于确定网口
ethool -i eth0 #查看eth0网口的驱动信息

4.6 iptables–数据包的控制及转发

iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。

1.iptables中的“四表五链”及“堵通策略”

【A.**“四表”**是指,iptables的功能——filter, nat, mangle, raw.】
filter:控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),具有以下三种内建链:

  • input 链 - 处理来之外部的数据
  • output 链 - 处理向外发送的数据
  • forward 链- 将数据转发到本机的其它网卡上

nat:控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting
NAT有三种内建的链:

  • prerouting - 处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
  • postrouting - 处理即将离开本机数据包,它会转换数据包中的源目标IP地址(source ip address),通常SNAT(source NAT)
  • output    - 处理本机产生的数据包

mangle:修改数据包中的原数据,它能改变TCP头中的Qos位。可以控制的链路有prerouting, input, forward, output, postrouting
raw:控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output

【B.**“五链”**是指内核中控制网络的NetFilter定义的五个规则链,分别为】
PREROUTING 路由前
INPUT 数据包流入口
FORWARD 转发网卡
OUTPUT 数据包出口
POSTROUTING 路由后

【C**.堵通策略**是指对数据包所做的操作,一般有两种操作——“通(ACCEPT)”、“堵(DROP)”,还有一种操作很常见REJECT.】
REJECT和DROP之间的区别,Ming写了一封信,向Rose示爱。Rose如果不愿意接受,她可以不回应Ming,这个时候Ming不确定Rose是否接到了信;Rose也可以同样写一封信,在信中明确地拒绝Ming。前一种操作就如同执行了DROP操作,而后一种操作就如同REJECT操作。

2.iptables命令的语法规则
iptables -t 表名<-A/I/D/R>规则链名[规则号] <-i/o网卡名> -p协议名<-s源IP/源子网> --sport源端口<-d目标IP/目标子网> --dport目标端口-j动作
参数:
链管理
-N, --new-chain chain:新建一个自定义的规则链;
-X, --delete-chain [chain]:删除用户自定义的引用计数为0的空链;
-F, --flush [chain]:清空指定的规则链上的规则;
-E, --rename-chain old-chain new-chain:重命名链;
-Z, --zero [chain [rulenum]]:置零计数器;
-P, --policy chain target, 设置链路的默认策略
规则管理
-A, --append chain rule-specification:追加新规则于指定链的尾部;
-I, --insert chain [rulenum] rule-specification:插入新规则于指定链的指定位置,默认为首部;
-R, --replace chain rulenum rule-specification:替换指定的规则为新的规则;
-D, --delete chain rulenum:根据规则编号删除规则;
查看规则
-L, --list [chain]:列出规则;
-v, --verbose:详细信息;
-vv, -vvv  更加详细的信息
-n, --numeric:数字格式显示主机地址和端口号;
-x, --exact:显示计数器的精确值;
--line-numbers:列出规则时,显示其在链上的相应的编号;
-S, --list-rules [chain]:显示指定链的所有规则;
//查看某表中的规则
[root@host1]# iptables  --line-number  -t  表名  -nL

//添加新的入站规则
[root@host1]# iptables  -A  INPUT  -s  ip地址  -p  协议  --dport  端口  -j  处理方式

//替换规则
[root@host1]# iptables  -R  INPUT  编号  -s  ip地址  -p  协议  --dport  端口  -j  处理方式

//删除规则
[root@host1]# iptables  -D  INPUT  编号

//清空规则
[root@host1]# iptables  -F

//修改默认规则
[root@host1]# iptables  -t  表名  -P  INPUT  处理方式

//允许路由转发(由内向外)
[root@host1]# iptables  -t  nat  -A  POSTROUTING  -s  内网ip/网段  -j  SNAT  --to-source  外网ip

//允许路由转发(由外向内)
[root@host1]# iptables  -t  nat  -A  PREROUTING  -d  外网ip  -p  协议  --dport  端口  -j  DNAT  --to-destination  内网ip/网段

//实现地址转发(反向代理,基于内网ip)
[root@host1]# iptables  -t  nat  -A  PREROUTING  -d  外网ip  -p  协议  --dport  端口  -j  DNAT  --to-destination  内网ip/网段
iptables  -t  nat  -I  POSTROUTING  -p  协议  --dport  端口  -j  MASQUERADE

//限制每秒钟接受到的数据包的个数
[root@host1]# iptables  -I  INPUT  -m  limit  --limit  个数/sec  -j  ACCEPT

//拒绝新的连接请求
[root@host1]# iptables  -A  INPUT  -m  state  --state  NEW  -j  DROP

4.7 telnet–测试端口

[root@wms unimas_back]# telnet 192.168.10.30 21
Trying 192.168.10.30...
Connected to 192.168.10.30.
Escape character is '^]'.
220 (vsFTPd 3.0.2)


telnet> quit

4.8 nc命令–设置路由器,扫描端口

参数:
-g <网关> 设置路由器跃程通信网关,最多可设置8个。
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p <通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s <来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w <超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

#TCP端口扫描
# nc -v -z -w2 192.168.0.3 1-100
192.168.0.3: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.0.3] 80 (http) open
(UNKNOWN) [192.168.0.3] 23 (telnet) open
(UNKNOWN) [192.168.0.3] 22 (ssh) open
#扫描192.168.0.3 的端口 范围是 1-100

#扫描UDP端口
# nc -u -z -w2 192.168.0.1 1-1000 //扫描192.168.0.3 的端口 范围是 1-1000

#扫描指定端口
# nc -nvv 192.168.0.1 80 //扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
y  //用户输入

4.9 ifconfig–显示或设置网络设备

参数说明:

  • add<地址> 设置网络设备IPv6的IP地址。
  • del<地址> 删除网络设备IPv6的IP地址。
  • down 关闭指定的网络设备。
  • <hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
  • io_addr<I/O地址> 设置网络设备的I/O地址。
  • irq 设置网络设备的IRQ。
  • media<网络媒介类型> 设置网络设备的媒介类型。
  • mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
  • metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
  • mtu<字节> 设置网络设备的MTU。
  • netmask<子网掩码> 设置网络设备的子网掩码。
  • tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
  • up 启动指定的网络设备。
  • -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
  • -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
  • -promisc 关闭或启动指定网络设备的promiscuous模式。
  • [IP地址] 指定网络设备的IP地址。
  • [网络设备] 指定网络设备的名称。
//显示网卡信息
[root@host1]# ifconfig        
eth0   Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C
     inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
     inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:172220 errors:0 dropped:0 overruns:0 frame:0
     TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000
     RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
     Interrupt:185 Base address:0x2024

lo    Link encap:Local Loopback
     inet addr:127.0.0.1 Mask:255.0.0.0
     inet6 addr: ::1/128 Scope:Host
     UP LOOPBACK RUNNING MTU:16436 Metric:1
     RX packets:2022 errors:0 dropped:0 overruns:0 frame:0
     TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0
     RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)

//启动关闭指定网卡
[root@host1]# ifconfig eth0 down
[root@host1]# ifconfig eth0 up

//为网卡配置和删除IPv6地址
[root@host1]# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡配置IPv6地址
[root@host1]# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

//用ifconfig修改MAC地址
[root@host1]# ifconfig eth0 down //关闭网卡
[root@host1]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
[root@host1]# ifconfig eth0 up //启动网卡
[root@host1]# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址
[root@host1]# ifconfig eth1 up //启动网卡

//配置IP地址
[root@host1]# ifconfig eth0 192.168.1.56  //给eth0网卡配置IP地址
[root@host1]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0  //给eth0网卡配置IP地址,并加上子掩码
[root@host1]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255  //给eth0网卡配置IP地址,加上子掩码,加上个广播地址

//启用和关闭ARP协议
[root@host1]# ifconfig eth0 arp  //开启
[root@host1]# ifconfig eth0 -arp  //关闭

//设置最大传输单元
[root@host1]# ifconfig eth0 mtu 1500 //设置能通过的最大数据包大小为 1500 bytes

4.10 setserial–设置或显示串口的相关信息

setserial [-abgGqvVz][设备][串口参数]
参数说明:
-a 显示详细信息
-b 显示摘要信息
-g 显示串口的相关信息
-G 以指令列表的格式来显示信息
-q 执行时显示较少的信息
-v 执行时显示较多的信息
-z 设置前,先将所有的标记归零

[root@host1]# setserial -g /dev/ttyS2
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4

4.11 traceroute–显示数据包到主机间的路径

traceroute命令用于显示数据包到主机间的路径。让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
参数说明:
-d 使用Socket层级的排错功能。
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
-F 设置物理断位。
-g<网关> 设置来源路由网关,最多可设置8个。
-i<网络界面> 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p<通信端口> 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-t<服务类型> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w<超时秒数> 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

[root@host1]# traceroute www.google.com
traceroute: Warning: www.google.com has multiple addresses; using 66.249.89.99
traceroute to www.l.google.com (66.249.89.99), 30 hops max, 38 byte packets
1 192.168.0.1 (192.168.0.1) 0.653 ms 0.846 ms 0.200 ms
2 118.250.4.1 (118.250.4.1) 36.610 ms 58.438 ms 55.146 ms
3 222.247.28.177 (222.247.28.177) 54.809 ms 39.879 ms 19.186 ms
4 61.187.255.253 (61.187.255.253) 18.033 ms 49.699 ms 72.147 ms
5 61.137.2.177 (61.137.2.177) 32.912 ms 72.947 ms 41.809 ms
6 202.97.46.5 (202.97.46.5) 60.436 ms 25.527 ms 40.023 ms
7 202.97.35.69 (202.97.35.69) 40.049 ms 66.091 ms 44.358 ms
8 202.97.35.110 (202.97.35.110) 42.140 ms 70.913 ms 41.144 ms
9 202.97.35.14 (202.97.35.14) 116.929 ms 57.081 ms 60.336 ms
10 202.97.60.34 (202.97.60.34) 54.871 ms 69.302 ms 64.353 ms
11 * * *
12 209.85.255.80 (209.85.255.80) 95.954 ms 79.844 ms 76.052 ms
   MPLS Label=385825 CoS=5 TTL=1 S=0
13 209.85.249.195 (209.85.249.195) 118.687 ms 120.905 ms 113.936 ms
14 72.14.236.126 (72.14.236.126) 115.843 ms 137.109 ms 186.491 ms
15 nrt04s01-in-f99.1e100.net (66.249.89.99) 168.024 ms 140.551 ms 161.127 ms

4.12 tcpdump–用于倾倒网络传输数据

参数说明:
-a 尝试将网络和广播地址转换成名称
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出
-e 在每列倾倒资料上显示连接层级的文件头
-f 用数字显示网际网络地址
-F<表达文件> 指定内含表达方式的文件
-A 以ASCII码方式显示每一个数据包,方便阅读
-i<网络界面> 使用指定的网络截面送出数据包(默认 eth0)
-l 使用标准输出列的缓冲区
-n 不把主机的网络地址转换成名字
-N 不列出域名
-O 不将数据包编码最佳化
-p 不让网络界面进入混杂模式
-q 快速输出,仅列出少数的传输协议信息
-r<数据包文件> 从指定的文件读取数据包数据
-s<数据包大小> 设置每个数据包的大小,如果为 0 那么抓完整的包
-S 用绝对而非相对数值列出TCP关联数
-t 不显示时间戳记
-tt 在每列倾倒资料上显示未经格式化的时间戳记
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型
-v 详细显示指令执行过程
-vv 更详细显示指令执行过程
-x 用十六进制字码列出数据包资料
-w<数据包文件> 把数据包数据写入指定的文件

//显示指定数量包
[root@host1]# tcpdump -c 20
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:36:28.949538 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 148875984:148876020(36) ack 4184373187 win 2100
23:36:28.994325 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 36 win 64020
23:36:28.994368 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 36:72(36) ack 1 win 2100
23:36:28.950779 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 18242+ PTR? 1.0.168.192.in-addr.arpa. (42)

//抓包
[root@host1]# tcpdump -A host 192.168.4.5 and tcp port 80
[root@host1]# tcpdump -i bond0 Anvs 0 -w /tmp/test.cap host 1.1.1.1 and port 1234

4.13 nmap–主机发现和端口扫描工具

nmap [ 扫描类型 ] [ 选项 ] [ 扫描目标 ]
-sS	TCP SYN 扫描
-sT	TCP 连接扫描
-sU	UDP 扫描
-sP	ICMP 扫描
-A	目标系统全面分析
-n	不执行 DNS 解析

//默认发送一个ARP的PING数据包,探测目标主机所开放的所有端口
[root@host1 ~]# nmap 192.168.1.100

//nmap简单扫描,并对结果返回详细的描述输出
[root@host1 ~]# nmap -vv 192.168.1.100

//扫描目标主机的20-120号端口
[root@host1 ~]# nmap -p20-120 192.168.1.100

//指定端口扫描
[root@host1 ~]# nmap -p20,120 192.168.1.100

//ping 扫描
[root@host1 ~]# nmap -sP 192.168.1.100

//路由跟踪
[root@host1 ~]# nmap –traceroute 192.168.1.100

//扫描一个网段下的ip
[root@host1 ~]# nmap -sP 192.168.1.1/24

//操作系统类型的探测
[root@host1 ~]# nmap -O 192.168.1.100

//万能开关
[root@host1 ~]# nmap -A 192.168.1.100

//混合式扫描
[root@host1 ~]# nmap -vv -p1-100 -O 192.168.1.100
  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值