使用 DHCP 動態(tài)管理主機(jī)地址

? ??????本章講解動態(tài)主機(jī)配置協(xié)議(DHCP,Dynamic Host Configuration Protocol) ,該協(xié)議用于自動管理局域網(wǎng)內(nèi)主機(jī)的 IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址及 DNS 地址等參數(shù),可以有效地提升 IP 地址的利用率,提高配置效率,并降低管理與維護(hù)成本。

? ??????本章詳細(xì)講解了在 Linux 系統(tǒng)中配置部署 dhcpd 服務(wù)程序的方法,剖析了 dhcpd 服務(wù)程序配置文件內(nèi)每個(gè)參數(shù)的作用,并通過自動分配 IP 地址、綁定 IP 地址與 MAC 地址等實(shí)驗(yàn),讓各位讀者更直觀地體會 DHCP 協(xié)議的強(qiáng)大之處。

? ? ? ? 一、動態(tài)主機(jī)配置協(xié)議

? ??????動態(tài)主機(jī)配置協(xié)議(DHCP)是一種基于 UDP 協(xié)議且僅限于在局域網(wǎng)內(nèi)部使用的網(wǎng)絡(luò)協(xié),主要用于大型的局域網(wǎng)環(huán)境或者存在較多移動辦公設(shè)備的局域網(wǎng)環(huán)境中,其主要用途是為局域網(wǎng)內(nèi)部的設(shè)備或網(wǎng)絡(luò)供應(yīng)商自動分配 IP 地址等參數(shù)。

? ??????簡單來說,DHCP 協(xié)議就是讓局域網(wǎng)中的主機(jī)自動獲得網(wǎng)絡(luò)參數(shù)的服務(wù)。在下圖所示的拓?fù)鋱D中存在多臺主機(jī),如果手動配置每臺主機(jī)的網(wǎng)絡(luò)參數(shù)會相當(dāng)麻煩,日后維護(hù)起來也讓人頭大。而且當(dāng)機(jī)房內(nèi)的主機(jī)數(shù)量進(jìn)一步增加時(shí)(比如有 100 臺,甚至 1000 臺) ,這個(gè)手動配置以及維護(hù)工作的工作量足以讓運(yùn)維人員崩潰。 借助于 DHCP 協(xié)議, 不僅可以為主機(jī)自動分配網(wǎng)絡(luò)參數(shù),還可以確保主機(jī)使用的 IP 地址是唯一的,更重要的是,還能為特定主機(jī)分配固定的 IP 地址。


DHCP 協(xié)議的拓?fù)涫疽鈭D

? ??????DHCP 協(xié)議的應(yīng)用十分廣泛,無論是服務(wù)器機(jī)房還是家庭、機(jī)場、咖啡館,都會見到它的身影。比如,本書的某位讀者開了一家咖啡廳,在為顧客提供咖啡的同時(shí),還為顧客免費(fèi)提供無線上網(wǎng)服務(wù)。這樣一來,顧客就可以一邊愜意地喝著咖啡,一邊連著無線網(wǎng)絡(luò)刷朋友圈了。但是,作為咖啡廳老板的您,肯定不希望(也沒有時(shí)間)為每一位造訪的顧客手動設(shè)置 IP地址、 子網(wǎng)掩碼、 網(wǎng)關(guān)地址等信息。 另外, 考慮到咖啡館使用的內(nèi)網(wǎng)網(wǎng)段一般為 192.168.10.0/24(C 類私有地址) , 最多能容納的主機(jī)數(shù)為 200 多臺。 而咖啡廳一天的客流量肯定不止 200 人。如果采用手動方式為他們分配 IP 地址,則當(dāng)他們在離開咖啡廳時(shí)并不會自動釋放這個(gè) IP 地址,這就可能出現(xiàn) IP 地址不夠用的情況。這一方面會造成 IP 地址的浪費(fèi),另外一方面也增加的 IP 地址的管理成本。而使用 DHCP 協(xié)議,這一切都迎刃而解 — 老板只需安心服務(wù)好顧客,為其提供美味的咖啡;顧客通過運(yùn)行 DHCP 協(xié)議的服務(wù)器自動獲得上網(wǎng)所需的 IP 地址,等離開咖啡廳時(shí) IP 地址將被 DHCP 服務(wù)器收回,以備其他顧客使用。

