iptables 使用详解

使用 Iptables 命令详细图文教程 使用 Iptables 详细图文教程 阅读详情

一、iptables 使用详解

#基本语法
iptables [选项] [链名称] [规则匹配条件] [动作]

[选项]:指定操作,如新增、删除、插入规则等。
[链名称]:指定 iptables 的链,如 INPUT、OUTPUT、FORWARD、PREROUTING 等。
[规则匹配条件]:数据包过滤的条件,如源 IP 地址、目标端口等。
[动作]:匹配到的包执行的操作,如 ACCEPT、DROP、REJECT 等

#链
    INPUT:用于控制进入本地系统的数据包。
    OUTPUT:用于控制本地系统发送的数据包。
    FORWARD:用于控制通过本地系统的数据包(本机不是目的地时)。
    PREROUTING:用于在包进入路由之前修改数据包,用于 NAT。
    POSTROUTING:用于在包离开路由后修改数据包,用于 NAT。

#选项
    #链管理选项
    -L:列出指定链中的所有规则
    -N:创建新链
    -X:删除自定义链
    -F:清空指定链中的所有规则。如果不指定链,则清空所有链的规则
    -Z:将链的计数器清零
    #规则管理选项
    -A:在指定链的末尾追加一条规则
    -I:在指定链的指定位置插入一条规则(默认在首位)
    -D:删除指定链中的规则。可以通过规则编号或直接匹配规则来删除
    -R:替换指定链中的某条规则
    -P:设置默认策略(即当数据包不匹配任何规则时的默认动作)
#匹配条件选项
	-s,--source:指定源 IP 地址
	-d,--destination:指定目标 IP 地址
	-p,--protocol:指定协议类型(如 tcp、udp、icmp)
	--sport:指定外部端口号(仅适用于 tcp 或 udp 协议)
	--dport:指定本地端口号
	-i,--in-interface:指定进入的网络接口
	-o,--out-interface:指定离开的网络接口
	-m state --state:使用连接跟踪模块,匹配数据包的连接状态
	-m limit:限制数据包匹配速率
#动作:-j,--jump:指定匹配条件满足时跳转到的动作或目标链
     ACCEPT:允许数据包通过
     DROP:丢弃数据包,不作任何响应
     REJECT:拒绝数据包,并返回错误信息
     LOG:记录日志,但不阻止数据包的继续处理

msm8953_64:/ # iptables --help
iptables v1.6.1

