59、UNIX系统网络服务与X窗口系统配置指南

UNIX系统网络服务与X窗口系统配置指南

一、匿名FTP服务配置

1.1 基本目录权限设置

为了搭建匿名FTP服务,需要对相关目录进行权限和所有权的设置。以下是具体的操作步骤:

chown ftp /usr/ftp
chgrp anonymous /usr/ftp
chmod 555 /usr/ftp

上述代码将 /usr/ftp 目录的所有者设置为 ftp ,所属组设置为 anonymous ,并将权限设置为555(即所有者、所属组和其他用户都有读和执行权限)。

1.2 创建特定目录

1.2.1 创建bin目录

在FTP主目录下创建 bin 目录,该目录由 root 拥有,且任何人都不能写入。将 ls 程序放入该目录并设置为仅可执行模式。

mkdir /usr/ftp/bin
# It is already owned by root!
chmod 555 /usr/ftp/bin
cp /bin/ls /usr/ftp/bin
chmod 111 /usr/ftp/bin/ls
1.2.2 创建etc目录

在FTP主目录下创建 etc 目录,同样由 root 拥有,且不可写入。创建特殊的 passwd group 文件,并将其权限设置为只读模式。

mkdir /usr/ftp/etc
# It is already owned by root!
chmod 555 /usr/ftp/etc
cat /etc/passwd | grep ftp: >/usr/ftp/etc/passwd
cat /etc/group | grep anonymous: >/usr/ftp/etc/group
chmod 444 /usr/ftp/etc/passwd /usr/ftp/etc/group
1.2.3 创建pub目录

在FTP主目录下创建 pub 目录,该目录由 ftp 拥有,这里假设为只读模式(444)。

mkdir /usr/ftp/pub
chown ftp /usr/ftp/pub
chgrp anonymous /usr/ftp/pub
chmod 444 /usr/ftp/pub

1.3 检查与测试

完成上述目录和文件的创建后,需要检查它们的所有权、权限和内容。对于大多数UNIX系统,完成上述步骤后安装基本完成,但某些UNIX版本可能需要额外的步骤。最后,将公共使用的文件复制到 /usr/ftp/pub 目录,这些文件不应由 ftp 拥有,权限应设置为644或444。完成安装后,建议对匿名FTP服务进行全面测试,以确保其按预期工作,同时避免提供不必要的服务。由于匿名FTP存在安全风险,因此安装时需要谨慎操作。

二、Finger命令使用

2.1 Finger命令概述

finger 命令默认显示每个登录用户的信息,包括登录名、全名、终端名、空闲时间、登录时间和位置(本地登录用户显示 tty ,远程登录用户显示主机名)。空闲时间的显示格式根据不同情况有所不同,单个整数表示分钟,包含 : 表示小时和分钟,包含 d 表示天和小时。

2.2 Finger命令格式与选项

finger 命令的格式为: finger [options] name… ,可用选项如下表所示:
| 选项 | 含义 |
| ---- | ---- |
| -m | 仅根据用户名匹配参数(不匹配名字或姓氏) |
| -l | 强制使用长输出格式 |
| -s | 强制使用短输出格式 |
| -q | 强制使用快速输出格式,类似于短格式,但仅打印登录名、终端和登录时间 |
| -i | 强制使用“空闲”输出格式,类似于短格式,但仅打印登录名、终端、登录时间和空闲时间 |
| -b | 在长格式输出中不打印用户的主目录和shell |
| -f | 在非长格式输出中不打印通常的标题 |
| -w | 在短格式输出中不打印全名 |
| -h | 在长格式输出中不打印 .project 文件内容 |
| -p | 在长格式输出中不打印 .plan 文件内容 |

当提供一个或多个名字参数时,无论用户是否登录,都会显示每个指定名字的详细信息。名字可以是名字、姓氏或账户名。信息以多行格式呈现,除了上述提到的信息外,还包括用户的主目录和登录shell、当前登录时间(如果用户已登录)或最后登录时间(如果用户未登录)、登录的终端或主机、最后接收邮件的时间、最后阅读邮件的时间、用户主目录中 .plan 文件包含的计划以及 .project 文件中描述的正在进行的项目。