? ??????既然確定在今后的生產(chǎn)環(huán)境中肯定離不開 DHCP 了,那么也就有必要好好地熟悉一下DHCP 涉及的常見術(shù)語了。

? :一個(gè)完整的 IP 地址段,DHCP 協(xié)議根據(jù)作用域來管理網(wǎng)絡(luò)的分布、分配 IP地址及其他配置參數(shù)。

?? :用于管理處于同一個(gè)物理網(wǎng)絡(luò)中的多個(gè)邏輯子網(wǎng)段。超級作用域中包含了可以統(tǒng)一管理的作用域列表。

?? : 把作用域中的某些 IP 地址排除, 確保這些 IP 地址不會分配給 DHCP 客戶端。

?? : 在定義了DHCP的作用域并應(yīng)用了排除范圍后, 剩余的用來動態(tài)分配給DHCP客戶端的 IP 地址范圍。

?? :DHCP 客戶端能夠使用動態(tài)分配的 IP 地址的時(shí)間。

?? :保證網(wǎng)絡(luò)中的特定設(shè)備總是獲取到相同的 IP 地址。

? ? ? ? 二、部署 dhcpd 服務(wù)程序

? ??????dhcpd 是 Linux 系統(tǒng)中用于提供 DHCP 協(xié)議的服務(wù)程序。盡管 DHCP 協(xié)議的功能十分強(qiáng)大,但是 dhcpd 服務(wù)程序的配置步驟卻十分簡單,這也在很大程度上降低了在 Linux 中實(shí)現(xiàn)動態(tài)主機(jī)管理服務(wù)的門檻。

? ??????在確認(rèn) Yum 軟件倉庫配置妥當(dāng)之后,安裝 dhcpd 服務(wù)程序:

# yum install dhcp

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

? ? ? ? ? ? ? : subscription-manager

Determining fastest mirrors

base? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.6 kB? ? 00:00? ?

centosplus? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?

extras? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?

Trying other mirror.

updates? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?

Resolving Dependencies

--> Running transaction check

---> Package dhcp.x86_64 12:4.2.5-68.el7.centos.1 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package? ? Arch? ? ? ? ? Version? ? ? ? ? ? ? ? ? ? ? ? ? Repository? Size

====================================================================

Installing:

dhcp? ? ? ? x86_64? ? ? ? 12:4.2.5-68.el7.centos.1? ? ? ? base? ? ? ? 513 k

Transaction Summary

====================================================================

Install? 1 Package

Total download size: 513 k

Installed size: 1.4 M

Is this ok [y/d/N]: y

Downloading packages:

dhcp-4.2.5-68.el7.centos.1.x86_64.rpm? ? ? ? ? ? ? ? ? ? | 513 kB? 00:00? ?

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

? Installing : 12:dhcp-4.2.5-68.el7.centos.1.x86_64? ? ? ? ? ? ? ? ? ? ? 1/1

? Verifying? : 12:dhcp-4.2.5-68.el7.centos.1.x86_64? ? ? ? ? ? ? ? ? ? ? 1/1

Installed:

? dhcp.x86_64 12:4.2.5-68.el7.centos.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Complete!

? ??????查看 dhcpd 服務(wù)程序的配置文件內(nèi)容。

# cat /etc/dhcp/dhcpd.conf

# DHCP Server Configuration file.

#? see /usr/share/doc/dhcp*/dhcpd.conf.example

#? see dhcpd.conf(5) man page

? ??????是的,您沒有看錯(cuò)!dhcp 的服務(wù)程序的配置文件中只有 3 行注釋語句,這意味著我們需要自行編寫這個(gè)文件。如果讀者不知道怎么編寫,可以看一下配置文件中第 2 行的參考示例文件,其組成架構(gòu)如下圖所示。