Usage: iptables -[ACD] chain rule-specification [options]
       iptables -I chain [rulenum] rule-specification [options]
       iptables -R chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LS] [chain [rulenum]] [options]
       iptables -[FZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

Commands:
Either long or short options are allowed.
  --append  -A chain            Append to chain
  --check   -C chain            Check for the existence of a rule
  --delete  -D chain            Delete matching rule from chain
  --delete  -D chain rulenum
                                Delete rule rulenum (1 = first) from chain
  --insert  -I chain [rulenum]
                                Insert in chain as rulenum (default 1=first)
  --replace -R chain rulenum
                                Replace rule rulenum (1 = first) in chain
  --list    -L [chain [rulenum]]
                                List the rules in a chain or all chains
  --list-rules -S [chain [rulenum]]
                                Print the rules in a chain or all chains
  --flush   -F [chain]          Delete all rules in  chain or all chains
  --zero    -Z [chain [rulenum]]
                                Zero counters in chain or all chains
  --new     -N chain            Create a new user-defined chain
  --delete-chain
            -X [chain]          Delete a user-defined chain
  --policy  -P chain target
                                Change policy on chain to target
  --rename-chain
            -E old-chain new-chain
                                Change chain name, (moving any references)
Options:
    --ipv4      -4              Nothing (line is ignored by ip6tables-restore)
    --ipv6      -6              Error (line is ignored by iptables-restore)
[!] --protocol  -p proto        protocol: by number or name, eg. `tcp'
[!] --source    -s address[/mask][...]
                                source specification
[!] --destination -d address[/mask][...]
                                destination specification
[!] --in-interface -i input name[+]
                                network interface name ([+] for wildcard)
 --jump -j target
                                target for rule (may load target extension)
  --goto      -g chain
                              jump to chain with no return
  --match       -m match
                                extended match (may load extension)
  --numeric     -n              numeric output of addresses and ports
[!] --out-interface -o output name[+]
                                network interface name ([+] for wildcard)
  --table       -t table        table to manipulate (default: `filter')
  --verbose     -v              verbose mode
  --wait        -w [seconds]    maximum wait to acquire xtables lock before give up
  --wait-interval -W [usecs]    wait time to try to acquire xtables lock
                                default is 1 second
  --line-numbers                print line numbers when listing
  --exact       -x              expand numbers (display exact values)
[!] --fragment  -f              match second or further fragments only
  --modprobe=<command>          try to insert modules using this command
  --set-counters PKTS BYTES     set the counter during insert/append
[!] --version   -V              print package version.

二、iptables 的“四表五链”及“堵通策略”

  1. “四表” 指的是:filter、nat、mangle、raw

    filter:控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output

  2. 禁止所有(验证OK)

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
  1. 删除规则(验证OK)
iptables --flush
iptables -F
  1. 禁止&使能 ping操作(验证OK)
#禁止
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
#使能
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
  1. 保存参数(验证OK)
iptables-save >/sdcard/Music/iptables-default
  1. 恢复参数(验证失败why?)
iptables-restore < /sdcard/Music/iptables-default
  1. 禁止TCP协议传输
#禁止:(验证OK)
iptables -A INPUT -p tcp -j REJECT
iptables -A FORWARD -p tcp -j REJECT
iptables -A OUTPUT -p tcp -j REJECT
#使能:(未能打开why?)
iptables -A INPUT -p tcp -j ACCEPT
iptables -A FORWARD -p tcp -j ACCEPT
iptables -A OUTPUT -p tcp -j ACCEPT

8.关闭WireGuard

#禁止:(验证失败,无此协议)
iptables -A INPUT -p wireguard -j REJECT
iptables -A FORWARD -p wireguard  -j REJECT
iptables -A OUTPUT -p wireguard  -j REJECT

只支持以下协议

const struct xtables_pprot xtables_chain_protos[] = {
        {"tcp",       IPPROTO_TCP},
        {"sctp",      IPPROTO_SCTP},
        {"udp",       IPPROTO_UDP},
        {"udplite",   IPPROTO_UDPLITE},
        {"icmp",      IPPROTO_ICMP},
        {"icmpv6",    IPPROTO_ICMPV6},
        {"ipv6-icmp", IPPROTO_ICMPV6},
        {"esp",       IPPROTO_ESP},
        {"ah",        IPPROTO_AH},
        {"ipv6-mh",   IPPROTO_MH},
        {"mh",        IPPROTO_MH},
        {"all",       0},
        {NULL},
};

9.停掉WireGuard端口(无法验证)

#禁用本地59381端口
iptables -I INPUT -p tcp,udp --dport 59831 -j DROP
iptables -I OUTPUT -p tcp,udp --dport 59831 -j DROP
iptables -I FORWARD -p tcp,udp --dport 59831 -j DROP
#禁止外部51820端口
iptables -I INPUT -p tcp,udp --sport 51820 -j DROP
iptables -I OUTPUT -p tcp,udp --sport 51820 -j DROP
iptables -I FORWARD -p tcp,udp --sport 51820 -j DROP
  1. 白名单模式:
1)先清除现有规则
   iptables -F
2) 默认禁用所有输入及输出
   iptables -P INPUT DROP
   iptables -P FORWARD DROP
   iptables -P OUTPUT DROP