如果名字参数中包含 @ 符号,则尝试连接 @ 后面的机器,并查询远程 finger 守护进程,打印该守护进程返回的数据。

2.3 Finger命令的优缺点

finger 命令的主要缺点是存在安全风险,因为它会暴露系统上用户的信息,可能被潜在入侵者利用。用户账户是入侵者的主要目标,他们通常会先获取用户账户,然后尝试提升权限。

然而,在特定情况下, finger 命令非常有用。例如,当提供用户拨号访问(如PPP)时,用户机器会动态分配一个IP地址,同一用户的机器在不同时间可能有不同的IP地址。而某些应用程序(如X窗口系统)需要知道会话参与者的IP地址才能正常启动。在这种情况下, finger 命令可以显示分配给登录用户的IP地址,从而帮助应用程序成功运行。

2.4 示例:提取动态分配的IP地址

假设用户 bjl 拨号登录到特定主机,意图在模拟X终端的PC上启动基于X的应用程序。远程访问服务器 rashost 动态分配一个IP地址(范围为 rashost01 - rashost16 )给已认证的拨号连接。通过 finger 命令可以获取分配的IP地址,并使用以下脚本提取该地址并启动应用程序:

$ finger
Login   Name    TTY    Idle   When       Where
bjl     B.J.L.  pts/10 3      Sat 14:29  rashost08.example.net
$ cat xnb2pc
#!/bin/ksh -p
#
# This script starts XNB session at the user PC
# Once the user connects via modem, and upon a
# successful authentication, an ip address is assigned
# to the established dial - in connection (this address varies
# among different connections). To launch an XNB session
# the DISPLAY variable must be defined appropriately.
# The other requirement is a running Xterminal client on PC
# (for example Exceed)
#
# This line extracts corresponding DNS record; it cleans everything in the line in front
# of the DNS record, as well as all trailling spaces
CONN = 'finger | grep rashost | grep bjl | sed -n 1p | sed 's/^..*rashost/rashost/g ' | sed 's/ *$//g'
export DISPLAY = "${CONN}:0.0"
# The DISPLAY variable is specified
# Everything seems to be ready for the XNB launch
/usr/xnbpath/bin/xnb -display $DISPLAY&

三、主机连接性测试

3.1 主机连接性的重要性

在网络中,主机之间的连接性是网络应用程序正常运行的基本条件。如果主机连接中断,网络应用程序将无法正常工作。因此,检查主机连接性是跟踪网络应用程序问题时最常见且通常是第一步的操作。

3.2 相关命令介绍

UNIX系统提供了一些用于测试主机连接性的命令,其中 ping traceroute 是比较常用的两个命令。

3.2.1 ping命令

ping 命令用于测试从启动 ping 的系统是否可以到达远程主机。其基本格式为: ping hostname [packetsize] [count] ,参数说明如下:
- hostname :要测试的远程主机的主机名或IP地址。
- packetsize :定义测试数据包的大小,默认值为56字节。
- count :测试时发送的数据包数量。如果未指定, ping 将持续发送测试数据包,直到用户中断(通常使用 Ctrl - C ),大多数情况下发送5个数据包进行测试即可。

以下是一个 ping 命令的示例:

#ping -s acf4.nyu.edu 56 5
PING acf4.nyu.edu: 56 data bytes
64 bytes from ACF4.NYU.EDU (128.122.128.14): icmp_seq = 0. time = 73.ms
64 bytes from ACF4.NYU.EDU (128.122.128.14): icmp_seq = 1. time = 61.ms
64 bytes from ACF4.NYU.EDU (128.122.128.14): icmp_seq = 2. time = 79.ms
64 bytes from ACF4.NYU.EDU (128.122.128.14): icmp_seq = 3. time = 89.ms
64 bytes from ACF4.NYU.EDU (128.122.128.14): icmp_seq = 4. time = 70.ms
----ACF4.NYU.EDU PING Statistics----
5 packets transmitted, 5 packets received, 0% packet loss
round - trip (ms) min/avg/max = 61/74/89

-s 选项用于SunOS/Solaris版本,以显示逐个数据包的统计信息,其他 ping 实现默认显示这些信息。