dhcpd 服務(wù)程序配置文件的架構(gòu)

? ??????一個(gè)標(biāo)準(zhǔn)的配置文件應(yīng)該包括全局配置參數(shù)、子網(wǎng)網(wǎng)段聲明、地址配置選項(xiàng)以及地址配置參數(shù)。其中,全局配置參數(shù)用于定義 dhcpd 服務(wù)程序的整體運(yùn)行參數(shù);子網(wǎng)網(wǎng)段聲明用于配置整個(gè)子網(wǎng)段的地址屬性。

? ??????考慮到 dhcpd 服務(wù)程序配置文件的可用參數(shù)比較多,挑選了最常用的參數(shù)(見下表 ) ,并逐一進(jìn)行了簡單介紹,以便為接下來的實(shí)驗(yàn)打好基礎(chǔ)。

參數(shù)? ? 作用

ddns-update-style [類型]????????????????????????????????????定義 DNS 服務(wù)動態(tài)更新的類型,類型包括 none(不支

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 持動態(tài)更新) 、 interim (互動更新模式) 與 ad-hoc?

????????????????????????????????????????????????????????????????????????????????(特殊更新模式)

[allow | ignore] client-updates? ????????????????????????允許/忽略客戶端更新 DNS 記錄

default-lease-time [21600]? ????????????????????????????????默認(rèn)超時(shí)時(shí)間

max-lease-time [43200]? ????????????????????????????????????最大超時(shí)時(shí)間

option? domain-name-servers[8.8.8.8]????????????定義 DNS 服務(wù)器地址

option domain-name ["domain.org"]? ????????????定義 DNS 域名

range? ????????????????????????????????????????????????????????????????????定義用于分配的 IP 地址池

option subnet-mask? ????????????????????????????????????????????定義客戶端的子網(wǎng)掩碼

option routers? ????????????????????????????????????????????????????????定義客戶端的網(wǎng)關(guān)地址

broadcase-address[廣播地址]? ????????????????????????定義客戶端的廣播地址

ntp-server[IP 地址]? ????????????????????????????????????????????定義客戶端的網(wǎng)絡(luò)時(shí)間服務(wù)器(NTP)

nis-servers[IP 地址]? ????????????????????????????????????????定義客戶端的 NIS 域服務(wù)器的地址

Hardware[網(wǎng)卡物理地址]? ????????????????????????????????指定網(wǎng)卡接口的類型與 MAC 地址

server-name[主機(jī)名]? ????????????????????????????????????????向 DHCP 客戶端通知 DHCP 服務(wù)器的主機(jī)名

fixed-address[IP 地址]? ????????????????????????????????????將某個(gè)固定的 IP 地址分配給指定主機(jī)

time-offset[偏移誤差]? ????????????????????????????????????????指定客戶端與格林尼治時(shí)間的偏移差

? ? ? ? 三、自動管理 IP 地址

? ??????DHCP 協(xié)議的設(shè)計(jì)初衷是為了更高效地集中管理局域網(wǎng)內(nèi)的 IP 地址資源。DHCP 服務(wù)器會自動把 IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS 地址等網(wǎng)絡(luò)信息分配給有需要的客戶端,而且當(dāng)客戶端的租約時(shí)間到期后還可以自動回收所分配的 IP 地址,以便交給新加入的客戶端。

? ??????為了讓實(shí)驗(yàn)更有挑戰(zhàn)性,來模擬一個(gè)真實(shí)生產(chǎn)環(huán)境的需求:

? ??????“機(jī)房運(yùn)營部門:明天會有 100 名學(xué)員自帶筆記本電腦來我司培訓(xùn)學(xué)習(xí),請保證他們能夠使用機(jī)房的本地 DHCP 服務(wù)器自動獲取 IP 地址并正常上網(wǎng)” 。

? ??????機(jī)房所用的網(wǎng)絡(luò)地址及參數(shù)信息如下表所示。