3)允许指定的IP及端口访问
   #特定IP及端口的连接
   iptables -A INPUT -p tcp --dport 22 -s 123.123.123.123 -j ACCEPT
   
   测试Failed:
   iptables -A INPUT -p tcp --dport 996  -s 218.17.50.142 -j ACCEPT
   iptables -A INPUT -p udp --dport 996  -s 218.17.50.142 -j ACCEPT
   
   iptables -A OUTPUT -p tcp --dport 996 -s 218.17.50.142 -j ACCEPT
   iptables -A OUTPUT -p udp --dport 996 -s 218.17.50.142 -j ACCEPT
   
   iptables -A FORWARD -p tcp --dport 996 -s 218.17.50.142 -j ACCEPT
   iptables -A FORWARD -p udp --dport 996 -s 218.17.50.142 -j ACCEPT
   
   iptables -I INPUT -p tcp --sport 996  -s 218.17.50.142 -j ACCEPT
   iptables -I OUTPUT -p tcp --sport 996 -s 218.17.50.142 -j ACCEPT
   iptables -I FORWARD -p tcp --sport 996 -s 218.17.50.142 -j ACCEPT
   
   iptables -I INPUT -p udp --sport 996  -s 218.17.50.142 -j ACCEPT
   iptables -I OUTPUT -p udp --sport 996 -s 218.17.50.142 -j ACCEPT
   iptables -I FORWARD -p udp --sport 996 -s 218.17.50.142 -j ACCEPT
   
   #验证OK
   iptables  -A OUTPUT -d 218.17.50.142  -j ACCEPT
		
   #123.123.0/24 IP范围的连接
   iptables -A INPUT -p tcp -s 123.123.123.0/24 --dport 22 -j ACCEPT
4)允许指定的URL访问
   iptables -A FORWARD  -m string --string "www.baidu.com" --algo bm -j ACCEPT
   iptables -A FORWARD  -m string --string "time.windows.com" --algo bm -j ACCEPT
   
5)允许本地环回接口 (#验证OK)
   iptables -A INPUT -i lo -j ACCEPT
   iptables -A OUTPUT -o lo -j ACCEPT
6)允许已建立连接的数据包
   iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
   iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  1. 删除规则
查看规则:
iptables --list-rules
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
  1. 禁用IPV6
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
#或者
interfaceSetEnableIPv6
netd:InterfaceController::setEnableIPv6
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
  1. 使能UID
#uid 更加包名查找 data/system/packages.list CV200使用systemUid=1000
iptables -I fw_OUTPUT  -m owner --uid-owner  10161(uid) -j ACCEPT 

如下测试:

iptables -F
ip6tables -F
#投屏工具vysor:UID=10094
iptables -I OUTPUT  -m owner ! --uid-owner  10094 -j DROP 
ip6tables -I OUTPUT  -m owner ! --uid-owner  10094 -j DROP 

#汽水音乐UID:UID=10095 验证OK
iptables -I OUTPUT  -m owner --uid-owner  10095 -j DROP 
ip6tables -I OUTPUT  -m owner --uid-owner  10095 -j DROP 
#百度UID:UID=10097 验证OK
iptables -I OUTPUT  -m owner --uid-owner  10097 -j DROP 
ip6tables -I OUTPUT  -m owner --uid-owner  10097 -j DROP 
#今日头条:UID=10096 

#新浪:UID=10098

#除了今日头条外其他禁用(投屏设备无法使用没验证)
iptables -A OUTPUT  -m owner ! --uid-owner 10096 -j DROP
ip6tables -A OUTPUT  -m owner ! --uid-owner 10096 -j DROP
  1. 使能PID
iptables -A OUTPUT -m owner --pid-owner 78
测试如下:
queclink: PID=6627
iptables -A OUTPUT -m owner  ! --pid-owner 6627 -j DROP
  1. 禁止VPN
iptables -t vpn -P FORWARD DROP
iptables -t vpn -P INPUT DROP
iptables -t vpn -P OUTPUT DROP
iptables教程 如果一个数据包没有匹配到一个链中的任何一个规则,那么将对该数据包执行这个链的默认策略(default policy),默认策略可以是 ACCEPT 或 DROP。链中默认策略的存在使得我们在设计防火墙时可以有两种选择:设置默认策略 DROP 所有的数据包,然后添加规则接受(ACCEPT)来自可信 IP 地址的数据包,或访问我们的服务监听的端口的数据包,比如 bittorrent、FTP 服务器、Web 服务器、Samba 文件服务器等等。 阅读详情

相关推荐

iptables详解

我们知道,防火墙的作用就在于对经过的报文匹配”规则”,然后执行对应的”动作”,所以,当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了”链”,所以,我们把每一个”关卡”想象成如下图中的模样 ,这样来说,把他们称为”链”更为合适,每个经过这个”关卡”的报文,都要将这条”链”上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。这是后话,后面再聊,在实际使用时我们即可更加的明白。