如果数据包丢失率高、响应时间慢或数据包乱序到达,可能表示存在网络问题。在广域网中,由于TCP/IP设计用于不可靠网络,一定程度的数据包丢失是可以接受的,但在局域网中,这通常表示存在问题。在高吞吐量的局域网或路由步骤较少的网络中,往返时间应接近零,数据包丢失率应较低,且数据包应按顺序到达。如果不满足这些条件,可能是网络资源存在问题,常见问题包括电缆终端不当、电缆段损坏或“活动”硬件(如中继器、网桥、集线器、交换机或收发器)故障。

ping 测试完全失败时,会显示错误消息,如 -unknown host 表示远程主机无法通过名称服务解析,可尝试使用主机的IP地址进行 ping 测试以定位问题; -network unreachable 表示本地系统没有到远程系统的路由,可再次尝试并检查路由表和默认网关。

为了提高 ping 测试的效率,一些版本还提供了 /etc/fping “快速 ping ”命令,该命令只尝试一次并生成相应的响应。

ping 命令的主要优点是它依赖于ISO OSI模型的较低层(物理层、数据链路层和网络层),可以清晰地区分主机连接性问题和高层(传输层、会话层、表示层或应用层)的问题。 ping 使用ICMP协议(互联网控制消息协议),与典型的网络应用程序所使用的TCP/IP栈完全独立,因此只能检查主机的连接性,无法检查应用程序本身。

3.2.2 traceroute命令

traceroute 命令用于跟踪网络中与路由相关的问题,它显示发送到目标主机的探测数据包所经过的路由。其格式为: traceroute [options] hostname [packetlength] ,其中唯一的必需参数是目标主机的名称 hostname ,其他参数可选,默认数据包长度为40字节。部分选项如下表所示:
| 选项 | 含义 |
| ---- | ---- |
| -f first_ttl | 设置第一个传出探测数据包使用的初始生存时间 |
| -g gateway | 指定松散源路由网关(最多8个) |
| -i interface | 指定网络接口,以获取传出探测数据包的源IP地址,通常仅在多宿主主机上有用 |
| -m max_ttl | 设置传出探测数据包使用的最大生存时间(最大跳数),默认值为30跳(与TCP连接的默认值相同) |
| -p port | 设置探测中使用的基本UDP端口号,默认值为33434 |
| -s src_addr | 使用指定的IP地址作为传出探测数据包的源地址,在多宿主主机上可强制使用特定的源地址 |
| -t tos | 将探测数据包中的“服务类型”(TOS)设置为指定值,默认值为零 |
| -w waittime | 设置等待探测响应的时间(以秒为单位),默认值为5秒 |
| -d | 启用套接字级调试 |
| -I | 使用ICMP ECHO而不是UDP数据报 |
| -n | 以数字形式显示跳地址 |
| -r | 绕过正常的路由表,直接向连接在本地网络上的主机发送数据包,如果主机不在直接连接的网络上,将返回错误 |
| -v | 详细输出,确保列出所有接收到的ICMP数据包 |
| -x | 切换校验和计算,通常可防止 traceroute 计算校验和 |

以下是一个 traceroute 命令的示例:

$ traceroute allspice.lcs.mit.edu.
traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 hops max
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
2 lilac - dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms
3 lilac - dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms
4 ccngw - ner - cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms
5 ccn - nerif22.Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms
6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms
8 129.140.70.13 (129.140.70.13) 80 ms 79 ms 99 ms
9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms
10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms
11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms
12 * * *
13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms
14 * * *
15 * * *
16 * * *
17 * * *
18 ALLSPICE.LCS.MIT.EDU (18.26.0.115) 339 ms 279 ms 279 ms

在这个示例中,网关12、14、15、16和17达到了超时限制,可能是因为它们不发送ICMP“时间超过”消息,或者发送的消息的生存时间太小,无法到达发起主机。在这种特定情况下,已知网关14 - 17运行的是MIT C网关代码,该代码不发送“时间超过”消息。

四、X Window System介绍

4.1 X Window System概述