參數(shù)名稱? ? ????????????????????????????????????????????????????????????????????值

默認(rèn)租約時(shí)間 ???????????????????????????????????????????????????????????????? 21600 秒

最大租約時(shí)間? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 43200 秒

IP 地址范圍? ????????????????????????????????????????????????????????????????????192.168.1.180~192.168.1.230

子網(wǎng)掩碼 ???????????????????????????????????????????????????????????????????????? 255.255.255.0

網(wǎng)關(guān)地址? ????????????????????????????????????????????????????????????????????????192.168.1.145

DNS 服務(wù)器地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.1.145

搜索域? ????????????????????????????????????????????????????????????????????????????linuxprobe.com

????????在了解了真實(shí)需求以及機(jī)房網(wǎng)絡(luò)中的配置參數(shù)之后, 我們按照下表來配置 DHCP 服務(wù)器以及客戶端。

主機(jī)類型? ? ????????????????????操作系統(tǒng)? ? ????????????????IP地址

DHCP 服務(wù)器 ???????????????? RHEL 7 ????????????????192.168.10.1

DHCP 客戶端? ????????????????RHEL 7? ????????????????自動獲取

? ??????前文講到,作用域一般是個(gè)完整的 IP 地址段,而地址池中的 IP 地址才是真正供客戶端使用的,因此地址池應(yīng)該小于或等于作用域的 IP 地址范圍。另外,由于 VMware Workstation虛擬機(jī)軟件自帶 DHCP 服務(wù),為了避免與自己配置的 dhcpd 服務(wù)程序產(chǎn)生沖突,應(yīng)該先按照下圖所示將虛擬機(jī)軟件自帶的 DHCP 功能關(guān)閉。


單擊虛擬機(jī)軟件的“虛擬網(wǎng)絡(luò)編輯器”菜單


關(guān)閉虛擬機(jī)自帶的 DHCP 功能

? ??????可隨意開啟幾臺客戶端,準(zhǔn)備進(jìn)行驗(yàn)證。但是一定要注意,DHCP 客戶端與服務(wù)器需要處于同一種網(wǎng)絡(luò)模式 — 僅主機(jī)模式(Hostonly) ,否則就會產(chǎn)生物理隔離,從而無法獲取 IP地址。建議開啟 1~3 臺客戶端虛擬機(jī)驗(yàn)證一下效果就好,以免物理主機(jī)的 CPU 和內(nèi)存的負(fù)載太高。

? ??????在確認(rèn) DHCP 服務(wù)器的 IP 地址等網(wǎng)絡(luò)信息配置妥當(dāng)后就可以配置 dhcpd 服務(wù)程序了。 請注意,在配置 dhcpd 服務(wù)程序時(shí),配置文件中的每行參數(shù)后面都需要以分號(;)結(jié)尾,這是規(guī)定。另外,dhcpd 服務(wù)程序配置文件內(nèi)的參數(shù)都十分重要,因此在上表中羅列出了每一行參數(shù),并對其用途進(jìn)行了簡單介紹。

# vim /etc/dhcp/dhcpd.conf

ddns-update-style none;

ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

? ? ? ? range 192.168.1.180 192.168.1.230;

? ? ? ? option subnet-mask 255.255.255.0;

? ? ? ? option routers 192.168.1.145;

? ? ? ? option domain-name "linuxprobe.com";

? ? ? ? option domain-name-server 192.168.1.145;

? ? ? ? default-lease-time 21600;

? ? ? ? max-lease-time 43200;

}

????????dhcpd 服務(wù)程序配置文件中使用的參數(shù)以及作用:

參數(shù)?? ??????????????????????????????????????????????????????????????????????????????????????????作用

ddns-update-style none; ???????????????????????? ????????????????????????設(shè)置 DNS 服務(wù)不自動進(jìn)行動態(tài)更新

ignore client-updates;? ????????????????????????????????????????????????????忽略客戶端更新 DNS 記錄