运维老生常谈 1309

iptables详解(图文)

iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 iptables基础 规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、

Linux的成长历程 7万+

SV fork join_none & for循环结合使用

fork join_none与循环联用常见问题解决方案

ZhangShuHuai11的博客 880

iptables命令使用详解

iptables命令使用详解 iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。 环境 操作系统:CentOS7.3 ip地址:172.16.55.7 1.iptables中的“四表五链”及“堵通策略” A.“四表”是指,iptables的功能——filter, nat, mangle, raw. filter, 控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的

weixin_46082443的博客 1476

如何用Python分析20年投资者情绪数据(附ISI和CICSI完整数据集)

本文提供了一份利用Python分析2003-2023年投资者情绪数据的实战指南。文章详细介绍了如何获取并清洗ISI和CICSI数据集,运用Pandas、Matplotlib等工具进行数据探索、可视化与深度分析,包括趋势分解、成分关联及情绪状态划分,旨在帮助读者掌握从数据到洞察的完整流程,为量化金融研究提供方法论支持。

gpu4optimizer的博客 469

NFS共享速度慢?麒麟系统性能调优5个关键参数实测对比

本文针对银河麒麟服务器系统上NFS共享速度慢的问题,通过实测对比分析了五个关键调优参数。重点探讨了rsize/wsize传输块大小、TCP/UDP协议选择、sync/async模式权衡等,并结合麒麟系统特性提供了具体的优化建议与配置示例,旨在帮助用户有效提升国产化环境下的文件共享性能。

weixin_29254029的博客 335

iptables命令详解和举例(完整版)

1、防火墙概述 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。 目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其...

5万+

第9.3章 从CMake基础到自动驾驶实战:构建跨平台C/C++项目的全能指南

《CMake构建实战:项目开发卷》精要指南 本文系统梳理了许宏旭《CMake构建实战》核心内容,涵盖C++构建全流程: 基础构建:详解MSVC/GCC编译器使用、Makefile编写及静态/动态库构建方法 CMake核心:解析语法结构、变量控制、文件操作等关键命令,阐述项目全生命周期管理 实战应用:通过快速排序、手写数字识别项目演示现代CMake实践,特别针对自动驾驶领域给出多传感器融合、SLAM等场景的CMake配置方案 特色价值:本书填补了官方文档实例不足的空白,提供300+代码示例,是掌握工业级C++

行知SLAM 1343

iptables使用详解

转载自https://blog.youkuaiyun.com/reyleon/article/details/12976341 转载自https://www.cnblogs.com/metoy/p/4320813.html 一、iptables安装以及基本使用 1.使用iptables先关闭自带的防火墙:sudo systemctl stop firewall.servicesudo systemctl disable firewall.service 2.安装与设置开机启用iptables:sudo y..

qq_38125626的博客 1329

Android-Zygote进程的诞生—从init到Zygote启动

Android Zygote进程启动流程解析 Android系统的Zygote进程是所有应用进程的父进程,由init进程创建。启动流程分为: 内核阶段:加载init进程(PID=1) init进程阶段: 挂载基础文件系统(tmpfs、proc等) 设置SELinux安全策略 解析init.rc配置文件 Zygote启动:init进程通过app_process启动Zygote,预加载系统资源 SystemServer:Zygote fork出系统服务进程 关键点: init是用户空间第一个进程......

保持专注,保持热爱 637

华为OD机试真题新系统-空间占用计算(Py/Java/C/C++/Js/Go)

华为OD机试新系统机试真题 【空间占用计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【空间占用计算】。

qq_45776114的博客 3443

iptables详解及docker的iptables规则

iptables详解及docker的iptables规则iptables处理流程iptables命令ipset的使用ftp服务规则SNAT与DNATfirewall-cmd命令docker的iptables规则docker网络类型数据包处理流程 iptables 处理流程 iptables命令 ipset的使用 ftp服务规则 SNAT与DNAT firewall-cmd命令 docker的iptables规则 docker网络类型 数据包处理流程 ...

五侠的博客 2万+

OceanSim: 基于Isaac Sim GPU 加速水下机器人感知仿真框架