X Window System是一个基于网络的软件包,提供用户友好的图形界面,简称X或X11。它基于客户端/服务器模型,X客户端(应用程序)不直接访问显示器,而是与X服务器(相应的显示程序)通信,以控制显示。X由麻省理工学院(MIT)开发,并由非营利性的供应商和大学联盟维护,最初称为MIT X联盟,1993年更名为X联盟。它是一个相对高度标准化的软件包,几乎可以在所有平台上运行。最著名的版本是X11R6,不过X11R5也被广泛使用。所有标准化X11的努力最终促成了通用桌面环境(CDE)的引入,CDE提供了X11的最佳特性,如今已成为大多数UNIX安装的标准部分,通常还会附带特定供应商版本的X11。与CDE相关的X组件名称通常以“dt”开头(代表桌面)。

X11是一个高度灵活和可配置的软件包,需要进行适当的管理工作以优化其在本地站点的性能。不过,它也可以使用默认设置运行,这对于大多数实现来说已经足够。虽然客户端/服务器模型有两个方面,但实际上研究X11主要是研究客户端方面,因为X的配置和定制通常在客户端主机上进行。

如今,用户对Windows环境非常熟悉,大多数PC都提供某种版本的Microsoft Windows系统。虽然MS Windows不属于X11,但在使用上有明显的相似之处,不过其他方面则有很大不同。实际上,将窗口作为图形、用户友好界面和环境进行更广泛引入的功劳应该归功于20世纪70年代初的Macintosh。

4.2 X11的设计

4.2.1 客户端/服务器模型

X基于客户端/服务器模型,客户端和服务器程序可以远程通信,也可以在同一系统上运行。X客户端和X服务器使用X协议进行通信,该协议在内部由域套接字支持,在外部由TCP/IP支持。许多实现中,X服务器和X客户端运行在独立的远程机器上,通过快速链接相互连接。这些链接可以是广域网(WAN)中的任何远程连接、中速调制解调器,或者最常见的局域网(LAN)。这使得X非常适合分布式计算环境,用户可以在多个服务器机器上打开多个窗口,同时处理多个远程客户端机器上运行的多个任务。

当X客户端和X服务器在不同机器上运行时,它们各自承担共同任务的一部分。X服务器是用户本地显示机器的一部分,这台机器可以非常简单,甚至可以是单任务的基于DOS的PC。而复杂的任务通常在客户端完成,客户端通常是功能强大的多用户系统,能够运行复杂的图形应用程序。这一特性推动了低成本X终端的发展,这些终端专门设计用于运行X服务器,多个用户可以使用X终端运行图形密集型程序,而无需拥有自己昂贵的强大机器。

然而,客户端/服务器术语可能会让X领域的新手感到困惑。由于X服务器运行在用户桌面上的本地显示系统上,人们常常错误地认为显示系统运行的是X客户端程序。通常人们会认为服务器是通过网络访问的东西(类似于文件服务器、打印服务器或其他通常为远程的服务器),但在X11的情况下,我们面前的系统包括显示器和键盘,为运行在远程主机上的X客户端应用程序提供服务。X服务器是“显示服务器”,它为远程应用程序(客户端)提供“显示服务”。

4.2.2 图形显示设备

X服务器可以运行任何类型的位图图形显示器,图形显示器至少由一个显示器(屏幕)、一个指向设备和一个键盘组成。它们在以下方面存在差异:
- 显示器 :不同的屏幕尺寸、分辨率、颜色支持等。
- 指向设备 :鼠标、轨迹球、触摸屏、光笔等。
- 键盘 :键盘布局、控制序列。

X服务器可以隔离X客户端与底层硬件的差异,它在客户端和图形显示器的硬件特性之间进行调解,提供物理资源与相应逻辑标识符之间的映射。

4.2.3 X应用程序的可配置性