subnet? 192.168.10.0? netmask 255.255. 255.0 {????????作用域?yàn)?192.168.1.0/24 網(wǎng)段

range? 192.168.1.180 ?192.168.1.230;? ? ? ? ? ? ? ?IP 地址池為 192.168.1.180-230(約 50 個(gè) IP 地址)

option? subnet-mask 255.255.255.0;????????????????????????????定義客戶端默認(rèn)的子網(wǎng)掩碼

option routers 192.168.1.145;? ????????????????????????????????????定義客戶端的網(wǎng)關(guān)地址

option? domain-name "linuxprobe.com";????????????????????定義默認(rèn)的搜索域

option? domain-name-servers????192.168. 1.145;????????????定義客戶端的 DNS 地址

default-lease-time 21600;? ????????????????????????????????????????定義默認(rèn)租約時(shí)間(單位:秒)

max-lease-time 43200;? ????????????????????????????????????????????定義最大預(yù)約時(shí)間(單位:秒)

}? ????????????????????????????????????????????????????????????????????????????????????????????結(jié)束符

????????在紅帽認(rèn)證考試以及生產(chǎn)環(huán)境中, 都需要把配置過的dhcpd 服務(wù)加入到開機(jī)啟動項(xiàng)中, 以確保當(dāng)服務(wù)器下次開機(jī)后dhcpd 服務(wù)依然能自動啟動, 并順利地為客戶端分配IP 地址等信息。

# systemctl start dhcpd

# systemctl enable dhcpd

ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.

target.wants/dhcpd.service'

????????把 dhcpd 服務(wù)程序配置妥當(dāng)之后就可以開啟客戶端來檢驗(yàn) IP 分配效果了。 重啟客戶端的網(wǎng)卡服務(wù)后即可看到自動分配到的 IP 地址,如圖所示。


客戶端自動獲取的 IP 地址

? ??????如果有興趣,大家還可以再開啟一臺運(yùn)行 Windows 系統(tǒng)的客戶端進(jìn)行嘗試,其效果都是一樣的。

? ? ? ? 四、分配固定 IP 地址

? ??????在DHCP 協(xié)議中有個(gè)術(shù)語是 “預(yù)約” , 它用來確保局域網(wǎng)中特定的設(shè)備總是獲取到固定的IP 地址。換句話說,就是dhcpd 服務(wù)程序會把某個(gè)IP 地址私藏下來,只將其用于相匹配的特定設(shè)備。

? ??????要想把某個(gè)IP 地址與某臺主機(jī)進(jìn)行綁定,就需要用到這臺主機(jī)的MAC 地址。MAC 地址是網(wǎng)卡上面的一串獨(dú)立的標(biāo)識符,具備唯一性,因此不會存在沖突的情況,如圖所示。

查看運(yùn)行 Linux 系統(tǒng)的主機(jī) MAC 地址

? ??????在 Linux系統(tǒng)或 Windows系統(tǒng)中, 都可以通過查看網(wǎng)卡的狀態(tài)來獲知主機(jī)的 MAC 地址。在 dhcpd 服務(wù)程序的配置文件中,按照如下格式將 IP 地址與 MAC 地址進(jìn)行綁定。

host 主機(jī)名稱{

????hardware? ethernet 該主機(jī)的 MAC 地址;

????fixed-address 欲指定的 IP 地址;

}

? ??????如果不方便查看主機(jī)的 MAC 地址,該怎么辦呢?比如,要給老板使用的主機(jī)綁定 IP 地址,總不能隨便就去查看老板的主機(jī)信息吧。針對這種情況,劉遄老師告訴大家一個(gè)很好的辦法。我們首先啟動 dhcpd 服務(wù)程序,為老板的主機(jī)分配一個(gè) IP 地址,這樣就會在 DHCP 服務(wù)器本地的日志文件中保存這次的 IP 地址分配記錄。然后查看日志文件,就可以獲悉主機(jī)的MAC 地址了(即下面加粗的內(nèi)容) 。

# tail -f /var/log/messages