OceanSim 采用先进的基于物理的渲染技术,对水下视觉和声学传感器进行精确建模。与其他模拟引擎相比,OceanSim 的渲染速度要快得多。作为 NVIDIA Issac Sim 的扩展,OceanSim 采用了多功能设计。通过融入快速发展的 NVIDIA Omniverse 生态系统,我们的模拟器自然而然地在机器人学习和水下机器人技术之间架起了一座桥梁,从而促进了水下应用中体现型人工智能技术的开发和部署。OceanSim 将以开放源码的方式提供,使研究界能够以合作的模式作出贡献。

机器人控制与仿真应用 2051

iptables 详解

目录 防火墙简介 iptables 与 firewalld iptables 基础 3.1 链的概念 3.2 表的概念 3.3 链与表的关系 3.4 数据通过的流程 iptables 语法 iptables nat表的应用 1. 防火墙简介 防火墙是一种应用于网络上的过滤机制,从保护对象上可分为:主机防火墙、...

Choco Lee 的专栏 1万+

Unreal使用nDisplay制作裸眼3D(9宫格)

摘要: nDisplay是虚幻引擎的分布式实时渲染技术,可将内容同步输出到多个显示设备(如LED墙、投影仪等),构建沉浸式可视化系统。其核心功能包括:分布式渲染(支持多台设备协同处理高分辨率内容)、空间透视校正(通过追踪观众动态调整画面几何关系)以及虚拟拍摄应用。配置时需设置集群组件(Cluster、Host、Node、Viewport)定义渲染逻辑,空间组件(nDisplayScreen、ViewPoint)确定投影关系。文中以9宫格配置为例,详细演示了从工程创建到影片渲染合成的全流程,最终通过多视口合成

TxNet 608

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

防火墙之iptables详解

1、iptables 五链四表 1.1、iptables提供的链(chain) 1.2、iptables提供的表(table) 1.3、链和表的关系 1.4、规则匹配执行动作(target) 2、iptables 常用命令 2.1、查看指定表table的规则 2.2、查看指定链chain下指定表table的规则 2.3、常见例子 2.4、清空iptables的所有规则 2.5、增加规则 2.6、删除规则 2.7、修改规则 2.8、保存规则 3、常见命令参数介绍

michael_linux的博客,一个小小小学生。滴水穿石,步步为营,只为那刹那芳华。 1808

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

iptables

一、 什么是IPTABLES Iptables是隔离主机以及网络的工具,通过自己设定的规则以及处理动作对数据报文进行检测以及处理。 二、IPTABLES发展 iptables的前身叫ipfirewall(内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内...

yr137157的博客 1244

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

iptables的配置与使用

语法:iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]表名、链名用来指定 iptables 命令所操作的表和链,未指定表名时将默认使用 filter表管理选项表示 iptables 规则的操作方式,如插入、增加、删除、查看等-A:在指定链的末尾添加(–append)一条新的规则-I:在指定链中插入(–insert)一条新的规则,未指定序号时默认在开头-D:删除(–delete)指定链中的某一条规则,可指定规则序号或具体内容-F。

ZZH1120KQ的博客 1906

iptables详解:iptables概念

转载于: iptables详解(1):iptables概念 | 朱双印博客 iptables详解:iptables概念 这篇文章会尽量以通俗易懂的方式描述iptables的相关概念,请耐心的读完它。 防火墙相关概念 此处先描述一些相关概念。 从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。 主机防火墙:针对于单个主机进行防护。 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。 网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内

m0_43448334的博客 524

iptables防火墙详解

检查iptables状态在开始配置iptables之前,首先要确保iptables服务是否已启动并检查当前的规则。查看iptables服务状态此命令会显示iptables服务是否正在运行。查看当前iptables规则此命令列出当前生效的iptables规则。若未安装iptables或无配置规则,可能不会显示任何内容。安装iptables如果服务器上未安装iptables,可以使用以下步骤进行安装。下载iptables安装包:通过wget命令下载所需的安装包。安装iptables。

2401_87322981的博客 1338

iptables 使用说明

介绍iptables的基础使用

heyongshen的博客 1153
上一篇: Android系统时间无法设置到2038年后问题
下一篇: NTP流程
Devin.wang
博客等级 码龄8年 150粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值