不幸的是,X应用程序本身也需要进行配置。X应用程序(X客户端)通常运行在多用户系统上,并且基本上可以在网络上的任何连接的X服务器上显示。因此,用户需要能够表达各种依赖关系和偏好。两个或多个用户可以同时从完全不同的X服务器运行相同的X应用程序,因此X客户端需要由每个用户进行配置。这并不奇怪,基于字符的UNIX程序也使用用户主目录中的适当“点”文件(如 .mailrc .exrc .newsrc ,甚至 .profile .login .cshrc 文件)来实现类似的功能。不同的X服务器可能也需要自己的偏好设置,因此X客户端还需要根据服务器进行配置。此外,X客户端可执行文件可以在不同的系统平台上运行,因此也需要系统特定的默认设置。

显然,X应用程序应该在上述各个层面进行配置(主要通过“资源变量”进行配置),后续将详细讨论这些问题。

4.2.4 X会话中的其他客户端程序

除了应用程序本身,其他X客户端也在X显示会话(简称X会话)中积极参与。首先,X会话的启动方式与其他基于字符的会话类似(例如,登录会话由 init getty login 程序启动)。在X11的早期,X会话由特定的X启动程序(如 xinit )启动,后来这一任务被委托给X显示管理器,该程序通过执行适当的用户可配置程序来启动X会话。对于X11,第一个真正的X显示管理器是 xdm 程序(或者,也可以使用 xinit 命令启动X会话)。

另一个客户端程序是X窗口管理器,它为移动、调整大小和管理窗口提供基本框架。这是窗口管理器的唯一任务,但对于整个X会话至关重要。在传统的基于字符的世界中,会话由用户登录shell的生命周期定义,而在X环境中,会话通常由窗口管理器的生命周期定义(用户的登录过程不一定有类似终端的接口)。窗口管理器负责实现灵活且可用的窗口概念,即在单个显示器上打开多个独立窗口,这些窗口对用户来说就像多个并行独立的显示器。考虑到有限的显示资源(如屏幕尺寸等),还需要提供窗口移动、调整大小、重叠、图标化等其他功能。

窗口中显示的内容不取决于窗口管理器,而仅取决于通过该窗口调用的相关客户端应用程序。窗口管理器可以独立启动,也可以与X客户端应用程序一起启动。

4.2.5 图形用户界面(GUI)

图形用户界面(GUI)的概念起源于20世纪70年代中期的施乐帕洛阿尔托研究中心,在那里开发了基本的GUI元素,如窗口、鼠标和“点击式”软件。第一个商业上成功的产品是苹果Macintosh平台。Macintosh界面的“外观和感觉”具有多个窗口、鼠标设备的使用、弹出式和下拉式菜单、对象和进程图标以及对话框等特点,这些元素定义了用户友好的计算环境。对GUI的兴趣一直在稳步增长,特别是在UNIX市场,GUI在X Windows(X11)下运行,使计算平台更易于更广泛的用户使用。虽然X11提供了基本的图形功能和可联网的窗口系统,但GUI在X11环境中实现了特定的交互风格和外观感觉。

在UNIX平台上,X客户端使用一些编程库来简化X的实现,这些库使程序员无需了解X协议的详细信息:
- 最底层的是Xlib,仅在需要直接控制与X服务器的对话时使用。

通过以上介绍,我们对X Window System的基本概念、设计和相关组件有了更深入的了解。在实际应用中,合理配置和使用X Window System可以为用户提供更加友好和高效的图形界面体验。同时,对于网络连接性的测试和管理也是确保X Window System正常运行的重要环节。在后续的使用中,我们可以根据实际需求进一步探索和优化这些技术,以满足不同的应用场景。

4.3 X Window System的配置与优化

4.3.1 配置文件与资源变量

X Window System的配置主要通过配置文件和资源变量来实现。配置文件通常位于用户主目录或系统级目录中,常见的配置文件包括 .Xresources .xinitrc 等。资源变量用于定义X客户端和服务器的各种属性,如窗口大小、颜色、字体等。

用户可以通过编辑 .Xresources 文件来设置全局的资源变量,例如:

! 设置默认字体
XTerm*faceName: Monospace
! 设置窗口背景颜色
XTerm*background: black
! 设置窗口前景颜色
XTerm*foreground: white

编辑完成后,使用 xrdb 命令将配置加载到当前会话中:

xrdb -merge ~/.Xresources
4.3.2 X服务器配置