Mar 30 05:33:17 localhost dhcpd: Copyright 2004-2013 Internet Systems Consortium.

Mar 30 05:33:17 localhost dhcpd: All rights reserved.

Mar 30 05:33:17 localhost dhcpd: For info, please visit https://www.isc.org/

software/dhcp/

Mar 30 05:33:17 localhost dhcpd: Not searching LDAP since ldap-server, ldap-

port and ldap-base-dn were not specified in the config file

Mar 30 05:33:17 localhost dhcpd: Wrote 0 leases to leases file.

Mar 30 05:33:17 localhost dhcpd: Listening on LPF/eno16777728/00:0c:29:c4:a4:

09/192.168.10.0/24

Mar 30 05:33:17 localhost dhcpd: Sending on LPF/eno16777728/00:0c:29:c4:a4:09/

192.168.10.0/24

Mar 30 05:33:17 localhost dhcpd: Sending on Socket/fallback/fallback-net

Mar 30 05:33:26 localhost dhcpd: DHCPDISCOVER from 00:0c:29:27:c6:12 via eno16777728

Mar 30 05:33:27 localhost dhcpd: DHCPOFFER on 192.168.10.50 to 00:0c:29:27:c6:

12 (WIN-APSS1EANKLR) via eno16777728

Mar 30 05:33:29 localhost dhcpd: DHCPDISCOVER from 00:0c:29:27:c6:12 (WIN-

APSS1EANKLR) via eno16777728

Mar 30 05:33:29 localhost dhcpd: DHCPOFFER on 192.168.10.50 to 00:0c:29:27:c6:

12 (WIN-APSS1EANKLR) via eno16777728

Mar 30 05:33:29 localhost dhcpd: DHCPREQUEST for 192.168.10.50 (192.168.10.10)

from 00:0c:29:27:c6:12 (WIN-APSS1EANKLR) via eno16777728

Mar 30 05:33:29 localhost dhcpd: DHCPACK on 192.168.10.50 to 00:0c:29:27:c6:12

(WIN-APSS1EANKLR) via eno16777728

? ? ? ? 這里注意:在 Windows 系統(tǒng)中看到的 MAC 地址,其格式類似于 00-0c-29-27-c6-12,間隔符為減號(-) 。但是在 Linux 系統(tǒng)中,MAC 地址的間隔符則變成了冒號(:) 。

# vim /etc/dhcp/dhcpd.conf

1 ddns-update-style none;

2 ignore client-updates;

3 subnet 192.168.10.0 netmask 255.255.255.0 {

4 range 192.168.10.50 192.168.10.150;

5 option subnet-mask 255.255.255.0;

6 option routers 192.168.10.1;

7 option domain-name "linuxprobe.com";

8 option domain-name-servers 192.168.10.1;

9 default-lease-time 21600;

10 max-lease-time 43200;

11 host linuxprobe {

12 hardware ethernet 00:0c:29:27:c6:12;

13 fixed-address 192.168.10.88;

14 }

15 }

? ??????確認(rèn)參數(shù)填寫正確后就可以保存退出配置文件,然后就可以重啟 dhcpd 服務(wù)程序了。

# systemctl restart dhcpd

? ??????需要說明的是,如果您剛剛為這臺主機(jī)分配了 IP 地址,則它的 IP 地址租約時(shí)間還沒有到期,因此不會立即換成新綁定的 IP 地址。要想立即查看綁定效果,則需要重啟一下客戶端的網(wǎng)絡(luò)服務(wù),如圖所示。

重啟客戶端的網(wǎng)絡(luò)服務(wù),查看綁定效果

? ? ? ? 本篇實(shí)驗(yàn)沒有在虛擬機(jī)中進(jìn)行調(diào)試,因?yàn)樵诤芏嗥髽I(yè)中一般都以MAC和IP綁定的方式,實(shí)名管理計(jì)算機(jī)和IP。如果有開網(wǎng)吧、咖啡館類似的同學(xué),可以認(rèn)真實(shí)驗(yàn)一下,很有益處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容