X服务器的配置文件通常是 /etc/X11/xorg.conf (不同系统可能有所不同)。该文件包含了显示器、键盘、鼠标等硬件设备的配置信息,以及X服务器的各种参数设置。

以下是一个简单的 xorg.conf 文件示例:

Section "Monitor"
    Identifier   "MyMonitor"
    HorizSync    30.0 - 80.0
    VertRefresh  50.0 - 75.0
EndSection

Section "Device"
    Identifier  "MyVideoCard"
    Driver      "nvidia"
EndSection

Section "Screen"
    Identifier "DefaultScreen"
    Device     "MyVideoCard"
    Monitor    "MyMonitor"
    DefaultDepth 24
    SubSection "Display"
        Depth    24
        Modes    "1920x1080"
    EndSubSection
EndSection

在这个示例中,定义了一个显示器、一个显卡设备和一个屏幕配置。用户可以根据自己的硬件情况进行相应的修改。

4.3.3 性能优化

为了提高X Window System的性能,可以采取以下措施:
- 使用硬件加速 :如果显卡支持,启用硬件加速可以显著提高图形渲染速度。在 xorg.conf 文件中,可以通过设置相应的驱动选项来启用硬件加速。
- 减少不必要的扩展 :X服务器支持各种扩展功能,但有些扩展可能会消耗大量的系统资源。可以根据实际需求,禁用一些不必要的扩展。
- 优化窗口管理器 :选择轻量级的窗口管理器,或者对现有的窗口管理器进行优化,减少其对系统资源的占用。

4.4 X Window System的安全注意事项

由于X Window System基于网络通信,因此存在一定的安全风险。以下是一些安全注意事项:
- 限制远程访问 :默认情况下,X服务器允许远程访问,但这可能会导致安全漏洞。可以通过设置 xhost 命令或使用防火墙来限制远程访问。
- 使用安全协议 :如果需要进行远程访问,建议使用安全协议(如SSH)进行加密通信,以防止数据泄露。
- 定期更新 :及时更新X Window System及其相关组件,以修复已知的安全漏洞。

五、总结

5.1 主要内容回顾

本文详细介绍了UNIX系统中的匿名FTP服务配置、Finger命令使用、主机连接性测试以及X Window System的相关知识。具体内容如下:
- 匿名FTP服务配置 :通过设置目录权限、创建特定目录等步骤,完成匿名FTP服务的安装和配置,并强调了安全注意事项。
- Finger命令使用 :介绍了Finger命令的功能、格式、选项以及优缺点,并通过示例展示了其在特定场景下的应用。
- 主机连接性测试 :讲解了 ping traceroute 命令的使用方法和原理,以及如何根据测试结果判断网络问题。
- X Window System :阐述了X Window System的基本概念、设计、配置、优化和安全注意事项,展示了其在提供图形界面方面的优势。

5.2 实际应用建议

在实际应用中,可以根据具体需求和场景,合理运用上述知识:
- 匿名FTP服务 :在搭建匿名FTP服务时,要严格控制目录权限,确保数据安全。同时,定期对服务进行测试和维护,以保证其正常运行。
- Finger命令 :在需要获取用户登录信息或动态分配的IP地址时,可以使用Finger命令。但要注意其安全风险,避免暴露过多用户信息。
- 主机连接性测试 :当遇到网络应用程序故障时,首先使用 ping traceroute 命令进行主机连接性测试,快速定位问题所在。
- X Window System :在使用X Window System时,要根据硬件情况进行合理配置和优化,提高系统性能。同时,注意安全设置,防止安全漏洞。

5.3 未来展望

随着计算机技术的不断发展,UNIX系统及其相关技术也在不断演进。未来,匿名FTP服务可能会更加注重安全性能的提升,Finger命令可能会结合更多的安全机制,主机连接性测试工具可能会更加智能化,X Window System可能会提供更加丰富和强大的图形功能。我们需要不断学习和掌握新的知识和技术,以适应不断变化的需求。

通过对这些知识的深入理解和应用,可以更好地管理和维护UNIX系统,提高工作效率和系统安全性。希望本文能够为读者在UNIX系统的使用和管理方面提供有益的参考。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值